”
ZedBoard Linux のフレームバッファにカメラ画像を表示9(SDKリモートデバック)”の続き。
前回は、ARMプロセッサから供給されているFCLK_CLK3 のクロックがSVGAのピクセルクロックから変更されていることが考えられた。そこで、FCLK_CLK3 をSVGAのピクセルクロックに使用するのを中止して、XPSプロジェクト内のclock_generator_0 からSVGAのピクセルクロックを生成することにした。
clock_generator_0 の入力はFCLK_CLK1 だったが、このクロックは167MHzで、clock_generator_0 の入力クロックの設定の200MHzと合わない。200MHzのクロックは、FCLK_CLK2 なので、clock_generator_0 の入力クロックを FCLK_CLK2 に変更した。
次に、CLKOUT1 を40MHzに設定して、mt9d111_inf_axi_master_0 (Camera Controller) とbitmap_disp_cntrler_axi_master_0 (Bitmap Display Controller) のピクセルクロックに接続した。

この設定で、論理合成、インプリメントを行い、SDKを立ち上げてデバックを行った。
Debug Configuration を作成してある場合のデバック方法は、
”
Zynq-7000(ZC702)のLinuxチュートリアル4(リモートデバック2)”
を参照のこと。デバックするファイル名は、cam_disp3_linux.elf に変更した。
GPIOの出力を1にして、Camera Controller と Bitmap Display Controller のリセットを解除して動作させたところ、Linuxコンソールの表示がおかしくなってしまった。

SDKリモートデバックもおかしくなってしまった。
カメラ画像の表示はされているが、画像がおかしい。たぶんYCbCr で行われていると考えられる。GPIOを1にした時点でおかしくなっているので、カメラにRGB565モードを設定できていない。

つまり、GPIOから1を出力すると、Camera Controller と Bitmap Display Controller のリセットが解除されるので、そこで書き込んだメモリがLinuxで使われていたんだと思う。
以前、2頭のペンギンをHDMIで表示しているフレームバッファのアドレスを0x1A000000 と調べて、そのアドレスをCamera Controller と Bitmap Display Controller で使っているはずだった。しかし、ペンギンは正常に表示されていたので、アドレスを0x1A000000 に指定しきれていなかったのか?今はダイアログでアドレスを入力しているので、HDLで直接書いて調べてみることにした。
(2013/02/18:追記)Linux が死んだのは、カメラ表示回路がおかしい訳ではなく、Linixカーネルのフレームバッファのアドレスか0x1A000000 から変更されたのではないか?と考えられます。詳しくは、
”ZedBoard Linux のフレームバッファにカメラ画像を表示13(未完成)”を御覧ください。
- 2013年02月15日 05:13 |
- ZedBoard
-
| トラックバック:0
-
| コメント:0