1つ前のRaspberry Pi Pico 2の記事の派生話。
- 細ピンヘッダ
- 0.65mm×0.45mm?
- 0.5mm×0.5mm?
- 最後に
続きを読む
Raspberry Pi Pico 2が発売されましたねー。今回はPico2の新機能を使った実験です。
表示遅延計測と言っても、Pico2では1080p60や2160p60等は出力できずフルHDや4Kのモニタのネイティブ解像度で表示できないので、スケーリングで遅延が増える古い一部のモニタには向きません。
なお、HDMI接続ですが出力する信号自体はDVI-D信号です。HDMIはDVI-Dに対して上位互換性があるので、HDMI接続でもDVI-D信号を表示することができます。
先にソースコードと.uf2ファイルを置いておきます、コンパイルする環境が無くても.uf2ファイルをPico2に入れれば動くと思います。
hstx_dvi_out_lag_test.zip - Google ドライブ
Raspberry Pi公式のHSTX機能のサンプルdvi_out_hstx_encoderがプログラムのベースです。
開発環境はWindows 11とVS Code、PlatformIOでArduino-Picoを使用してます。Arduinoの機能はシリアル通信くらいしか使ってません。シリアル通信はPico SDKのものよりArduinoの方が使い慣れてたのでこっちを使ってます。
続きを読む

Raspberry Pi PicoでNTSCの映像信号出力に挑戦。前回はモノクロ出力でした。
今回はカラー出力なんですが、バグというか何故かNTSC出力の処理が一瞬停止して横にノイズが走ってしまうという問題(何らかの割り込み?メモリアクセス待ち?)が起き、その原因の調べ方がわからず詰まっている間にゼルダのティアキンが出てそっちに没頭してしまっていたため、Picoの方がほったらかしになってました。
問題の調査の仕方自体がわからなくて原因不明のままなのですが、デュアルコアCPUの2コア目の方を使えば問題なくNTSCカラー出力できる状態なので、とりあえずここで一段落とします。
プログラムはゼルダが出た15ヶ月前のままで、今見返すと色々と忘れてしまっています。なので今回の記事は実際のプログラム内容と違うことを間違って書いてる箇所があるかもしれません。
続きを読む

Raspberry Pi PicoでNTSCの映像信号出力に挑戦。一度NTSC映像信号生成ってのを試してみたかったんですよねー。
PicoにはPIO(programmable I/O)なる小規模なCPU的なハードが載ってて、メインのCPUから独立してちょっとした処理を行うことができます、しかもCPUと同じクロックスピードで。命令も全て1クロック。
これ使えば専用のIC使ったりしないでリアルタイムにNTSC信号作れちゃうのでは!?というのが今回のチャレンジです。
最終目標は320x240くらいの解像度のカラー映像の表示です、が、まずはモノクロ映像に挑戦します。信号がカラーよりシンプル*1で難易度が低い。
*1:というか白黒テレビに後付けでカラーにする信号を乗っけてるので、白黒がシンプルというよりカラーで複雑化という感じ?
Raspberry Pi PicoのPIOやDMAは1クロックごとに処理が可能ですが(125MHzなら秒間1億2500万回)、データをDMAでPIOに送り続ける場合にautopull・PIOからDMAへのDREQ(データリクエスト)・DMAチャンネル間のchain trigger等の使用時でも待ち時間なしにデータ転送され続けるのだろうか、という疑問が湧いたので確認してみました。
環境はWindows 11とVS Code、PlatformIOでearlephilhower版Arduinoコア(Raspberry Pi Pico/RP2040)を使用してます。Raspberry Pi Pico C/C++ SDKでもだいたい同じだと思います、earlephilhower版がC/C++ SDKをベースに作られているので。
続きを読む