PicWriterUSBの一応の完成
こんにちは、リゲル・インテリジェンスです。
ハードウェア、ソフトウェアそれぞれのコンポーネントの動作確認が終わりましたので「PicWriterUSB」として一本のプログラムにまとめます。
将来的な拡張があるかわかりませんが、対応しやすいようにフォルダとファイルの構成を下記のようにしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
work/ ├── pico_sdk_import.cmake └── pic_writer_usb/ ├── CMakeLists.txt ├── src/ │ ├── msc_main.c ┐ │ ├── msc_disk.c ├─ msc_testのファイル(pico-sdkのサンプルから改変) │ ├── usb_descriptors.c │ │ ├── tusb_config.h ┘ │ ├── parse_hexfile.c ┬─ Core1のmain()を含み、Core0とのやり取りとファイルデータのパース等 │ ├── pic_writer_usb.h ┘ │ ├── pic_access.c ┬─ PICマイコンのアクセス関数群 │ ├── pic_access.h ┘ │ ├── pic_command.pio ── ICSPCLK/ICSPDATをコントロールするPIOプログラム │ └── pic_device_database.h ── デバイス依存のパラメータ等 └── build/ ├── pic_command.pio.h ── PIO asmにて自動生成 ├── pic_writer_usb.uf2 │ : |
ビルド済みの「.uf2」ファイルとPico SDKをベースとして改変したソースコードはこちらからダウンロード出来ます。
利用の際にはREADMEをご一読ください。
現時点でサポートしているのはPIC16F1823のみです。pic_device_database.hにはPIC12F1822やPIC16F1827の記載もありますが、動作確認は出来ていません。
RP2040のDual core対応やPIOの利用、マスストレージクラスを実装したことによるホストOSに依存しない(特別なアプリが不要な)動作環境など、RP2040の性能にも助けられてなんとか纏めることが出来ました。購入したSeeed XIAO RP2040がムダにならずに良かったです。なお、今回は手元にあったSeeed XIAO RP2040を使用しましたが、本家のRaspberry Pi Picoでも使用可能と思います。ボードのサイズは少し大きくなってしまいますが。
元々、MacからPICマイコンを書込みたくてPicWriterUSBを作ってみたわけですが、その目的は達成できたかと思っています。が、もう少し開発環境として良くしたいと思います。
VSCodeの導入です。
コメント