ターゲット MCU とインターフェイス MCU
micro:bit は USB で接続すると USB ディスクとして認識され、ドライバーをインストールしなくてもこのドライブ経由でプログラムできます。これにより、初心者でも使いやすくなっています。さらに、micro:bit 上でどのようなコードを実行していても、あるいはどのようにデバイスをクラッシュさせてしまっても、USB 接続を使っていつでも新しいプログラムを書き込めます。これは、USB 接続、プログラミング、デバッグ専用の別個の「インターフェイスチップ」または「インターフェイス MCU」が micro:bit に搭載されていることで可能になっています。
Interface MCU は、Nordic nRF52833/nRF52820 V2.2x、Freescale KL27 V2.00、または Freescale KL26 V1 です。
開発者が書いたコードが動作し、すべての周辺機器が接続されているチップは「ターゲット MCU」と呼ばれます。これら 2 つのデバイスがどのように接続されているかの詳細については、ハードウェア ページと回路図を参照してください。
Target MCU は、Nordic Semiconductor nRF52833 V2 または Nordic Semiconductor nRF51822 V1 です。
v2 インターフェイス
ターゲット MCU とインターフェイス MCU は、次のインターフェイスで接続されています。
-
ターゲット MCU をプログラムするための Serial Wire Debug(SWD)。
-
2 つのデバイス間でメッセージを送るための UART。実際には、ターゲット MCU からの UART は USB 経由でそのまま PC に渡されます。
-
V2 では、カスタム プロトコル を使用する I2C。
リファレンスデザイン
リファレンスデザイン では、インターフェイス回路が micro:bit のメイン回路から明確に分離されているため、次のことができます。
-
インターフェイス回路なしのボードを構築し、別のデバッガーを使って SWD 経由でそれをプログラムする。
-
インターフェイス回路だけ を備えたボードを構築し、それを使って、自前のインターフェイスチップを搭載するには小さすぎる可能性がある、あなたが作成した他のハードウェアを書き込む。
DAPLink ソフトウェア
このインターフェイスチップでは、Arm Mbed の DAPLink というソフトウェアが動作しています。
このソフトウェアは、特定の用途を持つ 4 つの USB エンドポイントを提供します。
-
MSC - ターゲット MCU のフラッシュメモリをドラッグ&ドロップでプログラムするための USB マスストレージデバイス。
-
CDC - ターゲット MCU から PC へのシリアルパススルー。これは、あなたが書いたコードからのメッセージが PC に届く仕組みです。
-
HID - CMSIS-DAP 準拠のデバッグチャネル。これは、GDB や Keil のような高度なデバッガーを使って、micro:bit 上で何が起きているのか(あるいは起きていないのか!)を理解したい場合に便利です。
-
WebUSB - WebUSB 対応ブラウザー経由でデバイスと通信できるようにします。
DAPLink ソフトウェアとインターフェイスチップは、Arm Mbed HDK の一部です
この表は、デバイスのリビジョンと、出荷時に搭載されていた DAPLink ブートローダーおよびインターフェイスを示しています。
| ボード リビジョン | ブートローダー | インターフェイス | ダウンロード |
|---|---|---|---|
| 1.3 | 0234 | 0234 | 0234 |
| 1.3b | 0234 | 0241 | 0241 |
| 1.5 | 0243 | 0249 | 0249 |
| 2.00 | 0255 | 0255 | 0255 |
| 2.20 | 0256 | 0256 | 0256 |
| 2.21 | 0257 | 0257 | 0257 |
この表は、Foundation によって完全にテストされた、各ボード バージョン向けの最新 DAPLink リリースを示しています。
ベータリリース
DAPLink 0258-beta3
V2.00 および V2.2* 向けのこの DAPLink ベータリリースには、次の改善が含まれています。
- 🚀 書き込みが高速化されました。hex ファイルを
MICROBITドライブにドラッグ&ドロップすると、最大 25% 高速になる場合があります - 🚦 WebUSB 経由で micro:bit をプログラムするときに、USB コネクター横のオレンジ色の LED がときどき点滅しなかった問題を修正しました
- 📋 V2.00 では、データロギングの安定性も向上しています(この改善は V2.2* の工場出荷版リリースにはすでに含まれています)
| ボード リビジョン | インターフェイス | ダウンロード |
|---|---|---|
| 2.00 | 0258-beta3 | V2.00 用 0258-beta3 |
| 2.2* | 0258-beta3 | V2.2* 用 0258-beta3 |
micro:bit の識別方法および DAPLink ファームウェアの更新方法を示した手順は、microbit.org のファームウェアページ にあります。
ファームウェアを更新したら、DETAILS.TXT ファイルに次の行が含まれていれば、このベータバージョンが動作していることを確認できます。
Build ID: v0258-beta3-g0004198b (gcc)
このベータリリースで問題を見つけた場合は、サポート またはこの GitHub Issue トラッカー から報告してください。
そして、何よりも重要なのは、テストしていただきありがとうございます!
DAPLink ブートローダー
micro:bit 上で動作している DAPLink のバージョンは更新できます。これは DAPLink ブートローダーを使用して行います。つまり、実際には micro:bit 向けに DAPLink は 2 回ビルドされます。
bootloader modeは、インターフェース ファームウェアを更新するために使用されます。このモードでは、ドライブ名はMAINTENANCEで、ディスクにドロップされた hex ファイルはインターフェース MCU のフラッシュに書き込まれます。これらのファイルには、DAPLink または同等のイメージが含まれていなければなりません。interface modeは、ターゲット MCU をフラッシュするために使用されます。このモードでは、ドライブ名はMICROBITです。
micro:bit の Web サイトには、ファームウェア バージョンを更新する方法の詳細な手順があります。
信頼できない提供元のファームウェアで micro:bit を更新してはいけません。micro:bit が損傷したり、再フラッシュできなくなったりする可能性があります
MICROBIT ドライブ上のファイル
micro:bit ドライブ上に表示されるフラッシュ ファイル システムは、完全に仮想的なものです。実際のメモリに裏付けられているわけではないため、新しいファイルが書き込まれるとドライブは自動的に取り出されます。ファイルが MICROBIT ドライブにドロップされると、通常の USB メモリ スティックのように記憶メモリに書き込まれるのではなく、ターゲット MCU にストリーミングされます。
ファイル システムには、次の仮想ファイルがあります。
-
DETAILS.TXT: このファイルは、現在インターフェース チップにインストールされている DAPLink のビルドについて示します。DAPLink の後のバージョンでは、より多くの診断情報も含まれます。 -
MICROBIT.HTM: これは、使い始めるのに役立つ microbit.org へのリンクです。 -
MY_DATA.HTM: これは データ ロギング ファイルであり、MICROBIT ドライブに常に存在するとは限りません。
フラッシュ後には、失敗の原因を示す FAIL.TXT ファイルが現れることもあります。
DAPLink ソース内の error.c ファイルは、これらのエラーの意味を診断するのに役立ちます。
また、ナレッジベースには micro:bit のエラー コード の完全な一覧もあります。
ASSERT.TXT ファイルが現れることもあります。これは軽微なエラーが発生した可能性があることを示しますが、DAPLink は回復し、期待どおりに動作できたことを意味します。
UART 接続
Nordic Semiconductor チップのピン数の都合により、インターフェース MCU とターゲット MCU の間では UART の TX および RX ラインのみが接続されています。つまり、ハードウェア フロー制御はできません。そのため、より高いシリアル速度(ボー レート 9600 超)では、micro:bit は送信された文字を取りこぼすことがあります。
HID と CMSIS-DAP
HID エンドポイントは CMSIS-DAP チャネル用です。これは、CMSIS-DAP を使用して Arm Cortex-M マイクロコントローラーのプログラミングとデバッグを行うオープンソースの Python ライブラリである pyOCD を使うのが最も簡単です
WebUSB
WebUSB API は、ブラウザーから USB デバイスと通信できるようにします。
DAPLink ではバージョン 0247 以降でサポートされているため、古い micro:bit をお使いの場合は、DAPLink ファームウェアを更新する必要があります。
この API は現在、Chrome ベースのブラウザー(Android、Chrome OS、Linux、macOS、Windows)で利用可能で、MakeCode Editor と Python Editor でサポートされています。これにより、最初に .hex ファイルを保存する必要なくブラウザーから直接 micro:bit をフラッシュでき、micro:bit とエディターの間でシリアル通信を使用できます。
DAPLink 完全イメージの更新(V2.00 のみ)
これらの手順は、USB ブートローダーとコマンドライン ツールに慣れている場合にのみ使用してください。micro:bit を更新するために、これらを実行する必要が生じることは決してありません。
KL27 内部ブートローダーを使用して、V2 デバイスに完全な DAPLink イメージを書き込むこともできます。これにより、インターフェースとブートローダーの両方が更新されます。
NXP から Bootloader Host Application (blhost) に登録し、ダウンロードする必要があります。/bin フォルダーには、お使いのオペレーティング システム向けの実行ファイルがあります。
ブートローダー モードに入る
このモードに入るには、ボードの電源投入時に TP1 をグラウンドに落とす必要があります。これは KL27 の BOOTMODE ピンです。そのためには、USB ケーブルをデバイスに挿し込む際に、TP1(赤い丸)と任意のグラウンド ポイント(黒い四角のいずれか)をワイヤー(またはペーパー クリップのようなもの)で接続してください。
TP1
ブートローダー CLI ツール
お使いの OS でブートローダー ツールを実行します。これらの手順は CLI に関するものですが、GUI の設定もおおむね同様です。
使用方法:
blhost --help
DAPLink ソフトウェアはブートローダーのフラッシュ領域にフラッシュ保護を有効にしているため、フラッシュの保護解除も行う erase コマンドを使用する必要があります。
blhost -u 0x15a2,0x0073 flash-erase-all-unsecure
次に、micro:bit をコンピューターから取り外して再度接続すると、KL27 は自動的に kinetis ブートローダーに入るはずです。bin ファイルをフラッシュするには:
blhost -u 0x15a2,0x0073 write-memory 0x0 kl27_file.bin
KL27 フラッシュの内容を kl27_flash_dump.bin ファイルに読み出すには:
blhost -u 0x15a2,0x0073 read-memory 0x0 0x40000 kl27_flash_dump.bin