ESP32:内部の詳細とピン配置

この記事では、ESP32の内部の詳細と固定について説明します。 データシートを見てピンを正しく識別する方法、どのピンがOUTPUT / INPUTとして機能するかを識別する方法、ESP32が提供するセンサーと周辺機器の概要を知る方法を示します。ブート。 したがって、以下のビデオを使用して、ESP32参照に関するメッセージやコメントなどで受け取ったいくつかの質問に答えることができると信じています。

ステップ1:NodeMCU ESP-WROOM-32

ここに、

WROOM-32は、プログラムを作成する際の参考資料として役立ちます。 汎用入出力(GPIO)、つまり、プログラム可能なデータ入出力ポートに注意を払うことが重要です。これらのポートは、ADコンバーターまたはGPIO4などのタッチピンでもかまいません。 これはArduinoでも発生します。Arduinoでは、入力ピンと出力ピンもPWMにできます。

ステップ2:ESP-WROOM-32

上の画像では、ESP32自体があります。 製造業者によって異なる特性を持つインサートにはいくつかのタイプがあります。

ステップ3:しかし、ESP32に使用する正しいピン配列は何ですか?

ESP32は難しくありません。 あなたの環境には教訓的な懸念はないと言うことができるほど簡単です。 しかし、私たちは教訓的である必要があります、はい。 アセンブラーでプログラムを作成する場合は、大丈夫です。 しかし、エンジニアリング時間は高価です。 したがって、技術サプライヤーであるすべてのものがその動作を理解するのに時間がかかるツールを提供する場合、これはあなたにとって簡単に問題になる可能性があります。 これは、特に今日の忙しい世界では時間が重要だからです。

上記のように、データシートのESP32に戻ると、ハイライトに正しいピン識別があります。 GPIO、シリアル番号、およびカード自体のコードという3つの状況があるため、チップのラベルは実際のピンの番号と一致しないことがよくあります。

次の例に示すように、ESPのLEDの接続と正しい設定モードがあります。

ラベルはTX2ですが、前の画像で強調表示されているように、正しい識別情報に従う必要があります。 したがって、ピンの正しい識別は17になります。画像は、コードがどれだけ近くにあるべきかを示しています。

ステップ4:入力/出力

ピンでINPUTおよびOUTPUTテストを実行すると、次の結果が得られました。

INPUTはGPIO0でのみ機能しませんでした。

OUTPUTは、それぞれVDET1およびVDET2であるGPIO34およびGPIO35ピンでのみ機能しませんでした。

* VDETピンはRTCの電源ドメインに属します。 これは、ADCピンとして使用でき、ULPコプロセッサがそれらを読み取ることができることを意味します。 エントリのみで、終了することはできません。

ステップ5:ブロック図

この図は、ESP32にデュアルコア、WiFiを制御するチップ領域、およびBluetoothを制御する別の領域があることを示しています。 また、暗号化のためのハードウェアアクセラレーションがあり、アンテナを使用して最大15 kmの接続を可能にする長距離ネットワークであるLoRaへの接続を可能にします。 また、クロックジェネレータ、リアルタイムクロック、および他のポイント、たとえばPWM、ADC、DAC、UART、SDIO、SPIなども観察します。 これにより、デバイスは完全に機能します。

ステップ6:ペリフェラルとセンサー

ESP32には34個のGPIOがあり、次のようなさまざまな機能に割り当てることができます。

デジタルのみ。

アナログ対応(デジタルとして構成可能);

静電容量式タッチ対応(デジタルとして構成可能);

その他。

ほとんどのデジタルGPIOは、内部プルアップまたはプルダウンとして構成できること、または高インピーダンス用に構成できることに注意することが重要です。 入力として設定すると、値はレジスタを介して読み取ることができます。

ステップ7:GPIO

アナログ-デジタルコンバーター(ADC)

Esp32は12ビットADCを統合し、18チャネル(アナログ対応ピン)での測定をサポートします。 ESP32のULPコプロセッサは、スリープモードで動作しながら電圧を測定するように設計されているため、低消費電力が可能です。 CPUは、しきい値設定および/または他のトリガーによって起動できます。

D / Aコンバーター(DAC)

2つの8ビットDACチャンネルを使用して、2つのデジタル信号を2つのアナログ電圧出力に変換できます。 これらのデュアルDACは、入力電圧リファレンスとして電源をサポートし、他の回路を駆動できます。 デュアルチャネルは独立した変換をサポートします。

ステップ8:センサー

タッチセンサー

ESP32には、10個の静電容量検出GPIOがあり、指または他の物体でGPIOに触れたり、近づいたりするときに誘導される変動を検出します。

ESP32には温度センサーと内部ホールセンサーもありますが、これらを使用するには、レジスタの設定を変更する必要があります。 詳細については、リンクから技術マニュアルを参照してください。

//www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf

ステップ9:ウォッチドッグ

ESP32には3つの監視タイマーがあります。2つのタイマーモジュール(プライマリウォッチドッグタイマー、またはMWDTと呼ばれる)に1つ、RTCモジュール(RTCウォッチドッグタイマー、またはRWDTと呼ばれる)に1つです。

ステップ10:Bluetooth

Bluetooth Interface v4.2 BR / EDRおよびBluetooth LE(低エネルギー)

ESP32は、Bluetooth接続コントローラーとBluetoothベースバンドを統合し、ベースバンドプロトコルと、変調/復調、パケット処理、ビットストリーム処理、周波数ホッピングなどの他の低レベルリンクルーチンを実行します。

接続コントローラーは、スタンバイ、接続、スニフの3つの主要な状態で動作します。 複数の接続と、照会、ページ、セキュアシンプルペアリングなどの他の操作が可能になるため、PiconetとScatternetが可能になります。

ステップ11:ブート

USB /シリアルが組み込まれた多くの開発ボードでは、esptool.pyはボードをブートモードに自動的にリセットできます。

ESP32は、リセット時にGPIO0がローに保たれると、シリアルブートローダーに入ります。 それ以外の場合は、プログラムをフラッシュで実行します。

GPIO0にはプルアップ抵抗が内蔵されているため、接続されていない場合はHighになります。

多くのボードは、「Flash」(または一部のEspressif開発ボードでは「BOOT」)というラベルの付いたボタンを使用します。このボタンを押すと、GPIO0が下に移動します。

GPIO2も未接続/フローティングのままにしてください。

上の画像では、私が実行したテストを見ることができます。 ESPのすべてのピンにオシロスコープを取り付けて、電源を入れたときに何が起こったかを確認しました。 ピンを取得すると、右側の強調表示された領域に示されているように、ピンが750マイクロ秒の振動を生成することを発見しました。 これについて何ができますか? トランジスタ、ドアエクスパンダーなどの回路で遅延を与えるなど、いくつかのオプションがあります。 GPIO08が逆になっていることを指摘します。 振動は下向きではなく上向きに出る。

もう1つの詳細は、Highで始まるピンとLowで始まるピンがあることです。 したがって、このPINOUTは、ESP32がオンになるとき、特に、たとえばトライアック、リレー、コンタクター、または何らかの電源をトリガーする負荷で作業しているときの参照です。

関連記事