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 で高速処理を目指すのも良いし,ですね。
マイク,スピーカーなどが最初から実装されて面白くなり,にぎやかな開始音とともにブロックには早速マイクやスピーカーなどの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 で高速処理を目指すのも良いし,ですね。