目前已可以透過I2C 訪問 Ti960/ Ti953/ 與 imx390(可量到 sensor 端I2C 正確訊號)
硬體
POC Filter;參照DS90UB960-Q1 Figure 40. Typical PoC Network for a "4G" FPD-Link III
REFCLK: 25Mhz ( 100ppm)
Mode : Strap Configuration Mode Select; No.4 of Table2. /CSI-2 Mode
設定
大致參照 Design Guide: TIDA-020002
FPD-Link III I2C Initialization
但 CSI0 輸出 MIPI訊號斷續…沒辦法輸出完整影像.
有發現設定上,可能是非連續性訊號
Register 0x33 with 0x01: without Enable CSI-2 continuous clock mode.
但又在文件上發現
DS90UB953-Q1 page 17, CSI-2 有分 Short 與 Long Packet(包含 VC / Data ID…) 如何確認 或 設定輸出Short Packet呢?
另 DS90UB953-Q1 修改 Reg 0x06/ 07 CSI0 輸出 MIPI,看起來也會影響,但又該如何正確調整呢??
Tony KUO:
另外DS90UB960-Q1 設定 Pattern Generation
# Set CSI Timing parameters for 400Mbps operation (both ports)
board.Ind_Acc_Write(0x0, 0x40, [0x83, 0x8D, 0x87, 0x87, 0x83, 0x86, 0x84, 0x86, 0x84], 9)
board.Ind_Acc_Write(0x0, 0x60, [0x83, 0x8D, 0x87, 0x87, 0x83, 0x86, 0x84, 0x86, 0x84], 9)上述設定,該如何在微處理機上,I2C 訊號實現呢??
# 1920*1080 @ 30 fps
# 4 x lane 400Mbps/lane
# Data Type: YUV422 10-bit# Data
#
# ` pixles
# Vactive:1080 lines
# Vtotal:1125 lines
# Vfront:10 lines
# Vback:33 lines
# Pixel size: 20 bits (Mipi CSI-2, Table 15 )
# Block size: 5 bytes (Mipi CSI-2, Table 15 )
# Frame rate: 30 fps
# Number of bars: 8
#
# Reset
board.WriteReg(0x01, 0x01)
# Set CSI_TX_SPEED to select 400Mbps
board.WriteReg(0x1F, 0x03)
#
# Set CSI Timing parameters for 400Mbps operation (both ports)
board.Ind_Acc_Write(0x0, 0x40, [0x83, 0x8D, 0x87, 0x87, 0x83, 0x86, 0x84, 0x86, 0x84], 9)
board.Ind_Acc_Write(0x0, 0x60, [0x83, 0x8D, 0x87, 0x87, 0x83, 0x86, 0x84, 0x86, 0x84], 9)
#
# CSI sel and CSI enable
board.WriteReg(0x32, 0x01) # CSI0 sel and CSI0 enable
time.sleep(0.5)
board.WriteReg(0x33, 0x01) # CSI_LANE_COUNT: 4
time.sleep(0.5)# enable pat gen
board.WriteReg(0xB0, 0x00) # Indirect Pattern Gen Registers
board.WriteReg(0xB1, 0x01) # PGEN_CTL
board.WriteReg(0xB2, 0x01)board.WriteReg(0xB1, 0x02) # PGEN_CFG
board.WriteReg(0xB2, 0x35) # NUM_CBARS, Block_sizeboard.WriteReg(0xB1, 0x03) # PGEN_CSI_DI
board.WriteReg(0xB2, 0x1F) # YUV422_10 Data Typeboard.WriteReg(0xB1, 0x04) # PGEN_LINE_SIZE1: 1920*20/8=4800
board.WriteReg(0xB2, 0x12)board.WriteReg(0xB1, 0x05) # PGEN_LINE_SIZE0: 1920*20/8=4800
board.WriteReg(0xB2, 0xC0)board.WriteReg(0xB1, 0x06) # PGEN_BAR_SIZE1: 1920*20/8/8)=600
board.WriteReg(0xB2, 0x02)board.WriteReg(0xB1, 0x07) # PGEN_BAR_SIZE0: 1920*20/8/8)=600
board.WriteReg(0xB2, 0x58)board.WriteReg(0xB1, 0x08) # PGEN_ACT_LPF1: 1080
board.WriteReg(0xB2, 0x04)board.WriteReg(0xB1, 0x09) # PGEN_ACT_LPF0: 1080
board.WriteReg(0xB2, 0x38)board.WriteReg(0xB1, 0x0a) # PGEN_TOT_LPF1: 1125
board.WriteReg(0xB2, 0x04)board.WriteReg(0xB1, 0x0b) # PGEN_TOT_LPF0: 1125
board.WriteReg(0xB2, 0x65)board.WriteReg(0xB1, 0x0c) # PGEN_LINE_PD1:1s/(30*1125*20ns)=1481
board.WriteReg(0xB2, 0x05)board.WriteReg(0xB1, 0x0d) # PGEN_LINE_PD0:1s/(30*1125*20ns)=1481
board.WriteReg(0xB2, 0xc9)board.WriteReg(0xB1, 0x0E) # PGEN_VBP: 33
board.WriteReg(0xB2, 0x21)board.WriteReg(0xB1, 0x0F) # PGEN_VFP: 10
board.WriteReg(0xB2, 0x0A)
Tony KUO:
We use the Ti 960 Deserializer board and capture box. I2C signals can to write to the camera module commands and system get a picture, but the Ti960 CSI-2 signal does not continue image output.
Can someone give us some advice? Anything missed?
Amy Luo:
您好,感谢您使用E2EChina 论坛。您的问题我正在处理,我会尽快回复您。
Amy Luo:
回复 Amy Luo:
您好,
首先,关于您的问题,请参考以下内容:
1、DS90UB953-Q1 page 17, CSI-2 有分 Short 與 Long Packet(包含 VC / Data ID…) 如何確認 或 設定輸出Short Packet呢?
[CH] long/short packet只是由MIPI协议定义的,所以不需要设置它。
2、另 DS90UB953-Q1 修改 Reg 0x06/ 07 CSI0 輸出 MIPI,看起來也會影響,但又該如何正確調整呢?
[CH]如果这看起来有影响,可能是问题的原因,对于正确的配置:
首先你需要知道图像传感器需要什么样的PCLK(参考传感器datasheet)
第二,您需要根据下面的公式将953的CLKOUT配置为上面的值。(更多详细信息,请参阅DS90UB953数据表的第7.4.1.5节)
Amy Luo:
回复 Amy Luo:
对于Pattern Generation,我们有一些ALP的脚本文件,通常可以在安装ALP工具后在下面的文件夹中找到。
C:\Program Files (x86)\Texas Instruments\Analog LaunchPAD v1.57.0010\PreDefScripts
顺便说一下,目前您可以在这里找到一个类似的954脚本作为参考,只是现在没有960版本。下面文件可能对您有帮助,它包括详细的设计流程和其他指导/设计技巧。
www.ti.com/…/snla267a.pdf
Tony KUO:
回复 Tony KUO:
目前修改Ti960,Reg 0x58, 更改0x5c (原0x5e),發現可以連續取得影像(24.7fps),但依舊一段時間(3~5 sec)會斷訊,停止訊號傳輸!!
這部分會是硬體線路上的問題,還是設定上須搭配調整呢?? 可以提供除錯建議嗎 ??
Amy Luo:
回复 Tony KUO:
流stream 开始2-3秒后就停止了?除非SoC被有意设置为只接收帧2-3秒然后停止,我认为stream 能够继续。
你好像是在用成像仪采集数据,你试过运行patgen吗?如果是的话,结果是什么,stream 在2-3秒后停止了吗?
此外,有关如何启用/禁用CSI transmitter的正确步骤,请参阅DS90UB960-Q1数据表中的第7.4.25.8节。
如果使用953/960,则0x58=0x5E是正确的值。这会将BC频率设置为50Mbps,将其更改为0x5d只是更改后频道频率,这是不应该做的。
后来您说的文件是指什么文件?可能已经过时了。