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的相关内容, 这次也为后面复习什么的做个标记, 也希望能与大家交流学习, 通过回帖留言等方式表达自己的观点或学习心得. ...
随机推荐
- docker 与 vmware 的区别
- spine实现预加载(一)
前言 本文实现了spine动画的预加载,解决在战斗等大量加载spine动画的时候出现卡顿现象. 这里使用和修改三个类,直接修改的源码,当然你也可以继承LuaSkeletonAnimation,自己封装 ...
- Java 接口练习题
中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口:Ce ...
- SVN图形管理工具-Submint
1.安装svn及相关依赖包 yum install subversion httpd mod_dav_svn apr-util-sqlite 2.下载submin wget https://sup ...
- libevent源码分析:hello-world例子
hello-world是libevent自带的一个例子,这个例子的作用是启动后监听一个端口,对于所有通过这个端口连接上服务器的程序发送一段字符:hello-world,然后关闭连接. /* * gcc ...
- oracle应用启动时常会报未知服务名
修改/etc/hosts文件 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4#::1 loca ...
- AtCoder Grand Contest 008 A
Problem Statement Snuke has a calculator. It has a display and two buttons. Initially, the display s ...
- .net平台下获取高精度时间类
原文:http://www.it118.org/specials/321869dd-98cb-431b-b6d2-82d973cd739d/d940a15c-0d36-4369-8de0-b07cf3 ...
- Winform MDI窗体容器 权限 简单通讯
MDI窗体容器 权限 using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...
- kali安装java1.7
1.先去这里下载你需要的版本 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 我 ...