lvds配置
基于Altera FPGA的LVDS配置应用一例
在特权同学发表博文《Cyclone III的LVDS接口注意事项》后,不少网友发邮件询问LVDS具体应用的一些问题。这些网友,归根到底,估计是文档看得太少了,或许还缺少动手实践的摸索。做原型开发的知识储备,无外乎两种方式,要么理论,要么实践。理论上前面说的文档是一方面,但是说理论不要被文档框住了,以为理论就是书本和文字。其实换一个角度来理解理论,你也可以认为是间接获得知识的手段,包括一些可用的论坛资源、博文资源,甚至FAE资源等等。不要金口难开,发个邮件打个电话,可能那些吃这个饭的FAE们一句话就帮你搞定问题了。当然了,在你什么都没搞明白前,还是不建议你一通瞎问。比较合适的方式是先自己去消化官方提供的文档,然后动手实践过程中实在是遇到百思不得其解的问题时再通过请教他人的方式得以解决。
而可能很多“菜鸟”百思不得其解的是文档到底从哪里找,茫茫网络浩如烟海,找个对口文档岂非易事?呵呵,其实,这个文档正可谓“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”。瞧,有心的朋友早已发现这个不是秘密的秘密了。当我们使用Quartus II的MegaWizard选择并进入某个IP核的配置界面后,如图1所示,我们总能够在右上角看到一个名为“Documentation”的按钮,他就是传说中的“灯火阑珊处”了,点击后有两个二级子按钮,“On the Web”指向三级菜单的两个网络链接,“altlvds_tx Megafunction User Guide”则直接链接打开本地的帮助文档。
图1
关于文档,除此以外,特权同学比较习惯的做法是在Quartus II handbook或Help中搜索关键词,如这里的altlvds_tx或LVDS,从而找到相关内容的介绍说明。在实践前,这些理论知识的储备是必须的,否则咱的“高楼”很可能就是建立在“空穴”之上,指不定哪天就像咱上海前些年那座莲花河畔景苑一样在风雨过后居然楼体完整的“体面”倒下了。
这里的altlvds_tx/ altlvds_rx实际上不过是一个并串/串并转换器而已,但由于LVDS速度比较高,而且接口上使用了差分信号,所以不是用户随便用逻辑就能“模拟”出来的,因此势必要有官方在FPGA器件上硬件级和Quartus II上软件级的双重支持。那么到用户这边,一切都变得“傻瓜”化配置操作了,而用户真正要关心的,只是要实现的LVDS接口的时序需求,并把这些需求都转化为IP核配置上的参数。
下面简单的说一下整个IP核的配置和例化使用。具体的配置说明还望大家仔细研究官方的User Guider,特权同学这里的一些内容充其量不过是一个简化版的快速入门教程。
如图2所示,先创建一个新的ALTLVDS核,然后进入相关配置页面。
图2
参数设置共有3个配置页面,分别如图3、图4和图5所示。
如图3所示,这里选择LVDS transmitter,然后设置3个LVDS通道(channels);每个通道对应7个解串因子,即7并1串处理。最下面的Use External PLL如果勾选上,则这个IP核内的其他两个配置页面不可设置,用户的时序频率方面的配置主要在外部的PLL时钟上下文章了;若不勾选上,我们接着来看后面两个配置页面。
图3
如图4所示,在Frequency/PLL settings中,需要配置好LVDS串行数据传输速率(此处为245Mbps),而输入时钟速率通常为LVDS串行传输速率除以解串因子得到(245/7=35)。其他几个选项一般使用默认设置,大家可以参考altlvds_tx Megafunction User Guide中有详细说明。
图4
如图5所示,Transmitter settings中有多个Transmitter outclock配置选项,主要是LVDS输出时钟与输出差分信号的时钟以及相位设置,具体如何配置还是需要根据用户本身这个LVDS信号的传输需求而定。
图5
配置完成后,可以在工程目录下的*_inst.v中找到新配置IP核的例化模板,本实例如下:
lcdlvds lcdlvds_inst (
.pll_areset ( pll_areset_sig ),
.tx_in ( tx_in_sig ),
.tx_inclock ( tx_inclock_sig ),
.tx_out ( tx_out_sig ),
.tx_outclock ( tx_outclock_sig )
);
这些信号接口的简单说明如下,方向为相对于LVDS内部模块而言。
信号名 |
方向 |
位宽 |
描述 |
pll_areset |
Input |
1 |
异步复位信号,复位LVDS内部所有计数器 |
tx_in |
input |
21 |
待解串的数据,3个通道的7bit即21bit |
tx_inclock |
Input |
1 |
传输PLL的输入参考时钟,即设置好的35MHz |
tx_out |
Output |
3 |
LVDS输出数据 |
tx_outclock |
Output |
1 |
LVDS输出时钟 |
最后,在管脚分配时,需要选择I/O Standard为LVDS,然后会自动参数另一个*(n)的配对差分管脚,如图6所示。
图6
lvds配置的更多相关文章
- 全志A33 lichee lvds屏幕配置
开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: https://sinlinx.taobao.com/ 嵌入式linux 开发板交流 QQ:641395230 芯灵思SinlinxA33开 ...
- ZYNQ7000 LVDS接口输出配置
xilinx 7系列芯片不再支持LVDS33电平,在VCCO电压为3.3V的情况下无法使用LVDS25接口. 有些设计者想通过在软件中配置为LVDS25,实际供电3.3V来实现LVDS33也是无效的, ...
- A20VGA和lvds显示的切换-
./fex2bin sys_config_lvds.fex /boot/script.bin sys_config_lvds.fex的作用:配置各种外设,端口,I/O针脚信息的文件 生成 script ...
- imx6 uboot lvds clock
在uboot中添加logo,lvds接口的lcd显示不正常,出现波动.网上说是lvds时钟频率的问题. 使用示波器测量之后,发现频率是60M,而lcd最大频率才46.8M. 因此就需要更改uboot中 ...
- I.MX6 lcd lvds hdmi bootargs
/********************************************************************* * I.MX6 lcd lvds hdmi bootarg ...
- 液晶常用接口“LVDS、TTL、RSDS、TMDS”技术原理介绍
液晶常用接口“LVDS.TTL.RSDS.TMDS”技术原理介绍 1:Lvds Low-Voltage Differential Signaling 低压差分信号 1994年由美国国家半导体公司提出之 ...
- I.MX6 Linux kernel LVDS backlight enable
/*************************************************************************** * I.MX6 Linux kernel LV ...
- lvds接口介绍
1.项目简介 用索尼的imx264 sensor采集图像,在内部模数转换之后,由lvds接收,然后解码,最后送给后端显示 2.框图 imx264配置成从模式,由spi总线配置,需要由FPGA提供 行. ...
- LVDS时序分析
LVDS时序分析 2012年05月07日 11:48:08 Walle 阅读数:3355 标签: 平台工作 最近在调试基于telechip平台的LVDS驱动,一开始对该平台的LVDS时序不是很了解 ...
随机推荐
- Oracle11g:分区表数据操作出现ORA-14400异常处理
Oracle11g:分区表数据操作出现ORA-14400异常处理 问题: 当对已分区的表数据进行操作(例如新增,修改),出现异常提示: ORA: 插入的分区关键字未映射到任何分区 分析: 意思说的是插 ...
- Mac & Xcode 技巧
1.Xcode 删除过期的Provisioning Profile文件 解决:Xcode 中所有的Provisioning Profile文件路径,都在 ~/Library/MobileDevice/ ...
- JMeter学习(十四)jmeter_断言使用
先说一下使用断言的目的:在request的返回层面增加一层判断机制.因为request成功了,并不代表结果一定正确.类似于QTP中的检查点检查点.断言的使用方法: step_1:在你选择的Sample ...
- 枚举处理工具类 .net
将枚举转化成List<T>的方法如下: /// <summary> /// 枚举处理工具类 /// </summary> public class EnumHelp ...
- 分步引导中,Js操作Cookie,实现判断用户是否第一次登陆网站
上一篇介绍了分布引导插件IntroJs的使用,本篇介绍通过Js操作cookie的方法. 分步引导的功能只适合与第一次登陆网站的新用户,不能每次登陆都提示分布引导,那么如何判断用户是否第一次登录网站呢? ...
- github上十二款最著名的Android播放器开源项目
1.ijkplayer 项目地址: https://github.com/Bilibili/ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Andr ...
- dotnet core项目升级到 .net core 2.0
这几天无疑我们已经让.net core 2.0正式版发布的消息刷屏,这次发布整整提前了一个月的时间,关于具体的发布信息,可以去看善友大神的博客,.NET Core 2.0 正式发布信息汇总,废话不多说 ...
- javascript简单介绍总结(一)
DOM (Document Object Model)(文档对象模型)是用于访问 HTML 元素的正式 W3C 标准.在 HTML 中,JavaScript 语句向浏览器发出的命令.语句是用分号分隔: ...
- Sublime Text C# 编译(csharp.sublime-build)
制作: 1. 配置环境变量PATH C# 7.0 C:\Program Files (x86)\Microsoft Visual Studio\\Enterprise\MSBuild\15.0\Bin ...
- go 编译
linux: set GOARCH=amd64 set GOOS=linux go build -o app_name main.go echo "编译完成,任意键退出" paus ...