基于复旦微FMQL45T的Cameralink接口调试经验

       最近做了一个项目,是基于复旦微FMQL45T900做的,大概功能是Cameralink base 输入,通过以太网将画面显示在上位机上。过程一波三折,特此记录。 

一、硬件介绍

        硬件比较传统,选用复旦微的FMQL的PL和ARM集成芯片,外设也是常见的SD、EMMC、以太网、DDR,唯一多余的就是PL侧接入了Cameralink输入。框图如下:

           此处的Cameralink采集没有选用传统的解码芯片,通过XIlinx的源码来实现。4路差分数据+1路差分时钟输入,电平为标准的LVDS25,通过内部IOserdes进行解码,每个数据通道解出7bit数据,一共是28bit数据,然后将数据和行场同步信号及像素时钟提取出来。

        PL侧主要是做了一个数据的解析。通过AXI_HP总线与PS侧的DDR进行写操作,然后再通过以太网将数据送给上位机。

        Cameralink相机买的是二手的日本CIS相机,780X525/120fps,8bitMONO像素,没买好,这款资料很少,技术支持也很少。查资料废了不少劲。

二、软件流程

        软件流程也比较单一,如下图所示:

        

        PL解出代码后,先将8bit像素拼接成64bit数据,然后通过AXI传到PS_DDR。这块主要靠软件侧的寄存器来配置,比较灵活,比如可以配置采集图像的大小和帧率、DDR写起始地址等,PS通过触发和中端来传输,通过异步FIFO,一次传一帧。

        PS将写入DDR的数据,通过UDP协议传送给上位机。通过不同的端口号,将控制指令和图像数据分开,1450长度发送。

三、调试中的问题

        根据以上,本项目的功能很简单,但在实现工程中,还是碰到了很多问题,一波三折,再次记录。

1、复旦微FMQL硬件调试

        复旦微的硬件基本上和Xilinx兼容,这里需要注意几点

        1、PS和PL的JTAG单独接出来。因为复旦微的PS侧需要IAR+Jlink去调试,所以如果两端的JTAG接出来,在独立模式下,都可以进行操作,比较方便。PS侧调试用JLINK就行。

        2、IAR调试PS的时候,一直会报错、大概是电源和读不到CPU状态的错误,经检查是排线质量问题,换根线解决。

  2、AXI数据交互

        在使用AXI数据交互的时候,每次DDR地址的递增一直没弄对,后来经过调试,算出每次传输64bit,既8字节,一次传输256次,所以地址加2048(hex0800)。

        AXI一开始调试得时候,PS的DDR写入了大片的0,后来朋友建议我PL侧先写递增数来传输,验证哪块的问题,后来完美解决,所以这也算是一个调试手段。

3、以太网YT8521SH

        刚开始调试网口,跑LWIP,发现只能在100M通,后来调试发现,是没有初始化。YT8521SH是兼容RTL8211的,这款芯片很熟了,需要注意以下几点:

        1、MDIO和MDC接到BANK501的专用管脚,也就是52和53管脚。

        2、其次上电后可以看PC机以太网适配器的连接状态来判断PHY是否正常。

        3、该芯片自己会转出核压,布局是电感不能距离太远。

4、上位机调试

        上位机和PS侧需要定义好端口号、IP、大小端等协议。刚开始调的时候,上位机显示的图像120fps一直有黑条,50fps以下就正常。经过测试发现应该是PS发太快处理不过来有丢包。后来先给PS的发送加了延时(us级别),其次上位机加大了缓存,得以完美解决。

        中间还出了次小插曲,刚开始显示图像的时候,大家都觉得不太对,怎么会是这种,然后把那个老的CIS相机研究了半天,最后在B站找到了结果。说是工业相机呢,一般都会有测试图像数据,就是这种条纹的。但是如何消掉测试数据呢,需要对相机进行配置,基于买的二手相机太老的、CIS官方软件又一直下载不下来,就放弃了。

-------先写这么多,后续再更。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值