305 | | ==== 内部の仕様について ==== |
306 | | |
307 | | ==== サンプルスケッチ ==== |
| 305 | ESP32はデュアルコアですが、これらとは別に低消費電力用にもう一つプロセッサを載せています。これを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 | |
| 313 | ULPコプロセッサは、RTCと呼ばれる一連の内部一つの機能として呼称されます。他には、PMU(電源)、RTCリカバリメモリが存在します。 |
| 314 | |
| 315 | このRTCメモリは2種類存在し、それぞれFASTメモリとSLOWメモリと呼ばれます。どちらも8KBのSRAMです。(ちなみに本体スペックの520KBのうち8KBはこのFASTメモリのことを指します) |
| 316 | |
| 317 | FASTメモリははデータストレージなどに利用でき、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 | |
| 336 | RTC用のシステムクロックは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のサンプルプログラム]をご覧ください。 |