« 応用物理学会と日本物理学会の付設展示会に出展します | トップページ | 超特急のところに基板を出図しました »

2017.03.09

FPGAでCSI(カメラ)インタフェースを使う方法

HDMIを2チャネル入力、HDMIを2チャネル出力、CSIを2チャネルという、マルチカメラ入出力ボードを設計しました。

Np1104top

Np1104bot

Np1104mid1

Np1104mid2

6層基板で、90mm×57mmのサイズに納まりました。中心にKintex-7のXC7K160T-2FFG656Cを配置し、1GBのDDR3メモリ、USB3.0などを備えています。

DDR3メモリは32bit幅で1600MHzで動きます。HDMIのFULL HDは1つあたり500MB/secの帯域が必要なので、6チャネルあっても大丈夫でしょう。

さて、CSIというのが、ラズベリーパイカメラのように、最近の標準的なカメラインタフェースとなっています。正確にはMIPI CSI D-PHYといいます。これをXILINX FPGAで使うためのI/Oの方法をまとめました。

CSIの基本回路

CSIの基本的な入力回路を図に示します。

Csi1


DP0/DN0、DP1/DN1、CP0/CN0という3本の高速差動信号が走っています。

② CSIカメラのクロックは、常にカメラから送る

CSIカメラはクロックとデータを送ってきます。FPGAからCP0/CN0へクロックを与えることはありません。CSIのクロック信号(CP0/CN0)は、FPGAは常に受信となります。

高速差動信号は150Ωで終端する

DP/DN、CP/CNの高速差動信号は150Ωで終端します。

DP0/DN0は低速信号と共有される

DP0/DN0、DP1/DN1は高速差動信号で200mVの振幅ですが、DP0,DN0はシングルエンドの低速信号(ローパワーモード)としても使われます。

Csi2


D0は低速信号を使う場合のため、100Ωの抵抗でこの2本の信号を分岐させ、FPGAの汎用ポートにつなぎます。(上の回路図では150Ωになっているのは間違い)

IOSTANDARDは、LVDS(2.5V)とHUSL12

高速差動信号はLVDS_25で受信できます。低速信号は1.2V規格の信号なので、HUSL12を使って受信します。HUSL12は1.2V規格のIOSTANDARDですが、VREFと比較してH/Lを決めます。FPGAは内部でVREF用に0.6Vを作れるので、外部からVREFを与えなくても受信だけならばできます。

VCCIOは3.3Vで良い

CSIで使用するDとCはLVDSやHUSLですが、LVDSは受信だけならば3.3V規格でも使えます。HUSLも内蔵VREFとの比較でH/Lを決めるので、VCCIOは何Vでも構いません。

そのため、IOSTANDARDは3.3Vでも可能です。

この基板にはさらにHDMIもありますが、LVDS_25(受信のみ)と、HUSL_12(受信のみ)と、TMDS_33(送受信)、LVCMOS_33は同一のI/Oバンクに共存できます。そのためHDMIの送受信と、CSIの受信は共存できるのです。

C6fp7auyaat9f7

というわけで、総合すると上のような回路になります。

なお、GPIOやSCL、SDAなどは3.3Vでもいいようです。

|

« 応用物理学会と日本物理学会の付設展示会に出展します | トップページ | 超特急のところに基板を出図しました »

コメント

ドンピシャで探していた基板なのですが、市販の予定はありますか?

投稿: | 2017.03.19 23:26

あります。

投稿: なひたふ | 2017.03.22 22:58

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 応用物理学会と日本物理学会の付設展示会に出展します | トップページ | 超特急のところに基板を出図しました »