简化HDMI模块代码
- 由于有模块被去除,因此代码有一些功能是无效的
- 简化方案
- 快速方法:找到去除模块相关的代码,然后将代码注释
- 根本方案:逐一分析每个IP相关的寄存器和寄存器所对应的模块行为等,厘清代码的运行流程
- 根据文档分析各个IP的输入输出,和内部的控制机制,寄存器的存取,相邻IP间的交互;然后按照PS端的代码进行印证交互是否符合预想
HDMI相关模块
EDID
- Extended Display Identification Data(扩展显示标识数据),VGA、DVI的EDID由主块128字节组成,HDMI的EDID增加扩展块(128字节),扩展块的内容主要是和音频属性相关的,DVI和VGA没有音频,HDMI自带音频,扩展块数据规范按照CEA-861x标准定义,未来可能增加到512或256的整数倍。
- 包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等。还有显示器支持的显示时序
- EDID信息是通过DDC传送的,DDC的全称是Display Data Channel(显示数据通道)
- 详细时序描述块(DTD),Detailed Timing Descriptions
DDC2B
DDC2B是主机读取显示器扩展显示信息的双向资料交换通道,基于I2C 通讯协议
HDCP
https://baike.baidu.com/item/HDCP/2654587?fr=aladdin
I²C
- ‘Inter-Integrated Circuit’
https://baike.baidu.com/item/I2C/15798883
- 周边可以在系统仍然在运作的同时加入或移出总线
- 更小的包装通常能够减少重量及电源的消耗
- 两种通信协议非常适合近距离低速芯片间通信
- I²C 是多主设备的总线,I²C没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用两条信号线—— ‘serial data’ (SDA) 和 ‘serial clock’ (SCL)。
- 物理实现上,I²C 总线由两根信号线和一根地线组成。两根信号线都是双向传输的,参考下图。I²C协议标准规定发起通信的设备称为主设备,主设备发起一次通信后,其它设备均为从设备。
- I²C 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps)
- I²C 通信过程大概如下。首先,主设备发一个START信号,这个信号就像对所有其它设备喊:请大家注意!然后其它设备开始监听总线以准备接收数据。接着,主设备发送一个7位设备地址加一位的读写操作的数据帧。当所设备接收数据后,比对地址自己是否目标设备。如果比对不符,设备进入等待状态,等待STOP信号的来临;如果比对相符,设备会发送一个应答信号——ACKNOWLEDGE作回应。
- 当主设备收到应答后便开始传送或接收数据。数据帧大小为8位,尾随一位的应答信号。主设备发送数据,从设备应答;相反主设备接数据,主设备应答。当数据传送完毕,主设备发送一个STOP信号,向其它设备宣告释放总线,其它设备回到初始状态。
- 基于I²C总线的物理结构,总线上的START和STOP信号必定是唯一的。另外,I²C总线标准规定SDA线的数据转换必须在SCL线的低电平期,在SCL线的高电平期,SDA线的上数据是稳定的
SPI
- SPI是[单主设备( single-master )]通信协议,这意味着总线中的只有一支中心设备能发起通信。当SPI主设备想读/写[从设备]时,它首先拉低[从设备]对应的SS线(SS是低电平有效),接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,[主设备]把信号发到MOSI实现“写”,同时可对MISO采样而实现“读”
- SPI有四种操作模式——模式0、模式1、模式2和模式3,它们的区别是定义了在时钟脉冲的哪条边沿转换(toggles)输出信号,哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(就是时钟信号无效时是高还是低)。每种模式由一对参数刻画,它们称为时钟极(clock polarity)CPOL与时钟期(clock phase)CPHA。
- [主从设备]必须使用相同的工作参数——SCLK、CPOL 和 CPHA,才能正常工作。如果有多个[从设备],并且它们使用了不同的工作参数,那么[主设备]必须在读写不同[从设备]间重新配置这些参数。
- SPI不规定最大传输速率,没有地址方案;SPI也没规定通信应答机制,没有规定流控制规则。事实上,SPI[主设备]甚至并不知道指定的[从设备]是否存在。这些通信控制都得通过SPI协议以外自行实现。例如,要用SPI连接一支[命令-响应控制型]解码芯片,则必须在SPI的基础上实现更高级的通信协议。
- SPI适合数据流应用,而I²C更适合“字节设备”的多主设备应用。
TMDS
https://www.cnblogs.com/eleclsc/p/10764692.html
PLL
https://baike.baidu.com/item/PLL/3852?fr=aladdin
- 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率,而在需要高频应用时,由相应的器件VCO,实现转成高频,但并不稳定,故利用锁相环路就可以实现稳定且高频的时钟信号。
- QPLL和CPLL的区别,在于两者支持的线速率不同,对于CPLL来说,支持的线速率位1.6GHz到3.3GHZ之间,而对于QPLL来说,GTX支持的线速率分两档,Lower Baud支持5.93GHz~8.0GHz,Upper Baud支持9.8GHz12.5GHz,对于GTH则不分档位,支持的线速率为8.0GHz13.1GHz
芯片设计中的时钟与约束
https://blog.csdn.net/l471094842/article/details/103138172