0

Lattice FPGA MIPI调试总结

本文将简要地介绍基于Lattice FPGA(XO2/XO3/ECP3/ECP5/CrossLink)器件的,MIPI CSI/DSI调试心得。如有不足,请指正。

第一步、确认硬件设计、接口连接

  1. 可以使用示波器测量相关器件的MIPI输出信号(可分别在靠近输出端和靠近接收期间接收端测量,进而分析信号传输问题),来确认信号连接是否正常;

  2. 如信号质量较差(衰减严重、反射现象等等),请先检查器件焊接是否牢靠,传输线上阻抗是否匹配等;

  3. 如果信号一切正常,但是仍然无法找到SoT(B8),请确认差分线PN是否接反了;
    注:Lattice FPGA暂时未支持NP翻转功能,不能通过软件设置,实现类似SerDes支持的PN翻转功能。

  4. 针对非CrossLink器件,请检查电路连接是否正确。具体请参考本文附件,以及Lattice各个器件的相关手册;

  5. 如果是MIPI N进1出的设计(N合一),建议各个输入器件采用用一个时钟发生器(晶振),即同源。同时FPGA MIPI Tx所需要的时钟源,最好也与其同源。如果不同源,建议Tx的时钟要略高于Rx的时钟(如Pixel Clock);

  6. 如果条件允许,可以通过示波器分析眼图,以获得更多的信号完整性信息。

第二步、关于非CrossLink器件的LP信号处理问题

  1. 非CrossLink器件,请参考FPGA-UG-02041文档,或者各个器件的相关文档设计MIPI Rx/Tx接口;

  2. 一般情况下,建议Clock和Data Lane上的LP引脚都连接,如果条件不允许连接,请参阅本文附件;

  3. 部分MIPI Rx器件,需要Clock Lane上的LP到HS的切换操作来使能相关电阻,进而“打开”MIPI Rx“开关”。即使用户使用的是连续时钟模式(Continuous Mode),这个切换操作任然是必要的。如果条件不允许连接,建议由Tx器件,模拟这一切换操作;

第三步、MIPI Rx相关问题

  1. 调试过程中,首先确保SoT(B8)可以找到,然后考虑字节对齐(Word Align)。如果多于一个Data Lane,还需要考虑Lane Align。

  2. 一定要确定Tx器件的时钟是否是连续的,只有连续的时钟才可以作为FPGA内部Tx的时钟源;

  3. 如果两边时钟不同源,或者Tx的字节时钟比Rx的字节时钟慢,一定要处理好FIFO的深度和读写等问题。

第四步、MIPI Tx相关问题

  1. 确保FPGA Tx的MIPI时序符合Spec的要求,设计者可以通过示波器以及Diamond Reveal工具分析这些时序数据;

  2. MIPI时序中的TRAIL很重要,不能发完有效数据后,立即进入LP状态;

  3. 使用FPGA DSI Tx直接点屏时,建议先由FPGA自身产生ColorBar。先搞定在LP状态下发送的初始化命令,然后在处理HS状态下的命令传输。

补充信息、关于高通平台FPGA Tx,AP Rx的建议(MIPI CSI)

  1. 如果AP报UNBOUNDED_FRAME错误,建议检查帧短包(尤其是帧结束短包)是否正常发送;

  2. 如果AP报vERROR_ECC & ERROR_CRC错误,建议检查SoT之前是否有非零数据,并检查包尾之后是否有非1数据,具体请参考下图;

  3. 如果AP报vLane x over flow错误,请检查包的长度是否正确,且CRC的值是否正确;

  4. 强烈建议在调试初期,暂时关闭AP的CRC校验功能。

Lattice FPGA MIPI调试总结.png

主要参考资料

  1. MIPI CSI-2/DSI/DPHY Spec

  2. Lattice XO2/XO3/ECP3/ECP5/CrossLink FPGA Datasheet

  3. MIPI Debugging Summary_v0.3.pdf

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2019-04-29 08:15:24 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它

想向站长提问,微信扫码立刻加入! shawn的FPGA圈.png
0

不错不错,学习学习。

编辑 标为违禁 删除 链接 更多选项...
BertramChen 头像
登录/注册后进行回答