A Day in the Life

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にのってる。

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.3V0.25V が LOW、0.753.6V が HIGH

で、0.75V~HIGH は割とHIGH判定低そうなんだけど、こんな物なのかなー。

消費電力

  1. 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かつハードウェア暗号化が可能だからね)

記事の一覧 >

関連するかもエントリー

esp8266 のSRAM
データシートによるとRAM size is around 50 KB, that is to say, when ESP8266EX is working under the station mode and is connected to the router, program...
データシートによるとRAM size is around 50 KB, that is to say, when ESP8266EX is ...
ESP8266 上で Lua インタプリタが動くファームウェア、NodeMCU を使う
NodeMCU は、Node.js のように非同期でイベントドリブンなコードを書く事が出来る、ネットワークを利用する ESP8266 とは相性が良い開発環境(ファームウェア)。Lua インタプリタが動くので、マイコン上でプログラムを動的に実行できる。また NodeMCU 用のハー...
NodeMCU は、Node.js のように非同期でイベントドリブンなコードを書く事が出来る、ネットワークを利用する ESP8266 とは相...
mbed で Serial の CTS/RTS を普通のGPIOとして利用する
現状バグっていて出来ない。BLE NanoのSerialクラスのバグ回避 - 滴了庵日録BLE Nano + mbed の Serial の実装がつらい感じだった | tech - 氾濫原DEVICE_SERIAL_FC を定義すればうまくいきそうなものの、こちらもうまく動かない...
現状バグっていて出来ない。BLE NanoのSerialクラスのバグ回避 - 滴了庵日録BLE Nano + mbed の Serial の...