179、瑞芯微RK3588在边缘盒子中的多摄同步架构——基于PLL的帧同步与曝光同步的实测调优 179、瑞芯微RK3588在边缘盒子中的多摄同步架构——基于PLL的帧同步与曝光同步的实测调优去年接了个边缘盒子的项目,四路MIPI摄像头,要求输出拼接后的全景画面,还得保证每路画面的运动物体在时间轴上严格对齐。当时想得简单,RK3588嘛,四路ISP输入,硬件上支持同步,软件上配一下不就完了?结果一上电,四路画面里有一路总是慢半拍,转个身都能看到重影。查了三天,最后发现是PLL配置的锅——不是摄像头没同步,是ISP的输入时钟根本没锁到同一个基准上。先说清楚RK3588的多摄同步硬件路径。这颗芯片的ISP有四个独立的MIPI CSI接口,每个接口可以挂两路虚拟通道,理论上支持八路输入。但同步的关键不在CSI接口,而在CIS(CMOS图像传感器)的帧同步信号和曝光控制信号。RK3588的ISP模块里有一个SYNC控制器,可以输出帧同步信号(FSYNC)给外部传感器,也可以接收外部输入的同步信号。这个控制器挂在CRU(Clock and Reset Unit)下面,它的时钟源来自一个专用的PLL,而不是直接复用系统主PLL。我踩的第一个坑就在这里。默认的device tree配置里,SYNC控制器的时钟源是clk_ref_sync,这个时钟默认挂在pll_gp0上。但pll_gp0同时也在给其他外设供时钟,比如以太网和USB。一旦系统负载变化,pll_gp0的频率会发生微调,导致SYNC控制器的输出频率漂移。四路摄像头如果都挂在同一个SYNC控制器上,漂移是同步的,问题不大。但如果你像我一样,用了两路外接同步信号(比如一路来自主控板,一路来自传感器自发),那两