重磅:FPGA实现MIPI DSI4线720P
1. 液晶屏概述
显示屏LCD MIPI DSI4 lane,支持分辨率720*1280,60HZ彩色显示。用于对接国产GOWIN的NR-9C的开发板和LATTICE的CROSSLINK开发板,显示MIPI DSI 功能。
MIPI DSI是4-LANE,MIPI速率在480MHZ。支持LP模式初始化和HS模式显示数据发送。
屏是5寸,支持DSI SYNC EVENTS模式数据发送。
源码设计。

2. DSI时序说明
在液晶屏控制IC中有DSI timing的说明, 对于SYNC EVENT模式中,在消隐的阶段是VS和HS单个数据内容,直接可以是VSS,HSS单个数据,用BLLP填充之间空隙。在显示数据阶段,完全是HS模式数据内容,必须要HSS和HBP和HACT,HFP组成的数据内容。
有些液晶屏是可以用LP模式取代HBP和HFP,要注意阅读是否可以,而下图IC,是不能用LP模式替代。所以精确控制时序。发送HBP和HFP的内容。
发送BLANKING Pcaket 长包内容,内容中间填充0模式。要注意的是MIPI包是4个字接头加上长度内容,还有两个字节的校验码。所以对于32位,会出现数据对不齐的情况,要调整连接数据顺序

3. NR9-C操作流程
1) 断电,对接好开发板,对准长的排针区域,保持引脚一致性。如下图所示,连接好显示屏。
2)设定NR-9的VIO2电压为1.2V
下载代码
3)测试按键切换图案。选择K2按键切换测试图案

4. CROSSLINK操作流程
1) 断电,对接好开发板,对准短的排针区域,保持引脚一致性。如下图所示,连接好显示屏。连接好下载器的线缆,不需要额外电源连接。打开电源

2) 下载代码。

3)测试按键切换图案。选择K1按键切换测试图案

5. 资料文档
包含NR-9C和Crosslink MIPI DSI驱动代码,从HS模式到LP模式。以及LP模式初始化过程。HS数据发送。


6.代码结构

video_720x1280timing 生成720P的时序图内容。
video_convert_dsi 从video clk的时钟转换成mipi的 byte clk的时钟数据内容。用fifo操作。
dsi_hs_packet 用于填充HS模式的HBP和HFP的数据内容。
dsi_hs_phy用于LP和HS切换功能,并且增加HS时序和SOT,EOT内容。
dsi_lp_send 用于LP模式的数据发送和LP和HS的切换,LP的内容。
lcd_lpset用于LCD的LP模式数据读取,以及处理PWEN和RST复位信号。
7. 显示效果



重磅:FPGA实现MIPI DSI4线720P的更多相关文章
- MIPI CSI-2
目录 1 MIPI简介 2 MIPI CSI-2简介 2.1 MIPI CSI-2 的层次结构 2.2 CSI-2协议层 2.3 打包/解包层 2.4 LLP(Low Level Protocol)层 ...
- FPGA与simulink联合实时环路系列—开篇
FPGA与simulink联合实时环路系列—开篇 作为网络上第一个开源此技术,笔者迫不及待地想将此技术分享出来,希望大家多多支持.笔者从2011年接触FPGA以来,从各个方面使用FPGA,无论是控制. ...
- FPGA时序约束——理论篇
在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布 ...
- FPGA的时钟质量对设计的影响
小梅哥编写,未经许可严禁用于任何商业用途 近期,一直在调试使用Verilog编写的以太网发送摄像头数据到电脑的工程(以下简称以太网图传).该工程基于今年设计的一款FPGA教学板AC620.AC620上 ...
- FPGA基础学习(4) -- 时序约束(理论篇)
在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布 ...
- 如何为应用选择最佳的FPGA(上)
如何为应用选择最佳的FPGA(上) How To Select The Best FPGA For Your Application 在项目规划阶段,为任何一个项目选择一个FPGA部件是最关键的决策之 ...
- MIPI-Layout说明(转载)
转载于:http://www.ccm99.com/thread-3713-1-1.html 前言:随着新的总线协议不断提高信号速率,如今的PCB 设计人员需要充分理解高速布线的要求并控制PCB 走线的 ...
- 2017-9-17-MDIO信号线串联小电阻作用【转】
今天做集成测试的时候被领导说测到的MDIO信号过冲较大(正反向过冲都很大),容易损坏接口或阻容,万一那个电容耐压值不够就挂了. 我原本是不屑的,私以为MDIO.IIC.SPI等只要抓到的波形不影响判决 ...
- 友晶Altera Cyclone V GX Starter Kit开发板使用ADC-第一篇
1. 拿到板子在,做工很好,属于GX系列,GX应该是高速收发器 2. 去探究下GX是什么用途,大约有6个型号,这个板子是5CGXFX5,有77 LE逻辑单元,这个收发器不知道是什么?6个 3.125G ...
- 2020秋招嵌入式面经——地平线、小米、CVTE、大华、绿米
地平线提前批 一面凉: 投递简历过程:官网投递9月份之前投的都是提前批,投了北京.上海.南京地区的嵌入式软件研发岗,北京和上海的都被筛掉了,南京的捞了我,hr小姐姐打电话邀约面试. 一面凉: 电话面试 ...
随机推荐
- RocketMQ为什么这么快?我从源码中扒出了10大原因!
大家好,我是三友~~ RocketMQ作为阿里开源的消息中间件,深受广大开发者的喜爱 而这其中一个很重要原因就是,它处理消息和拉取消息的速度非常快 那么,问题来了,RocketMQ为什么这么快呢? 接 ...
- vue 打包 可以加 --watch 持续打包 - 开发本地应用程序 - 套壳模式开发
vue 打包 可以加 --watch 持续打包 - 开发本地应用程序 - 套壳模式开发 "watch": "vue-cli-service build --watch - ...
- 恒玄科技BES250解决方案之双耳链接调试总结和源码分析
一 前言 bes2500芯片在tws耳机应用十分广泛,该芯片有着资源强大,音质好,大厂背书等特色.吸引了不少粉丝跟随. 最近在调试该芯片的tws配对流程,花费了一些时间,踩了一些坑,这里做一个总结和备 ...
- Hibernate之list和iterator
在Hibernate3中将Session.find(),Session.iterator()换成:session.createQuery().list(),session.createQuery(). ...
- 09_使用SDL播放PCM
通过命令ffpay播放PCM 可以使用ffplay播放<08_音频录制02_编程>中录制好的PCM文件,测试一下是否录制成功. 播放PCM需要指定相关参数: ar:采样率 ac:声道数 f ...
- 记一次由于linux buff cache引发的问题
简介 在前一段时间,在帮一个朋友处理一个问题是时,遇到这么一个问题.功能做的是一个vue分片式上传,在测试定位问题时,我就发现,分片上传14次,其中有那么一两次是上传失败,导致文件上传不完整.报了以下 ...
- js实现展开多级数组
1.递归 function steamrollArray(arr) { let res = [] for (const a of arr) { if(a instanceof Array){ res ...
- PAT 甲级【1007 Maximum Subsequence Sum】
本题是考察动态规划与java的快速输入: max[i]表示第i个结尾的最大的连续子串和.b begin[i]表示第[begin[i],i]为最大和的开始位置 超时代码: import java.io. ...
- Smtp Oauth With Python
我的博客园:https://www.cnblogs.com/CQman/ GitHub #基于Python语言的smtp Oauth 连接世纪互联运营的Office 365(或21V O365)的邮箱 ...
- JavaScript知识总结 基础篇
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. new操作符的实现原理 new操作符的执行过程: (1)首先创建了一个新的空对象 (2)设置原型,将对象的原型设置为函数的 prot ...