091、高帧率sensor的MIPI带宽与曝光约束——960fps慢动作视频的驱动配置与ISP调优实战
091、高帧率sensor的MIPI带宽与曝光约束——960fps慢动作视频的驱动配置与ISP调优实战上周在调试一颗1/2.3英寸的堆栈式sensor,目标是在高通SM8350平台上跑960fps @ 720P慢动作。板子拿回来,sensor驱动一加载,MIPI链路直接报错,log里刷屏CCI timeout和MIPI CSI2 PHY error。第一反应是怀疑sensor端寄存器没配好,翻了一遍datasheet,寄存器值跟参考代码逐位比对,没问题。又怀疑是供电时序,示波器抓了DVDD、AVDD、DOVDD的上电波形,也没毛病。最后用逻辑分析仪去抓MIPI的CLK和DATA lane,发现时钟频率根本不在sensor期望的范围内——sensor输出的是DDR模式,但驱动里配的lane rate跟实际PLL输出差了将近30%。这就是典型的“寄存器配了但没算对”的坑,高帧率场景下,MIPI带宽的余量计算不是简单的像素时钟乘以位深,还要把blanking开销、D-PHY的DDR转换开销、以及sensor内部FIFO的burst特性全算进去。先理清一个基本公式,很多人写驱动时直接套MIPI_CLK = width * height * fps * bpp / lanes,这个公式在低帧率下勉强能用,但到了960fps这种量级,误差会被放大到不可接受。实际计算要分两步:第一步算sensor端输出的raw pixel rate,这个值由sensor的PLL配置决定,通常datasheet里会给一个pixel_array_size和effective_