Part Number:DS90UB934-Q1
I2C 读取频率值不同,指的是 。
同一摄像头933与不同板子934连接,I2C 读取频率值不同(RX_FREQ_LOW / RX_FREQ_HIGH值不同),且有明显1~2Mhz差异。
我的理解是否这样:934内部时钟做为标准来测量933输入的PCLK,因为不同的934内部时钟的差异化,导致读数差异。
在间隔500msec,读取频率值时,还发现RX_FREQ_LOW / RX_FREQ_HIGH不是同时更新变化,有个现象:RX_FREQ_LOW的值在0~50或250~255,即较小或较大值时,此时RX_FREQ_HIGH经常可能出现没有增加或减少而保持不变,这样读取频率值计算相差在1M左右。这是不是在读取两个值时,934正在更新数据的过程中?
Kailyn Chen:
tao said:我的理解是否这样:934内部时钟做为标准来测量933输入的PCLK,因为不同的934内部时钟的差异化,导致读数差异。
您的理解是有道理的,因为RX_FREQ_LOW / RX_FREQ_HIGH指的是实际video source输出给串行端传输时FPD link的帧频,所以是依据PCLK来计算这个值的。
那如果读取出来有差异,多数是因为内部时钟的偏差导致,如果是外部提供PCLK,RX_FREQ_LOW / RX_FREQ_HIGH 有差异,我们可以根据偏差计算出PCLK的偏差范围,比如+-10%*PCLK, 然后根据读取的RX_FREQ_LOW / RX_FREQ_HIGH计算确认PCLK的偏差导致。
计算方法如之前的帖子: RX_FREQ_LOW / RX_FREQ_HIGH的值可以读出帧频。
计算的话先根据数据手册算出FPD link的line rate,934 12bit mode的line rate== ƒPCLK × (2/3) × 28
然后又根据934的FPD link总线上传输的是28bit数据,所以帧频=line rate/28.
tao said:RX_FREQ_LOW的值在0~50或250~255,即较小或较大值时,此时RX_FREQ_HIGH经常可能出现没有增加或减少而保持不变,这样读取频率值计算相差在1M左右。这是不是在读取两个值时,934正在更新数据的过程中?
您思考的还是很细致的,我想也可以这么理解吧,因为RX_FREQ_LOW / RX_FREQ_HIGH就代表的是FPD link上的高速信号的帧频,而每个PCLK会把数据信号、控制信号、时钟信号编码成为 28bit 数据,RX_FREQ_LOW / RX_FREQ_HIGH的不稳定其实也是代表了一帧的编码数据还没有完成。
,
tao:
感谢释疑!!!
,
Kailyn Chen:
不用客气,后续有什么问题,大家一起讨论。