micro:bitがVer.2になり大きくモデルチェンジしました。

マイク,スピーカーなどが最初から実装されて面白くなり,にぎやかな開始音とともにブロックには早速マイクやスピーカーなどのVer.2の機能が追加されていました。

また,もう一つの目玉はMCUのバージョンアップによる高速化とメモリの増加です。

Model Nordic nRF52833
Core variant Arm Cortex-M4 32 bit processor with FPU
Flash ROM 512KB
RAM 128KB
Speed 64MHz
詳しくは本家 → Hardware Details of the latest micro:bit hardware revision


これはかなり使えそうなので,Arduino IDEのサポートをチェックしてみました。

机の上が一杯なので,,PCの上です(^^;;;;。



1.Arduino IDE のボードマネージャの更新
micro:bit Ver2のための更新がありました。更新するとボードに選択肢が追加されました。
なお,更新にはPCがフリーズしたのではないかと思うほど時間がかかりました,,。じっと待つか他の事をしておくと良いと思います(^^;;;;;。





2.デジタル入出力のPin番号
 これはキレイにサポートされているようです。micro:bitのエッジPin0-15から出力して確かめてみました。

チェックプログラムと,ロジアナ画像です。
600nsぐらいのパルス は出ていると思います。NeoPixel系のRGBLEDに使うにはまだ遅いですが,結構速くなっていますね(^^)。





3.ポートコントロールのPin番号
 ポートコントロールはデジタル出力を速くするのに必要ですが,micro:bit Ver.2ではMCUのPort0だけでなくPort1も使うようになったのでArduino IDEの対応はどうかなと思っていました。
 やってみるとちゃんとサポートされていて,下記の書き方で動きました。





ループで回すと200nsぐらいのパルス は出ているようで,チェックしたPinは全てOKでした。





4.単独のPinでのポートコントロール
 ループで回すと思ったより遅い結果でしたので単独のPinを使ってみました。

1と0を交互に出すとパルス が短すぎるので1/1/0/0にしています。




1パルスに換算すると30nsぐらいのパルス幅で出ていると思います。
結構速いです(^^;;;;;




5.SPI通信の速度は8MHzで限界か
 SPIは速ければ速いほど良い用途が多いのですが,どうもVer.2でも8MHzが限界に設定されているように思います,,。

SS (SlaveSelect)をPin0においてみたチェックプログラムです。




クロック8MHz設定まではデータの崩れなどはみられませんでした。



クロックを10MHz, 12MHzなどに上げるとデータが崩れました。16MHzではデータは大丈夫でしたがクロック波形は8MHzと同じでした(^^;;;;;;;;。

なおSSを設定しない場合でもOKのはずですが,どうもタイミングの問題なのかデータが化けました,,,。

1byte送信後,1usのdelayをおくと良くなりましたが,遅くなるし納得がいかないので要検討事項です。



micro:bitもVer.2になってかなり強力になってきました。Arduino IDEもサポートしてくれているようなのでまずは安心しましたV(^^)。

ブロックで楽しむのも良いし,Arduino IDE で高速処理を目指すのも良いし,ですね。