MT9D111の勉強を下のように行った。
MT9D111のお勉強1、
MT9D111のお勉強2、
MT9D111のお勉強3、
MT9D111のお勉強4、
MT9D111のお勉強5、
MT9D111のお勉強6ZedBoardのPMODに刺さるカメラボードが、
ZedBoard用CMOSカメラボードの作製5(カメラボード完成)で完成した。
これで、CMOSカメラの画像をVGA端子やHDMI端子から出力する回路を作る準備が整ったので、この年末年始で、ZedBoard用CMOSカメラ回路を作っていた。大体できたので、AXI4 Slave BFMを使って単体テストをした。
CMOSカメラ回路の仕様だが、画像サイズは2Mピクセルの1スキップの 800x600 とする。更に36MHzのピクセルクロックを与えて、PLLバイパスでそのままPCLKに出力することにした。画像フォーマットはRGB565とし、これは、2バイトで1ピクセルなので、800ピクセルのデータを出力するために、1,600クロック掛かることになる。よって約 30fps で画像を出力する予定だ。AXI4バスのクロックは100MHzとする。
上の仕様で、トップモジュール mt9d111_inf_axi_master.vhd を作成し、その下にMT9D111の信号とのインターフェースを行う mt9d111_cam_cont.v がある。mt9d111_cam_cont.v には、非同期FIFOがインスタンスされている。非同期FIFOの入力は32ビット幅、出力は64ビット幅である。入力クロックがPCLKの36MHz、出力クロックがAXI4 の ACLK で100MHz である。
下に、AXI4バスのシミュレーション結果を示す。

あえて説明はしないが、36MHzクロックの2つで1個のピクセルが出力される。32ビットが1ピクセルに相当する。MSBから8ビットのダミー0、Redが8ビット、Greenが8ビット、Blueが8ビットで合計32ビットとなる。それが2ピクセル分集まって、64ビットのデータとして非同期FIFOから出力されている。
ここで、AXI4バスのトランザクションから次のトランザクションまでの間隔は110 nsec だった。これは、36MHzの周期、27.8 nsec x 2(クロックで1ピクセル) x 2ピクセル分のデータを非同期FIFOから出力 = 111.2 nsec と大体合っている。
下に、mt9d111_cam_cont.v のシミュレーション波形を示す。

黄色いカーソルは、AXI4バスのシミュレーション結果の図と同様の位置に置いてある。cam_dataからのAXI4のデータに変換する様子が見えると思う。
- 2013年01月02日 19:58 |
- ZedBoard
-
| トラックバック:0
-
| コメント:0