HDMI之CEC DDC学习笔记(可能有误)
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学习笔记(可能有误)的更多相关文章
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- 【工作笔记】BAT批处理学习笔记与示例
BAT批处理学习笔记 一.批注里定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD,这些命令统称批处理命令. 二.常见的批处理指令: 命令清单: 1.RE ...
- 【转帖】4412ARM开发板学习笔记(一)
本文转自迅为论坛:http://www.topeetboard.com 新手在进行开发学习前,建议先看01-迅为电子开发板入门视频.对开发板和开发环境有一定的了解后,不要盲目接线开机.以下是个人的一点 ...
- 【原】redux异步操作学习笔记
摘要: 发觉在学习react的生态链中,react+react-router+webpack+es6+fetch等等这些都基本搞懂的差不多了,可以应用到实战当中,唯独这个redux还不能,学习redu ...
- 20145330第八周《Java学习笔记》
20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...
- 《CSS 设计指南》学习笔记 一
本篇文章是对这几天看完 Charles Wyke-Smit 的 <CSS 设计指南> 后的一些学习笔记与心得,笔者好像是大一的时候开始接触网页设计,由于并不是计算机专业的,所以所有都是自己 ...
- 前端学习笔记汇总(之merge方法)
学习笔记 关于Jquery的merge方法 话不多说,先上图 使用jquery时,其智能提示如上,大概意思就是合并first和second两个数组,得到的结果是first+(second去重后的结果) ...
- HTML+CSS学习笔记(5)- 与浏览者交互,表单标签
HTML+CSS学习笔记(5)- 与浏览者交互,表单标签 1.使用表单标签,与用户交互 网站怎样与用户进行交互?答案是使用HTML表单(form).表单是可以把浏览者输入的数据传送到服务器端,这样服务 ...
- springmvc学习笔记(简介及使用)
springmvc学习笔记(简介及使用) 工作之余, 回顾了一下springmvc的相关内容, 这次也为后面复习什么的做个标记, 也希望能与大家交流学习, 通过回帖留言等方式表达自己的观点或学习心得. ...
随机推荐
- phpcms v9联动菜单的调用方法及get_linkage函数简单过程
{get_linkage($r['areaid'],1,' >> ',1)} 复制代码 当然这个 $r 也不是绝对的.要看你的loop 是如何写的. {loop $data $n $r} ...
- mac_snailSVN
作者:潘捷链接:https://www.zhihu.com/question/19705164/answer/119484169来源:知乎著作权归作者所有,转载请联系作者获得授权. Mac下之前也有类 ...
- css 水平垂直居中
主要是垂直居中有点麻烦,以下代码可以实现,先记下来: <style type="text/css"> div{ border:1px solid #ccc; heigh ...
- JSP实现 乘法口诀输出
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- mybatis框架下解决数据库中表的列的字段名和实体类属性不相同的问题
导包.... 实体类中的属性,getter,setter,tostring,构造等方法就不写了 private int id; private String orderNo; private floa ...
- ML-分类与逻辑回归
布尔分类(binary classification)问题: 训练集:$S=\{(x^{(i)}, y^{(i)})\}$ 输入:特征向量$x$ 期望输出:$y\in\{0, 1\}$ 这里使用的假设 ...
- [转]Part 3: Understanding !PTE - Non-PAE and X64
http://blogs.msdn.com/b/ntdebugging/archive/2010/06/22/part-3-understanding-pte-non-pae-and-x64.aspx ...
- Android 蓝牙
添加权限: <uses-permission Android:name="android.permission.BLUETOOTH_ADMIN"/> <uses- ...
- QT笔记之解决QT5.2.0和VS2012中文乱码 以及在Qt Creator中文报错
转载:http://bbs.csdn.net/topics/390750169 VS2012 中文乱码 1.方法一: 包含头文件 #include <QTextCodec> ....... ...
- Java 动态生成复杂 Word
Java 动态生成复杂 Word 阅读目录 1. 制作 Word 模版,将你需要动态生成的字段用${}替换.2. 将 Word文档保存为 xml .3. 引入项目. 项目中需要用 java 程序生成d ...