RP2040
Raspberry piの開発したMCU。Raspberry pi picoに使われている。
昨今のマイコン不足にも関わらず安定供給されている。
性能の割に驚くほど安いが、代わりにFlashを内蔵していないというつらみがある。
今回はこいつを「普通のマイコンとして」使う方法を模索している内容を書いていく。
ちなみにまだ動いていない。つらい。
USB使いたくないマン
通常だとUSBを使え、USBを使え、USBで書き込め、BOOTSELボタンが、とか
そんなにUSB経由で書き込ませたいのかというくらいラズピコ(Raspberry pi picoのこと)的な
やり方ばかり目につくのでまだ普通に基板開発している人は少ない模様。
でも普通に自作基板作るのにいちいちUSBコネクタつけて書き込むの嫌なので
SWDというデバッグとかに使うナニカを使って書き込むのにチャレンジ。
使うもの
・Raspberry pi4
Arduino IDEを...というかopenocdとかいうものを動かすのに
Macでやって構築できず、Winでもできず、Linuxだと楽にできるらしいのだが
適当なマシンがなかったのでどのご家庭にも転がっているRaspberry pi4を
Arduino IDEのホストにしてMacからVNC経由で使うことにする。
Real VNCのVNC ViewerだとMacからPRi4にコピペもできるのでかなり便利。
多分3とかでも良いと思う。
・書き込み機(デバッガ)にするラズピコ
picoprobeというものを書き込むとこいつでRP2040に直接書き込めるらしい
・書き込まれる方のラズピコ(テスト用)
上のページにある通りラズピコの片方をpicoprobeにして、もう片方を書き込み対象にして
テストできるので、何もわからんになった時に最初に立ち戻るためにラズピコはもう1台あると良いと思う。
配線とかその辺は各自適当に
Arduino IDEまわりの環境構築
https://mickey-happygolucky.hatenablog.com/entry/2021/02/18/235625
書き込み環境はこちらがとても参考になりました。
picoprobeの書き込みのところまでこの通りにやる。
udevのルールとかよくわからなかったけどコピペで行けた。
https://beta-notes.way-nifty.com/blog/2021/04/post-700a49.html
こちらのPico Arduino Installを参考にボード情報を追加する。
回路
https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html#rp2040-device
こちらが参考になるというか、KiCadのサンプルプロジェクトもあるのでそこから作り替えるとかなり楽。
手を加えたところ(別名:死亡フラグ)
・USB関係を削除
これは問題なかった。
・外部クリスタル周りの回路を削除
データシートに外部クロックなくても動くと書いてあったので。
しかしこれが罠で、Arduino IDEが使うPico C/C++ SDKでは
外部クロックが必須なのであった...
https://twitter.com/ciniml/status/1525750935946809344
未完
というわけで、多分外部クロックを追加すれば動くんじゃないかな、というのがイマココなわけです。
つまり、それ以外にもなにかダメなところがある可能性も捨て切れない。
まて、追記。