OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5050|回复: 1

[XILINX] Aritex7 差分IO实现LVDS LCD的驱动

[复制链接]

5

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
455
金钱
455
注册时间
2020-11-30
在线时间
66 小时
发表于 2021-8-28 13:29:49 | 显示全部楼层 |阅读模式
Aritex7  差分IO实现LVDSLCD的驱动
帖子字数有限,可以看附件完整版:


最近用正点原子的Aritex7 核心板调试LVDS LCD,经验问题分享下;
首先需要将U4 LDO换成5V—2.5V的;就可以在BANK16实现LVDS接口了;
发送LVDS需要用到OSERDES
Selection IP核可以满足功能要求;

                              
Data Rate 选择SDR,因为这里的serdes因子是7,使用DDR麻烦;
Serlallzation Factor 就是串化因子;
External Data Width 就是通道的个数,这里选4通道;
IO Signaling 选择差分,但压标准使用LVDS 25;

CLK 设置这里也是选择差分LVDS 25;
Clock策略选择内部;
发送模式没有DELAY,默认即可

这里生成的IP直接使用不太方便,因为它的数据顺序不是按照data[6:0]给通道0data[6:0]通道1…
而是data[3:0]通道[3:0]D1, data[7:4]通道[3:0]D2….
大家可以从IP内部的数据图看到;

打开IP文件里的文件 可以看到最终使用的文件就是LVDS_TXIP_selectio_wiz.V文件;

就是OSERDES2OBUFDS的原语例化;
想要达到自己想要的数据发送结构就得自己修改下这个文件就行了;
在工程里面新建lvds_tx_selectIO.v文件,将LVDS_TXIP_selectio_wiz直接copy过来做修改即可;
因为OSERDES2是按照LSB—LSB发送的,LVDS LCD要求是MSB--LSB,所以需要将数据顺序在OSERDES2这里处理下
使得数据按照data[6:0]给通道0data[6:0]给通道1…的格式给到每个通道;
这样修改后的数据顺序就满足我们的要求了:

大家仔细观察CLK和数据的时序,我第一次看这个图感觉很奇怪;
以前认为发送出去的数据和CLK是边沿对其的;1111000
但其实不是这样的;
而是按照1100011CLK对齐的;这个是为了接受端IC解串用的;关于LVDS LCD接受端解串也困扰了我很久,因为数据通道是没有TOKEN值来进行align功能的,
当时就考虑是通过CLK1100011的特殊时序来进行bitalign功能的;
后来看了XILINX官方文档xapp585-lvds-source-synch-serdes-clock-multiplication才搞清楚;


要想满足LCD的时序要求,lvds的差分clk也需要通过和数据通道一样的OSERDES发送出去;
wire[6:0]xclk_out_from_device=7'b1100011;//这里的时钟时序和LCD要求要一致;

这个工程在公司是正常点亮LVDSLCD模组的;
分享到这里就结束了,有问题请留言讨论;,,,

附上参考文档
xapp585-lvds-source-synch-serdes-clock-multiplication.pdf (774.04 KB, 下载次数: 34)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2021-8-30 08:57:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-3 20:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表