您好:
我正嘗試著使用DM6437中DVSDK中的程式
C:\dvsdk_1_01_00_15\psp_1_00_02_00\pspdrivers\system\dm6437\bios\dm6437_evm\src\video\sample\previewer_on_the_fly
連接的是Aptina的cmos影像感測器MT9P001
以下是我的硬體部分,不知道是否有問題:
=================================
沒有任何感測器外部的decoder
將感測器輸出的數位訊號
data[7:0](可輸出12bits的cmos資料,但我只用其中8bits)的databus
VD(frame_valid)
HD(line_valid)
PCLK
以上直接連接至DM6437開發板上的DC1引腳
以及感測器的I2C引腳SDA和SCL連接至DC2引腳i2c_data及i2c_clk的對應位置
並從開發板上由DAC B 接口連接TFT LCD monitor觀看擷取的影像
=====================================
現在LCD上全黑無法顯示
該注意的設定如
開發板JP1,SW7的選擇
軟體在psp_vpfe.h中#define PSP_VIDEO_PATH_ENABLE都已設定正確
但程式在執行時在FVID_exchange處產生錯誤
進一步發現中斷ISR並未產生,Dequeue未成功
錯誤訊息:"VPSS: Error in CCDC Exchange"
很多人認為是否i2c對MT9P001的設定錯誤
而該程式編寫的時候是針對MT9T001
我已查看過該兩顆感測器的差別
只在於能擷取到的影像大小(5M vs 3M)
其中I2C寄存器設定,所有的位址都一模一樣
我想提的問題是,於"MT9001_extImageSensor.h"中出現了兩個位址分別為
#define I2C_MT9001_SLAVE_ADDR (0x5D)
#define I2C_PCA9543A_SLAVE_ADDR (0x70 )
其中MT9P001的位址為0x5D與原先的設定相符
而PCA9543A究竟是什麼功用?
PCA9543A是一顆i2c的晶片,開發板上只有另一種i2c晶片PCF8574A
而且若我使用原先設定的地址0x70便會在設定時出現錯誤:"VPSS :MT9001.......FAILED"
所以我更改成與感測器相同的位址0x5D,
#define I2C_MT9001_SLAVE_ADDR (0x5D)
#define I2C_PCA9543A_SLAVE_ADDR (0x5D)
程式便可繼續執行
而i2c對感測器的設定也都如預期,檢查了所有感測器引腳都有如i2c設定而變化
想請教有使用過類似功能的朋友可以看一下該支程式
希望能提供我一些意見
十分感激