PicWriterUSB:ソフトウェア編【USBマスストレージ】

msc_test01

PicWriterUSBの機能実装に必要な機能を考える

こんにちは、リゲル・インテリジェンスです。

Seeed XIAO RP2040をPICマイコンの書込み器に利用する際に、どのような機能にするか=どのようなソフトウェアコンポーネントが必要か、を考えてみました。あまりに実装が困難ですとホビーレベルの工作では辛くなってしまいますので。

  1. RP2040をUSBマスストレージクラスデバイス=USBドライブとしてホストOSに認識させる
    • USBマスストレージクラスの実装
    • ファイルシステム:互換性を考えるとFATが無難
  2. PICマイコンの「.hex」ファイルを上記ドライブにコピーすることで書込みを開始する
    • 「.hex」ファイルが書き込まれことをキャッチする方法
    • ファイルシステム(FAT)に置かれたデータのリード:RP2040にて内部利用するためのFATリーダー
    • 「.hex」ファイルのParser
    • PICマイコンの書込み機能に関するハードウェアコントロール&コマンド実装
  3. 折角なので可能な限り書込みスピードは上げたい
    • デュアルコアへの対応
    • RP2040、PIOモジュールの利用

ぱっと思いつくのはこのくらいでしょうか。やはり実装として重そうなのは「USBマスストレージ」かと思います。
結論から申しますと、pico SDKにあるTiny USBの実装例が今回の目的にピッタリでした。
pico-sdk/lib/tinyusb/examples/device/cdc_msc
を改変して使用することにします。早速ソースコードをwork/msc_testフォルダにコピーしてビルドを試します。

上記のようにフォルダを作成しファイルを配置したら、Tiny USBを参考にCMakeLists.txtを変更します。

ビルドします。Tiny USBに使用するデバイスを指定する必要があるのでcmake に -D オプションを追加します。
(exportは適宜実行のこと)

build/msc_test.uf2をSeeed XIAO RP2040にUSB経由で書込みます。一旦ホストPCから切断された後「TinyUSB MSC」というドライブ名(ボリュームラベル)にて再認識されれば動作確認は完了です。

次ページではTinyUSB MSCに必要な改変を行っていきます。

コメント

タイトルとURLをコピーしました