This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB934-Q1: 同一摄像头933与不同板子934连接,I2C 读取频率值明显差异,为何?

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正在更新数据的过程中?

  • 我的理解是否这样: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. 

    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的不稳定其实也是代表了一帧的编码数据还没有完成。

  • 感谢释疑!!!

  • 不用客气,后续有什么问题,大家一起讨论。