ESP-IDFを使ってみる

ESP32-C6開発ボード

Espressif Systemsから2021年4月9日に、こちらの公式アナウンスが 公開されました。
2.4GHzのWi-Fi 6 (IEEE 802.11ax) + Bluetooth 5 (LE) をサポートするようです。
そもそも、802.11axは2.4GHz/5GHzのDualBandの規格ですが、2.4GHzの802.11axと言うのが微妙なところ です。
こちらに、このSoC の開発状況が公開されていますが、2021年8月以降、更新が有りません。



2022年4月29日に、Espressif SystemsからESP32-C2に関する公式アナウンスが公開され ました。
このアナウンスの中でESP32-C6に関する記述も有り、
ESP32-C6は2022年第3四半期後半に市販される予定と書かれています。



Espressif Systemsの公式ページの Products>SoCsにESP32-C6が追加されています。
2021年4月9日の公式アナウンスには無かった、IEEE 802.15.4の記載が有ります。
先行して発表されているESP32-H2はIEEE 802.15.4 + Bluetooth 5をサポートしますが、WiFiはサポートしません。
一方、後発のESP32-C6はIEEE 802.15.4 + Bluetooth 5 + 2.4GHzのWi-Fi 6をサポートします。
ESP32-H2との住み分けが気になるところです。



こ ちらにESP32-C6のデータシートが公開されています。
QFN40ピンとQFN32ピンの2つのモデルが有り、
QFN40ピンモデルで使えるGPIOは30個、QFN32ピンモデルで使えるGPIOは22個と、沢山のGPIOが用意されています。
周辺機器のインターフェースもC3と比べると、MCPWM、REMOTE、PARLIO、ETMなどが増えています。
PARLIOとETMは今までのどのモデルにもなかった機能です。
また地味ですが、TWAI(CAN)が2系統、使えるようになっています。
逆に、ADCは今まで有ったADC2が無くなっています。

ESP32-C3 ESP32-C6
CPU 32-bit RISC-V single-core processor, up to 160MHz 32-bit RISC-V single-core processor, up to 160MHz
Memory 384 KB ROM
400 KB SRAM
320 KB ROM
512 KB SRAM
Wi-Fi 802.11b/g/n 802.11b/g/n/ax
Zigbee and Thread
Compliant with IEEE 802.15.4-2015 protocol
Advanced Peripheral Interfaces • 22 × programmable GPIOs
• 2 × 12-bit SAR ADCs, up to 6 channels
• 1 × temperature sensor
• 3 × SPI
• 2 × UART
• 1 × I2C
• 1 × I2S
• Remote control peripheral, with 2 transmit channels and 2 receive channels
• LED PWM controller, up to 6 channels
• General DMA controller, with 3 transmit channels and 3 receive channels
• 1 × TWAI controller (compatible with ISO 11898-1)
• 1 × USB Serial/JTAG Controller Console
• 30 or 22 × programmable GPIOs
• 1 × 12-bit SAR ADCs, up to 7 channels
• 1 × temperature sensor
• 3 × SPI
• 2 × UART
• 1 × I2C
• 1 × I2S
• Remote control peripheral, with 2 transmit channels and 2 receive channels
• LED PWM controller, up to 6 channels
• General DMA controller, with 3 transmit channels and 3 receive channels
• 2 × TWAI controller (compatible with ISO 11898-1)
• 1 × USB Serial/JTAG Controller Console
• 1 × SDIO 2.0 slave controller
• 1 × Pulse count controller (PCNT)
• 1 × Motor Control PWM (MCPWM)
• 1 × Remote control peripheral (TX/RX)
• 1 × Parallel IO interface (PARLIO)
• Event task matrix (ETM)

こ ちらのESP32の一覧では、2023年1月時点で、ESP32C6のSoCとモジュールは、既に製品版の出荷が始まっています。
2023年中には開発ボードが入手できると思います。



2023年6月にようやくC6の開発ボードを入手しました。
C6にはQFN40ピンモデルとQFN32ピンモデルが有ります。
QFN40ピンモデルはGPIO0〜GPIO13、GPIO15〜GPIO30の30個のGPIOが有ります。
QFN32ピンモデルはGPIO0〜GPIO9、GPIO12〜GPIO23の22個のGPIOが有ります。
入手したボードにはQFN40ピンモデルが使われています。
ピンアウトはこ ちらに公開されています。


ベンチマークを測定してみましたが、同じ160MHzのC3よりも少し早くなっています。
160MHz動作の環境では、シリーズ最強です。

Dhrystone Whetstone
ESP32C3@160 167 8.3
ESP32C6@160 178 12.5
ESP32@160 95 10.0
ESP32S2@160 95 8.3
ESP32S3@160 142 10.0

esp-idfにはESP32-C6/H2専用のサンプルが幾つか付属しています。
いずれこれらの機能について、試してみたいと思います。
$ grep -rn  "Supported Targets" * | grep ESP32-C6  | grep -v "ESP32 " | grep -v "ESP32-C3"
bluetooth/nimble/hci/README.md:1:| Supported Targets | ESP32-C2 | ESP32-C6 |
openthread/ot_rcp/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |
openthread/ot_cli/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |
peripherals/parlio/simple_rgb_led_matrix/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |
peripherals/rmt/stepper_motor/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 | ESP32-S3 |
peripherals/temperature_sensor/temp_sensor_monitor/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |
peripherals/timer_group/gptimer_capture_hc_sr04/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |
peripherals/ledc/ledc_gamma_curve_fade/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |
system/lp_core/lp_i2c/README.md:1:| Supported Targets | ESP32-C6 |
wifi/itwt/README.md:1:| Supported Targets | ESP32-C6 |
zigbee/esp_zigbee_rcp/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |
zigbee/light_sample/HA_on_off_light/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |
zigbee/light_sample/HA_on_off_switch/README.md:1:| Supported Targets | ESP32-C6 | ESP32-H2 |

続く....