Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ターゲット 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 経由でそれをプログラムする。

  • インターフェイス回路だけ を備えたボードを構築し、それを使って、自前のインターフェイスチップを搭載するには小さすぎる可能性がある、あなたが作成した他のハードウェアを書き込む。

このインターフェイスチップでは、Arm MbedDAPLink というソフトウェアが動作しています。

このソフトウェアは、特定の用途を持つ 4 つの USB エンドポイントを提供します。

  • MSC - ターゲット MCU のフラッシュメモリをドラッグ&ドロップでプログラムするための USB マスストレージデバイス。

  • CDC - ターゲット MCU から PC へのシリアルパススルー。これは、あなたが書いたコードからのメッセージが PC に届く仕組みです。

  • HID - CMSIS-DAP 準拠のデバッグチャネル。これは、GDB や Keil のような高度なデバッガーを使って、micro:bit 上で何が起きているのか(あるいは起きていないのか!)を理解したい場合に便利です。

  • WebUSB - WebUSB 対応ブラウザー経由でデバイスと通信できるようにします。

DAPLink ソフトウェアとインターフェイスチップは、Arm Mbed HDK の一部です

この表は、デバイスのリビジョンと、出荷時に搭載されていた DAPLink ブートローダーおよびインターフェイスを示しています。

ボード リビジョンブートローダーインターフェイスダウンロード
1.3023402340234
1.3b023402410241
1.5024302490249
2.00025502550255
2.20025602560256
2.21025702570257

この表は、Foundation によって完全にテストされた、各ボード バージョン向けの最新 DAPLink リリースを示しています。

ボード リビジョンブートローダーインターフェイスダウンロード
1.*02**02530253
2.00025502550255
2.2*025702570257

ベータリリース

V2.00 および V2.2* 向けのこの DAPLink ベータリリースには、次の改善が含まれています。

  • 🚀 書き込みが高速化されました。hex ファイルを MICROBIT ドライブにドラッグ&ドロップすると、最大 25% 高速になる場合があります
  • 🚦 WebUSB 経由で micro:bit をプログラムするときに、USB コネクター横のオレンジ色の LED がときどき点滅しなかった問題を修正しました
  • 📋 V2.00 では、データロギングの安定性も向上しています(この改善は V2.2* の工場出荷版リリースにはすでに含まれています)
ボード リビジョンインターフェイスダウンロード
2.000258-beta3V2.00 用 0258-beta3
2.2*0258-beta3V2.2* 用 0258-beta3

micro:bit の識別方法および DAPLink ファームウェアの更新方法を示した手順は、microbit.org のファームウェアページ にあります。

ファームウェアを更新したら、DETAILS.TXT ファイルに次の行が含まれていれば、このベータバージョンが動作していることを確認できます。

Build ID: v0258-beta3-g0004198b (gcc)

このベータリリースで問題を見つけた場合は、サポート またはこの GitHub Issue トラッカー から報告してください。

そして、何よりも重要なのは、テストしていただきありがとうございます!

micro:bit 上で動作している DAPLink のバージョンは更新できます。これは DAPLink ブートローダーを使用して行います。つまり、実際には micro:bit 向けに DAPLink は 2 回ビルドされます。

  1. bootloader mode は、インターフェース ファームウェアを更新するために使用されます。このモードでは、ドライブ名は MAINTENANCE で、ディスクにドロップされた hex ファイルはインターフェース MCU のフラッシュに書き込まれます。これらのファイルには、DAPLink または同等のイメージが含まれていなければなりません。
  2. 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 とエディターの間でシリアル通信を使用できます。

ご注意ください - 通常の micro:bit の使用において、この手順が必要になる状況はほとんどありません。これは、V2.00 KL27 インターフェース MCU 上のコードを試したい開発者にとって micro:bit をより扱いやすくする目的で、ここに記載しています。お使いの micro:bit が MAINTENANCE または MICROBIT モードで認識される場合、これらの手順を実行する必要は決してありません。

これらの手順は、USB ブートローダーとコマンドライン ツールに慣れている場合にのみ使用してください。micro:bit を更新するために、これらを実行する必要が生じることは決してありません。

KL27 内部ブートローダーを使用して、V2 デバイスに完全な DAPLink イメージを書き込むこともできます。これにより、インターフェースとブートローダーの両方が更新されます。

最新の完全な DAPLink イメージをダウンロード

NXP から Bootloader Host Application (blhost) に登録し、ダウンロードする必要があります。/bin フォルダーには、お使いのオペレーティング システム向けの実行ファイルがあります。

KL27 フラッシュを消去/フラッシュする前に、nRF52 フラッシュが消去されていることを確認してください。nRF52 上で動作しているプログラムは KL27 の内部ブート プロセスに影響し、kinetis ブートローダーが実行されなくなる可能性があります。nRF52 を消去するには、erase-flash.hex ファイルをフラッシュできます。

ブートローダー モードに入る

このモードに入るには、ボードの電源投入時に 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