mbedで開発出来るようになるかもしれない、2$のWiFi SoC、RTL8710について
蟹NICでお馴染みの realtek 社の WiFI が使える SoC マイコン RTL8710。安価なWiFi SoC は TELEC認証通ってるESP8266あるし、そんなに興味が無かったんだけど、Tiny $2 IoT module runs FreeRTOS on Realtek Ameba WiFi SoC の記事に出ている PADI IoT Stamp というモジュールが
OS: FreeRTOS, ARM® mbed™ (future planning)
とのことで、mbed で開発出来るとなると、ちょっとしたプロトタイピングがとてもやりやすくなるので俄然興味がわいた。
PADI IoT Stamp
お値段 1.99$ (予定)
スペック
PADI のデータシートや、オフィシャルのWebにのってる。
-
http://files.pine64.org/doc/PADI/documentation/padi-iot-stamp-datasheet.pdf
-
SoC: RL8710AF
-
CPU: ARM Cortex-M3 (83MHz)
-
ROM: 1MB
-
RAM: 512KB
-
FLASH: 1MB
-
WiFi: 802.11b : 11 Mbps , 802.11g : 54 Mbps , 802.11n : 150 Mbps
RAMは
Based on current SDK SRAM usage, the usable SRAM space is more 48 KB.
とのことで、標準SDKを使うと、約48 KB の領域が利用できる模様。
電源とロジックレベルは
- VDD: 3.3V (min 3.0-max 3.6)
- -0.3V
0.25V が LOW、0.753.6V が HIGH
- -0.3V
で、0.75V~HIGH は割とHIGH判定低そうなんだけど、こんな物なのかなー。
消費電力
- Power Consumption
のデータシートより。
- Transmitting 802.11g, OFDM54Mbps, POUT= +15dBm
- 180mA
- Normal Standby
- 30mA
- Deep-Sleep
- 10uA
WiFi 使うとまぁこれぐらいかかるか。たぶん Deep-Sleep は ESP8266 と同じで、指定時間後にリセットがかかるタイプかな。
Note 3: Deep - Sleep is applied to applications that do not require WiFi connection to be active all the time. The application only sends a packet after long time interval, such as in a measurement temperature sensor that only needs to connect every 100 seconds. For example, with the application awake 0.3 s – 1 s to connect AP after every 300 s sleep time, the overall average current consumption can be much lower than 1 mA.
見たいな使い方だと、平均 1mA ほどとのこと。
開発
まだ mbed で提供されてないので、Ameba とよばれる、Realtek の SDK を使う。以前は NDA が必要だったようだけど、今は不必要のよう。sdk の zip の中身をさらっと見たら
- arm-none-eabi-gcc ( 4.8.3-2014q1 )
- FreeRTOS
も同梱されていた。example にもざっくり色々入ってた。
analogin_voltage gdma gpio_port i2c_epl2590_light i2s_tx_and_rx_only pm_deepstandby spi uart_clock crypto gpio gpio_pulse_measure i2c_epl2590_proximity log_uart_char_loopback pm_sleep spi_pl7223 uart_irq efuse_mtp gpio_irq gtimer i2c_LPS25HB_pressure log_uart_loopback pm_tickless spi_stream_twoboard uart_stream_dma efuse_otp gpio_jtag gtimer_rtc i2c-shtc1 log_uart_stream_loopback pwm spi_twoboard uart_stream_irq ethernet_mii gpio_level_irq i2c i2s nfc pwm-buzzer uart watchdog flash gpio_light_weight i2c_epl2197_heartrate i2s_bypass pm_deepsleep sdio_device uart_auto_flow_ctrl wlan
書き込みやデバッグは、JTAG/SWD で行う。
PADI でない開発ボード
AliExpress や ebay で RTL8710で検索すると、nodemcuぽいピン配置の RTLDUINO(CH340が載ってる?) など、いくつか見つかる。
ESPシリーズと比較して
ESP8266 はすでに技適取得済のボードがあり、また開発には Arduino 互換のAPIを備えたファームウェアがあり、開発も容易なことからエコシステムも発達している。
しかしながらESPはCPUアーキテクチャが xtensa なため、arm 関係の技術を利用することができない。
RTL8710はスペック的にはさほどESP8266シリーズとは変わらないが、アークテクチャが ARM Cortex-M3 なため、もし mbed-os を使って開発が可能になると、一気に再利用できるエコシステムが広がり、2$という価格も相まって、ESP8266よりも人気が出る可能性がある。
ただ残念なこととしては、ハードウェア暗号化チップが載っておらず、ソフトウェア側でエンコードする必要があるため、SSLをつかった通信が果たしてどれだけ現実的かどうか。2016年に出るWiFiが使えるSoCとしては、価格が上がっても載っていて欲しかったなー、と思ったりする。(ESP8266後継のESP32はESP8266に比べ価格が上がりそうとは言え、WiFi+BLEかつハードウェア暗号化が可能だからね)