1概述
前面的课程,我们完成了音频数据的提取,恢复出了我们需要的24bit O_audio_left_data、24bit O_audio_right_data和O_audio_valid音频有效数据。那我们接下来就可以分别输出音频数据和视频数据进入HDMI TX模块中,完成音视频数据的输出。 2工程建立
将之前编写的模块代码进行组合,完成HDMI完整输入输出的demo。
3 EDID音频升级
3.1发现问题
Demo编译完成后,上板进行测试,发现问题,电脑的声音界面无法找到我们开发板模拟的显示器。经过检查发现,之前编写的EDID 存储编码存在问题,仅仅能读取到128位,无法完成预期的256位。 结合代码发现常规的寄存器地址一般都是7位,所以最多只能从0计数到127。结合信号发生器抓取数据发现,当电脑显卡端读取到128位的EDID信息后,会主动发送NACK停止IIC总线,然后会restart重新读取一遍EDID信息,此时,发送后续的129~256位的数据即可。
3.2升级EDID代码
代码内容仅仅需要进行一个小修改即可,主要是增加了一个r_edid_restart信号去控制第二次读取的bram输出数据。主要的逻辑部分不做变化,下面贴出完整代码。 4 显卡数据格式输出
在实际的上板验证过程中,还发现一个问题,有的显卡的输出格式并不是RGB格式,位深也不是8位,此时需要通过显卡进行修改。
AMD的显卡驱动:
NVIDA的显卡驱动:
4 测试结果
|