今回はHSTXです。Pico2のRP2350で新規搭載。しかし「源流」はPicoのRP2040上で実現済のPico-DVI-Sockなる発明品のようです。RP2040上にハードは無いケド、上位互換的な。ラズパイに精通した姉貴、兄貴には何の不思議もないけれど、ラズパイ素人老人にはキツイよ。だいたい回路もアクロバティック。
※Pico関係投稿一覧は こちら 『Pico三昧』は一覧の末尾付近にひっそりと。
※Raspberry Pi Pico、Raspberry Pi Pico2のデータシートは、以下からダウンロードできます。
RP2350のHSTX
まずは、Pico-DVI-Sock を見なかったことにして、RP2350のデータシートから読み取れるHSTXというインタフェース回路についてざっくり記述するとこんな感じです。
-
- ダブルデータレート(クロック信号の立ち上がりエッジと立下りエッジの両方)でデータを伝送できる出力専用のインタフェース。最大クロックスピード150MHz、DDR化により 300Mbit/pin/s。
- GPIO12からGPIO19までの8端子を通常用途からHSTXに転用可能。1端子あたり300Mbpsなので、8端子で単純計算2400Mbpsの出力速度(全部が使えるわけじゃないけど)を出せる。
- 高速な出力を可能にするため32ビットx8段のFIFOを持つ。
- PIO(Programmable IO)との連動機能あり。
おお、結構高速なDDRインタフェースを持っているのね。
しかし、データシートを見ているとどうもTMDSとかDVIとかHDMIとかがチラチラしているのですが、そいつらとの決定的な違いは
実装されているのは差動シリアル信号ではない
ということです。あくまで「フツーの感覚」ではDDRね。何か外付けでPHY(物理層)のインタフェース回路を取り付けるのかしら。。。などと思っていたら大間違いでした。なんと2端子をあたかも差動信号として逆相で動作させることでTMDS相当の伝送を実現しちまうという荒業です。そして恐ろしいことに単純なピンとソケットの結合により、TMDS「相当」な画像出力ができるのでした。端子的には皆さんお使いのHDMI相当のコネクタのDVIというか「TMDSの画像出力信号のみ」一方通行でたれ流してやる、という方法です。本来HDMIなど双方向の信号が通る規格だったハズですが、「画像の伝送」に関していえば、一方通行なサブセット的な信号でもLCDモニタなどは動作するみたいです。そこを突いての出力です。
なお、この方法が発明されたのは、ラズパイPicoのRP2040の時代で、その時代にはGPIOとPIOを駆使して実現されていたようです。つまりRP2040では125MHzクロックでDDRでなかったのを、RP2350では150MHzクロックでDDR化することで125にたいして300と2.4倍の高速化を実現した、というのがこのHSTXの真意であるようです。
TMDSについては以下のページを参考にさせていただきました。あざーす。
TMDS(Transition Minimized Differential Signaling)
Pico-DVI-Sock
さて、Pico-DVI-Sockの理解なくしてHSTXの理解はありませぬ。Githubのページが以下に。
上記をみたら、なぜGPIO12からGPIO19までの8端子なのかが一目瞭然であります。PicoでもPico2でも、USBコネクタと反対側の端面の端から4端子、両側合わせて8端子なのね。そこに小さなボードを取り付けて、8端子の信号の先にHDMI用のコネクタを取り付けると。信号線の途中にダンパ抵抗?270Ωが挿入されているだけのシンプルな「変換ボード」です。これでRGBの画像信号3組6本とCK信号1組2本の8本を「垂れ流し」てやるとモニタに画像を映し出せると(当然フレームバッファとソフト必要。)
かねてラズパイ周辺には怖れを知らない男たち(あるいは女たち)がうようよしている感じをうけてましたが、荒業です。ボンクレな(失礼)後先考えてしまう、メーカ・エンジニアでは決して飛ぶことはない跳躍であります。
なお、この「小ボード」、Adafruit社など複数から販売されています。搭載部品ほとんどないのでお求めやすいのではないかと。日本では、マイコン業界御用達 『Switch Science』様の以下ページにて購入可能。
Adafruit社版は以下ね。
Adafruit DVI Sock for Pico – Works with HDMI Displays
フツーにPHYつけて、差動信号にするのかと思ったお惚け老人は世間知らず。