1 HDMI的音视频通路,有待学习;

2 DDC通路,大致是个IIC接口,读取上游器件的EDID或者E-EDID数据;

EDID的前128字节数据格式如下:(可能有不同版本,格式可能有区别)

其它128字节(扩展字节的格式如下:)

上图中4~d-1(data block collection)的数据格式如下:

上图中最后一个数据块(VSDB)的数据格式如下:

根据以上表格,读取3个内容:

IIC的读取协议为(开始、器件地址写(A0)、寄存器地址(8bit)、重开始、器件地址读(A1)、读取到的数据(8bit)、结束);

2.1读取header:00 FF FF FF FF FF FF 00这8个字节;通过;

2.2读取生产商ID(地址08,09):读到4C 2D,二进制为0100 1100 0010 1101

去掉第一个0

剩下10011 00001 01101

按照(00001~11010对应A~Z)

知道读取的3个字母为:SAM(三星) 读取正确,通过;

2.3读取扩展128字节的‘h00地址(IIC寄存器地址为80),应读取到02,通过;

2.4读取寄存器地址81,读到'h03,说明revision是3

2.5读取寄存器地址84,读到'h57,这是Video Data Block的头信息:tag code为2,长度L1 = ’d23

2.6读取寄存器地址9C,读到'h23,这是Audio Data Block的头信息:tag code为1,长度L2 = ’d3

2.7读取寄存器地址A0,读到‘h83,这是Speaker Allocation Data Block的头信息:tag code为4,长度为'd3

2.8按照上面的协议,读地址'hA4,就应该是VSDB的头信息了,但却不是(原因待查)

2.9读取地址'hA7、A8、A9、AA、AB、AC分别读到6E 03 0C 00 13 00,表示tag code为3、VSDB长度为E、VSDB头标志为000C03、当前CEC的物理地址为1.3.0.0

3 CEC

有了这个CEC 物理地址,就可以验证CEC的Routing Control Feature

这个功能特性支持6种CEC包:<Active Source>、<Inactive Source>、<Request Active Source>、<Routing change>、<Routing Information>、<Set Stream Path>

只验证<Active Source>和<Routing change>,所需环境:(与FPGA相连的2个HDMI口(FPGA能收、发这2个HDMI的CEC包) <-----> 4进1出switcher <----->TV)

3.1通过遥控器控制switch改变当前通路(手动改变switch router),按照CEC协议,switch会发送<Routing change>包给连接器件,告知router change,

刚开始FPGA收到的都是cec包都是CECstart 8bitFF CECstart 8bitFF CECstart 8bitFF(循环几次),问题原因(不确定),<Routing change>是个广播包,source逻辑地址和sink逻辑地址都是F,

它期望的ACK应当是1,而不是0.FPGA给的ACK是0,switch当做收到了错误ACK而重传。当FPGA给的ACK改为1后,FPGA收到了正确的<Routing change>包。

3.2 FPGA发送<Active Source>包,实现了switch router更改,但source逻辑地址和sink逻辑地址必须填成F(原因待查)。

HDMI之CEC DDC学习笔记(可能有误)的更多相关文章

  1. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  2. 【工作笔记】BAT批处理学习笔记与示例

    BAT批处理学习笔记 一.批注里定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD,这些命令统称批处理命令. 二.常见的批处理指令: 命令清单: 1.RE ...

  3. 【转帖】4412ARM开发板学习笔记(一)

    本文转自迅为论坛:http://www.topeetboard.com 新手在进行开发学习前,建议先看01-迅为电子开发板入门视频.对开发板和开发环境有一定的了解后,不要盲目接线开机.以下是个人的一点 ...

  4. 【原】redux异步操作学习笔记

    摘要: 发觉在学习react的生态链中,react+react-router+webpack+es6+fetch等等这些都基本搞懂的差不多了,可以应用到实战当中,唯独这个redux还不能,学习redu ...

  5. 20145330第八周《Java学习笔记》

    20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...

  6. 《CSS 设计指南》学习笔记 一

    本篇文章是对这几天看完 Charles Wyke-Smit 的 <CSS 设计指南> 后的一些学习笔记与心得,笔者好像是大一的时候开始接触网页设计,由于并不是计算机专业的,所以所有都是自己 ...

  7. 前端学习笔记汇总(之merge方法)

    学习笔记 关于Jquery的merge方法 话不多说,先上图 使用jquery时,其智能提示如上,大概意思就是合并first和second两个数组,得到的结果是first+(second去重后的结果) ...

  8. HTML+CSS学习笔记(5)- 与浏览者交互,表单标签

    HTML+CSS学习笔记(5)- 与浏览者交互,表单标签 1.使用表单标签,与用户交互 网站怎样与用户进行交互?答案是使用HTML表单(form).表单是可以把浏览者输入的数据传送到服务器端,这样服务 ...

  9. springmvc学习笔记(简介及使用)

    springmvc学习笔记(简介及使用) 工作之余, 回顾了一下springmvc的相关内容, 这次也为后面复习什么的做个标记, 也希望能与大家交流学习, 通过回帖留言等方式表达自己的观点或学习心得. ...

随机推荐

  1. Dynamics AX 2012 R2 业务系列-销售业务流程

    在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 1.销售的主要职责 其实这里说的职责主要是针对销售文员,并非整天外面满世界跑业 ...

  2. DB2常用sql函数 (转载)

    http://www.techonthenet.com/sql/index.php 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字 ...

  3. Submit Text 快捷键总结

    Ctrl+D : 选择单词,重复可增加选择下一个相同的单词Ctrl+F : 查找内容Ctrl+G : 跳转到指定行Ctrl+H : 替换    Ctrl+J : 合并行(已选择需要合并的多行时)Ctr ...

  4. easyui dialog iframe

    function toGrant(obj,url,showMsg) {                                        var dialog=$('#dlg_grant' ...

  5. java如何修改java.library.path并且不重启jvm也能生效

    先说一下需求吧, 目前在用JCEF实现java程序桌面版包装,源码中需要加载编译好的几个dll文件,而这些文件的路径必然是根据程序安装的路径而变化的,这就需要在程序运行的时候,去动态修改java.li ...

  6. Fragment全解析系列(一):那些年踩过的坑

    开始之前 最新版知乎,单Activity多Fragment的架构,响应可以说非常"丝滑",非要说缺点的话,就是没有转场动画,并且转场会有类似闪屏现象.我猜测可能和Fragment转 ...

  7. linux 下 apache相关;启动、停止、重启命令;配置文件位置等等

    linux 下 apache启动.停止.重启命 基本的操作方法: 本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况 apahce启动命令: 推荐/usr/l ...

  8. 两行代码搞定 JavaScript 的日期验证

    我们通常在 JavaScript 中验证日期,基本的思路大概是,先判断年月日是否有效,再判断当月是否有当日,比如一些月份没有 31 日,平年二月没有 29.30 日,闰年二月没有 30 日等等. 偶然 ...

  9. hadoop修改MR的提交的代码程序的副本数

    hadoop修改MR的提交的代码程序的副本数 Under-Replicated Blocks的数量很多,有7万多个.hadoop fsck -blocks 检查发现有很多replica missing ...

  10. C++ 字符编码转换类

    记录一下C++ 编码转换的函数: #pragma once #include "afx.h" #define DEFAULT_CODE 0 #define CHINESE_SIMP ...