Seeed XIAO RP2040のCPUは、RP2040 133MHz。これをアセンブラで動かせば、QY20の画像信号の速度には対応できそう。
色々調査したところ、RP2040には、PIOという機能があり、マイクロコードのように、CPUコアをそれぞれ直接制御できるらしい。ただし小さなプログラムで、IO制御がメイン。説明書を読むと、外部の高速IFに対応するような目的らしいので、今回の問題にぴったり。
しかし、問題が1つ。
ほとんどの文献は、Seeed XIAOでなく、Raspberry Pi Picoを使った内容。XIAOで行うには環境がなく、PIO仕組みさえ知らない私は、環境の知識もない。なので、実験環境は、Picoで行うことにした。また、その環境もArduino環境でなく、Visual Studio Code環境。
ということで、開発キットのダウンロードと、VSCの環境構築。
環境を作ってからわかったのだが、、以前、初めてPICOを触ったときにも、VSCで環境を作ったよう。サンプルを動かすだけの環境のため、どっちみち、再構築が必要だった。
で、まずは、Cだけのプログラム実行。Arduinoでは、Arduino言語と呼ばれているらしいCのフレームワークで、setup()とloop()でプログラムしていたのが、main()に変わる。Arduino言語(Arduino IDE)でもmain()は使えるけど、初期化内容が違うようで、シリアルモニタ表示できなかった。VSCでビルドして、PICOにコピー。PICOが自動再起動して、シリアルポート接続で、printfが見えるようになった。
これで、普通のプログラム環境はできた。
次に、PIO開発環境。Web情報を参考に、なんとか、Lチカはできたが、ビルド環境やプログラムの連携、動作フローがわからない。その状態なので、Cで表示できたprintfも表示しなくなった。多分、初期化処理が変わったのだろう。
とりあえずは、PIOが動き、開発環境もできたので、第一歩は踏み出せた。しかし、道は長い。そして、QY20の代替LCDを作るためだけに、なにをしているのか。。。