您好:
我正嘗試著使用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設定而變化
想請教有使用過類似功能的朋友可以看一下該支程式
希望能提供我一些意見
十分感激
ellen wang:
有誰可以幫幫我嗎………?
Alan Zhang:
我也想知道
Alan Zhang:
回复 Alan Zhang:
我情况跟你差不多,连接的是TVP5150,同样PSP设置都正确,I2C也单独验证过,但是在FVID_exchange时候出现错误,其实跟进去会发现时I2C没有正确初始化TVP5150,但是在不加PSP的时候,I2C时可以初始化TVP5150的,真是让人费解啊,我用的是SEED_6437开发板,但是我在自己制作的开发板上却成功采集与显示了图像。
ellen wang:
回复 Alan Zhang:
Alan:
可以请问一下你是如何檢驗i2c初始化呢?
还有~你是使用preview on the fly吗?
感谢
Alan Zhang:
回复 ellen wang:
就是在CCS上加断点调试程序检验I2C初始化的,如果I2C成功初始化,返回值temp将为0,反之为65535.我不是用的preview on the fly,你这是通过MT9P001采集图像,我是TVP5150,这一点不一样,我用的 DM6437 psp_bios视频回放例程,历程是采用tvp5146的。