i.MXRT での MicroPython の始め方

MicroPython を使うと、i.MXRT ボードを最大限に活用することができます。逆も同様、i.MXRT チップは MicroPython を使用するための優れたプラットフォームです。このチュートリアルでは、MicroPython の設定、プロンプトの表示、ハードウェアペリフェラルの使用、およびいくつかの外部コンポーネントの制御について説明します。

始めましょう!

必要なもの

最初に必要なのは、i.MXRT チップを搭載したボードです。MicroPython ソフトウェアは i.MXRT チップ自体をサポートしており、どのボードでも動作するはずです。ボードについて気にするとことは、GPIO ピンが外にどのように接続されているか、UART を PC で使用できるようにする内蔵 USB シリアルコンバータが含まれているかどうかです。

このチュートリアルではピンの名前にチップ名(例: GPIO2)を使っていますが、これが特定のボード上でどのピンに対応するかを見つけるのは簡単なはずです。

ボードの電源を入れる

ボードに USB コネクタがある場合は、PC に接続されているときに電源が供給されている可能性が非常に高いです。それ以外の場合は、直接電源を入力する必要があります。詳細については、ボードのドキュメントを参照してください。

ファームウェアの入手

ファームウェアは MicroPython の ダウンロードページ で提供しています。最新の MicroPython ファームウェアの .hex または .bin ファイルをダウンロードして、i.MXRT デバイスにロードできます。このダウンロードページでは主に2つの選択肢があります:

  • 安定ビルド版ファームウェア
  • 日次ビルド版ファームウェア

MicroPython を使い始めたばかりの方には、安定版ファームウェアビルドをお勧めします。経験豊富で経験豊かな MicroPython i.MXRT ユーザーで、開発が続けられている新機能をテストしたい場合は、毎日ビルド版があります。

ファームウェアの配備

MicroPython ファームウェアを取得したら、i.MXRT デバイスにロードする必要があります。これらの手順の正確な手順は、特定のボード"に大きく依存します。詳細については、そのドキュメントを参照する必要があります。

Teensy 4.0 と 4.1

Teensy 4.0 と 4.1 では、内蔵ローダーと PJRC が提供するPCローダーを使う必要があります。内蔵ローダーは、基板上のボタンを押すことで起動します。その後、次のコマンドでファームウェアをアップロードします。

teensy_loader_cli --mcu=imxrt1062 -v -w firmware.hex

IMXRT10xx-EVK ボード

IMXRT10xx-EVK ボードには、サポートMCUに接続された2つ目のUSBポートがあります。そのUSBポートをPCに接続すると、ボード名と同じ名前のディスクドライブが登録されます。このドライブに firmware.bin ファイルをコピーするだけで、フラッシュ手続きが開始されます。このドライブが消えたり現れたりすれば、フラッシュが完了したことが分かります。もし、非常に便利な Segger open-SDA ファームウェアを sidekick MCU にインストールすることに決めたなら、デバッガーソフトウェアを使って i.MXRT ファームウェアをアップロードしなければなりません。

Seed ARCH MIX ボード

Seed ARCH MIX ボードへのファームウェアのアップロードは、あまり便利ではありません。ベンダーは、方法とツールとして J-Link の利用を提案しています。そのためには、Seed が彼らの Wiki( https://wiki.seeedstudio.com/Arch_Mix/#flashing-arduino-bootloader-to-arch-mix )で記載している指示に従います。J-Link のデバッグプローブとソフトウェアが必要です。Segger JLink edu や Segger JLink edu mini が便利でしょう。マッチングローダーとして、JFlashLite を使用できます。ローディングのターゲットアドレスは 0x60000000 です。

MIMXRT ファミリーは、シリアルアップロード方式もサポートしています。シリアルアップロード用のソフトウェアはNXP社から提供されます。使用方法は次の通りです:

  • J3 の19番ピンを3.3V (GPIO_AD_B0_05)に接続します。
  • DIP-Switch の設定を off-on-off から off-off-on に変更します。
  • リセットを押します
  • 次でアップロードを実行します: /FLASH.sh <ファームウェアイメージのファイル名>
  • アップロードが終了したら、DIP-switch を off-on-off に戻します。
  • J3、Pin19のジャンパを外し、リセットを押します。

Flash ローダーをスーパーユーザーで実行しないようにするには、提供されている udev-rules スクリプトを /etc/udev/rules.d/ にコピーすればよいでしょう。FLASH.sh は blhost と sdphost という2つのバイナリを呼び出しますが、これらは BSD-3-Clause License の下でNXPから提供されています。これらのバイナリとスクリプトのバージョンは、 https://github.com/robert-hh/Shared-Stuff/blob/master/mimxrt_serial_downloader.zip でダウンロードできます。

シリアルダウンロードは、NXP MIMXRT ボードにも使用できます。しかし、内蔵ローダーの方が使い勝手が良いです。

シリアルプロンプト

デバイスにファームウェアをインストールしたら、USB を介して REPL (Python プロンプト)にアクセスできます。

ここまでできたならば、後は i.MXRT チュートリアルにしたがって進めることができます。

インストールの問題のトラブルシューティング

フラッシュ中またはファームウェアの実行直後に問題が発生した場合は、次の推奨事項を参照してください:

  • ハードウェア上の問題がないかを調べ、取り除いてください。発生しやすい問題は2つあります。電源品質が悪いことと Flash ROM の寿命/欠陥です。電源と言えば、素のアンペア数だけでなく、一般的に低リップルやノイズ/EMIも重要です。最も信頼性が高く便利な電源はUSBポートです。