Changes between Version 24 and Version 25 of esp32_tips


Ignore:
Timestamp:
Oct 25, 2017 10:54:20 PM (4 years ago)
Author:
kishida
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • esp32_tips

    v24 v25  
    8888回路ブロック図に関しては、[https://espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf ESP32 Technical Reference Manual]の`4. IO_MUX and GPIO Matrix`が詳しいです。
    8989
    90 ESP32には「(物理的な)ピン」「IO MUX」「GPIO マトリックス」という3つの回路があります。ピンに対してはIO MUXが接続されています。一つのピンは内蔵機能またはGPIOとして割り当てる事ができます。これをIO MUXにて行います。
     90ESP32には「(物理的な)ピン」「IO MUX(マルチプレクサ)」「GPIO マトリックス」という3つの回路があります。ピンに対してはIO MUXが接続されています。一つのピンは内蔵機能またはGPIOとして割り当てる事ができます。これをIO MUXにて行います。
    9191
    9292IO MUXにてGPIOに割り当てられたピンは、GPIO マトリックスにて機能の割り当てを行うことができます。GPIOマトリックスは、入力と出力を文字通り自由に組み替えら得れる回路になっており、ピンへの入力を内蔵ペリフェラルピンに割り当てたり、逆にペリフェラルピンを出力ピンに接続したりできます。
     
    303303== ULP コプロセッサとdeep sleep ==
    304304
    305 ==== 内部の仕様について ====
    306 
    307 ==== サンプルスケッチ ====
     305ESP32はデュアルコアですが、これらとは別に低消費電力用にもう一つプロセッサを載せています。これをULP コプロセッサなどと呼びます。スイッチサイエンスのESPr Developerの基板裏面に存在するクリスタル用のパッドはこの機能向けに設けられているため、関連事項として説明します。
     306
     307ただ、Arduino IDEから利用する分にはほぼ気にする必要がありません。まず、現在のところこのコプロセッサのプログラミングはアセンブラで行う必要があります。
     308
     309詳しくは[https://esp-idf.readthedocs.io/en/latest/api-guides/ulp.html esp-idfのプログラミングガイド]や[https://github.com/espressif/esp-idf/tree/master/examples/system/ulp esp-idfのサンプルプログラム]をご覧ください。
     310
     311==== 内部の仕様について ====
     312
     313ULPコプロセッサは、RTCと呼ばれる一連の内部一つの機能として呼称されます。他には、PMU(電源)、RTCリカバリメモリが存在します。
     314
     315このRTCメモリは2種類存在し、それぞれFASTメモリとSLOWメモリと呼ばれます。どちらも8KBのSRAMです。(ちなみに本体スペックの520KBのうち8KBはこのFASTメモリのことを指します)
     316
     317FASTメモリははデータストレージなどに利用でき、Deep-sleepからのRTC boot時などに利用できます。SLOWメモリはDeep-sleep中にコプロセッサのほうから利用されます。
     318
     319また、ESP32は以下のような動作モードを持っています。
     320
     321 * active mode
     322  * 無線機能ON。チップは受信送信待機が可能。
     323
     324 * modem-sleep mode
     325  * CPUは動作し、かつクロックは設定可能。WiFiやBluetoothベースバンドは無効。
     326
     327 * light-sleep mode
     328  * CPUは動作を一時停止。RTCメモリとRTC周辺機器つまりULPコプロセッサは動作。全Wake-upイベントが有効。(MAC, Host, RTCタイマ, 外部割り込み)
     329
     330 * deep-sleep mode
     331  * RTCメモリとRTC周辺機器のみ動作。WiFiやBluetoothの接続情報はRTCメモリに保存。ULPコプロセッサは動作可能。
     332 
     333 * hibernation mode
     334  * 内部8MHz発振子とULPコプロセッサも動作停止。RTCリカバリメモリの電源OFF。低速なRTCタイマーと一部のRTC GPIOのみ有効。RTCタイマーもしくはRTC GPIOはHibernation Modeからの復帰に利用可能。
     335
     336RTC用のシステムクロックは5種類のソースから選ぶことができます。
     337 * 外部低速(32 kHz)水晶発振子
     338 * 外部推奨発信器の4分周
     339 * 内蔵RC発振器(150kHz Typ. アジャスタブル)
     340 * 内蔵8MHz発振器
     341 * 内蔵31.25kHz(内蔵8MHzの256分周)
     342
     343ここで、チップが通常動作していて、高速なCPUアクセスが必要な場合、アプリケーションは外部の高速なクリスタルの4分周もしくは内部8MHzを動作に利用可能です。
     344一方で、チップがlow-powerモードで動作している場合、アプリケーションは外部低速水晶発振器(32kHz)か内部RCクロックか内部31.25kHzを選択可能です。
     345
     346背面(以下の画像)部のクリスタルパッドは、この外部用32KHzを接続する用に設計されています。
     347詳しくは、[http://espressif.com/sites/default/files/documentation/esp32_hardware_design_guidelines_en.pdf ハードウェアデザインガイドライン]の3.1.4.2をご覧ください。
     348
     349[[Image(32kxtal.jpg)]]
     350
     351==== サンプルスケッチ ====
     352
     353[https://github.com/espressif/esp-idf/tree/master/examples/system/ulp esp-idfのサンプルプログラム]をご覧ください。