右クランク用のArduino ATMEGA328P(3.3V8MHz内蔵)SD書き込みが200μsecと速かったのですが、左クランクで同じ基板を作るのは飽きちゃうので、mbed CPUで最安のmbed LPC1114FN28を検討するために、μSD書き込み速度を測定してみました。
●結果と考察
①クロック周波数からすると8MHz対50MHzと圧倒的に速いと思っていたのですが、SD書き込みデータで時間を測定してみるとなんと、ATMEGA328Pが200μsecに対して、LPC1114FNが300-330μsecと遅かったです。SDカードがHC16GBで、速度を律速していますが、それでも100μsec遅いのいは、CPUハードというよりは、mbedOSとSDFileSystemライブラリーに原因がありそうです。
=>SDファイル書き込みでなく、単にPCへの転送だと115200bpsで1.8msec周期、230400bpsで0.9msecでしたので、シリアル速度が律速しているので、50MHz相当でコードが走っていると思います。
=>LPC1114FNは、ちょっとしたプログラム変更です頻繁にメモリーフルエラーが頻発しますので、これは、mbed コードが重すぎるという印象があります。これが最重要課題で、LPC1114FNは、使い方をシンプルなデータを高速転送などに限定すれば使えるので、無線モジュールへセンサデータを転送するなどの使い方では、ATMEGA328Pより高速で使えますので
TPOで使い分けしないといけませんので、汎用ではないということです。
③mbed2.0対応のLPC1114FNは、製造中止になっているので、それなりの実力しかなかったということなので、モノが良くてもコト作り(ソフト)とのバランスがとれてなかった製品だったと理解いたします。
その点、Arduinoは、大昔からATMEGA328Pだけで膨大なソフトウェア資産が構築されていますので、mbedほどハードとソフトのバージョン違いで動作できない問題が発生しにくい点が普及の原動力であり、アドバンテージだと思います。モノ作りとコト作りのバランスがとれてきたので長生きできたのですが、あと10年もつかというと流石に時代の変化にはついていけないと思います。
●ATMEGA328PとLPC1114FN28のスペックを確認してみた
ATMEGA328P (内蔵8MHz) |
LPC1114FN28 | |
秋月品名 | Arduino Bootloader書込済(3.3V 内蔵8MHz仕様) ATmega328P | LPCマイコン LPC1114FN28 |
秋月価格(2019/6/26) | 330円(Boot書き込み済) | 400円 |
メーカー | ATMEL datasheet | NXP datasheet |
CPU core | 8bit AVR | ARMCortex-M0 |
サイズ | 35×8 | 36×16 |
ピン数 | DIP28 | DIP28 |
Flash量 | 32KB | 32KB |
RAM量 | 2KB | 4KB |
CPU CLOCK 最大 | 8MHz | 50MHz |
ピン配置図(clickで拡大) | ||
IF | UART 1,SPI 1,I2C 1 | UART 1,SPI 1,I2C 1 |
供給電圧 | VCC:2.7V~5.5V | Vdd:1.8V~3.6V Vss:GND |
AD変換電圧 | AVCC=VCC 3.3V ※電圧レギュレータが無い |
Vdda=Vdd Vssa:GND ※電圧レギュレータが無い |
生産供給 | Arduinoで採用されている | 製造中止 |
PCからの書き込み方法 | ISPモード内蔵なので シリアル接続でArduinoIDEと接続してプログラム書き込み可能詳細は、 https://htdeko.com/arduino/atmega328p.html |
ISPモード内蔵なので シリアル接続でmbed binファイルを転送すれば書き込むことができるが書き込みボード付きでスイッチサイエンスで2160円で販売している 他には秋月の解説書があって2種類の書き込み方法がある |
対応OS | Arduino | mbed2.0 (サポートなくなる) |
●結論:
モノ作り的ではなく、コト作り的にATMEGA328Pが圧倒的に有利です。LPC1114FNを使っていても数年ももたない感じがしますが、私は、6個も持ってますので、何か最適な用途で生かしたいと思います。
クランク基板なら、無線モジュールで115200bpsで転送する
場合は、ATMEGAは速度追いつかないので、LPC114FNが勝ちです。
今回は、SDカード書き込み速度で比較したので、ATMEGAが勝ちましたが
CPUハードの高速性が必要な用途はダメだと思います。
●mbedのローエンドCPUで対ATMEGA候補
LPC1114FNシリーズのワンランク上でLPC11U35があります。
これは、ピン数32ピンと多いので長さが5㎜ほど長いですが
性能は格段に向上してます。これでもμSD書き込み測定してみます。
ARM CorTexで,電子工作に向いた小型低価格の定番品が無い点
が見えてきたのですが、これが将来的になにかでてくるのではないかというネタとして検討していきます。左クランクなら多少大きくても使えるので手持ちのLPC11U35で組んでみます。
●以後
ATMEGA328Pがクランク用途でどこまでつかえるか、SDカード以外に
シリアル無線送信速度がどこまで上がるかが重要なので、シリアル転送速度を測定してみます。
※2019年12月4日記
その後、計測システムを4個試作しましたが、CPUは、プアなスペックでは全然役にたちませんでした。
力とか加速度を測定するのに、処理速度が50MHz以下で10ビットのADC、32KBフラッシュなどチープな仕様のCPUでは、拡張性もなく、まともな計測システムにはくみこめませんでした。
おもちゃという扱いで、趣味のIOTでも使えませんので、マイコン入門用として扱うべきです。ということで、最終的には、STM32シリーズでサイズと性能が最高のパフォーマンスのNUCLEO L432KC に落ち着きました。Lシリーズなので省エネで単三3本で十数時間持ちます。
仕様:https://os.mbed.com/platforms/ST-Nucleo-L432KC/
国内調達できるようになって安くなった件、秋月は、未だ扱ってませんが、来年あたり扱うと思います。