超级精简系列之四:超级精简的IO模拟IIC的C实现:EEPROM编辑工具应用

原创 嵌入式Lee 2023-12-28 08:00

接上文

四.应用

以上实现了IO模拟IIC接口,整个过程很自然,参考时序图操作IO即可。但是是骡子是马拉出来遛遛。那么我们就基于此来进行EEPROM的读写测试吧,以24LC02为例。

4.1 24LC02驱动

我们这里以24LC02的驱动为例。手册参考《https://ww1.microchip.com/downloads/aemDocuments/documents/MPD/ProductDocuments/DataSheets/24AA02-24LC02B-24FC02-2K-I2C-Serial-EEPROM-20001709N.pdf

同样的我还是先设计接口。

很自然的IIC行为抽象如下

typedef void    (*eeprom_iic_start_pf)(void);                          /**< IIC启动接口 */
typedef void (*eeprom_iic_stop_pf)(void); /**< IIC停止接口 */
typedef int (*eeprom_iic_read_pf)(uint8_t* val, uint8_t ack); /**< IIC读接口 */
typedef int (*eeprom_iic_write_pf)(uint8_t val); /**< IIC写接口 */
typedef void (*eeprom_iic_init_pf)(void); /**< 初始化接口 */
typedef void (*eeprom_iic_deinit_pf)(void); /**< 解除初始化接口 */

那么加上属性,设备地址addr,对象如下

/**
* \struct eeprom_dev_st
* 接口结构体
*/
typedef struct
{
eeprom_iic_start_pf start; /**< IIC启动接口 */
eeprom_iic_stop_pf stop; /**< IIC停止接口 */
eeprom_iic_read_pf read; /**< IIC读接口 */
eeprom_iic_write_pf write; /**< IIC写接口 */
eeprom_iic_init_pf init; /**< 初始化接口 */
eeprom_iic_deinit_pf deinit; /**< 解除初始化接口 */
uint8_t addr; /**< 设备地址 */
} eeprom_dev_st;

以上是对下的依赖,我们根据手册,自然的想到要实现以下对外接口

/**
* \fn eeprom_random_read
* 随机读
* \param[in] dev \ref eeprom_dev_st
* \param[in] addr 地址
* \param[in] val 存读出的值
* \retval 0 成功
* \retval <0 失败
*/
int eeprom_random_read(eeprom_dev_st* dev, uint32_t addr, uint8_t* buffer, uint32_t len);
/**
* \fn eeprom_byte_write
* 字节写
* \param[in] dev \ref eeprom_dev_st
* \param[in] addr 地址
* \param[in] val 待写入的值
* \retval 0 成功
* \retval <0 失败
*/
int eeprom_page_write(eeprom_dev_st* dev, uint32_t addr, uint8_t* buffer, uint32_t len);
/**
* \fn eeprom_init
* 初始化
* \param[in] dev \ref eeprom_dev_st
*/
void eeprom_init(eeprom_dev_st* dev);
/**
* \fn eeprom_deinit
* 解除初始化
* \param[in] dev \ref eeprom_dev_st
*/
void eeprom_deinit(eeprom_dev_st* dev);

随机读和PAGE写,另外手册里还有CURRENT ADDRESS READByte Write实际应用基本不会使用,随机读和PAGE写即可包含。

 

 

实现起来也就很简单了,初始化和解除初始化即调用底层对应接口,自己无需特殊处理。

 

随机读实现,直接按照时序图,分解到IIC的具体操作即可

其中#define CTRL_BYTE 0xA0

 

写也是类似

 

4.2 读写EEPROM测试

以上实现了EEPROM的驱动,实际我们实现了不同层级的构建。

现在我们将这些构件拼接起来,就可以实现具体的应用了。

我们这里实现一个基于命令行的eeprom编写工具。

命令行实现参考《https://mp.weixin.qq.com/s/XLmbJn0SKoDT1aLdxHDrbg

shell_func.c中申明读写实现函数

static void printeepromfunc(uint8_t* param);
static void writeeepromfunc(uint8_t* param);

添加命令信息到对应的表格g_shell_cmd_list_ast

{ (uint8_t*)"printeeprom",  printeepromfunc,  (uint8_t*)"printeeprom addr len"},
{ (uint8_t*)"writeeeprom", writeeepromfunc, (uint8_t*)"writeeeprom addr hexstr"},

IO模拟IIC的依赖实现

static void io_iic_port_init(void){


}
static void io_iic_port_deinit(void){


}
static void io_iic_port_scl_write(uint8_t val){



}
static void io_iic_port_sda_write(uint8_t val){


}
static void io_iic_port_sda_2read(void){


}
static uint8_t io_iic_port_sda_read(void){


}
static void io_iic_port_delay(uint32_t delay){


}
static io_iic_dev_st io_iic_dev=
{
.scl_write = io_iic_port_scl_write,
.sda_2read = io_iic_port_sda_2read,
.sda_read = io_iic_port_sda_read,
.sda_write = io_iic_port_sda_write,
.delayus = 10,
.delay_pf = io_iic_port_delay,
.init = io_iic_port_init,
.deinit = io_iic_port_deinit,
};

基于IO模拟的IIC实现EEPROM读写

static void    eeprom_iic_port_init(void){
io_iic_init(&io_iic_dev);
}
static void eeprom_iic_port_deinit(void){
io_iic_deinit(&io_iic_dev);
}
static void eeprom_iic_port_start(void){
io_iic_start(&io_iic_dev);
}
static void eeprom_iic_port_stop(void){
io_iic_stop(&io_iic_dev);
}
static int eeprom_iic_port_read(uint8_t* val ,uint8_t ack){
return io_iic_read(&io_iic_dev, val ,ack);
}
static int eeprom_iic_port_write(uint8_t val){
return io_iic_write(&io_iic_dev, val);
}
eeprom_dev_st eepromdev=
{
.addr = 0,
.read = eeprom_iic_port_read,
.start = eeprom_iic_port_start,
.stop = eeprom_iic_port_stop,
.write = eeprom_iic_port_write,
.init = eeprom_iic_port_init,
.deinit = eeprom_iic_port_deinit,
};

读命令实现

void printeepromfunc(uint8_t* param){
uint8_t buffer[16];
uint32_t addr;
uint32_t len;
uint8_t* p = param;
int res;
//if(3 == sscanf((const char*)param, "%*s %s %d %d", type, &addr, &len))
while(1)
{
if((*p > 'z') || (*p < 'a'))
{
break;
}
else
{
p++;
}
}
while(1)
{
if(*p != ' ')
{
break;
}
else
{
p++;
}
}
addr = atoi((const char*)p);
while(1)
{
if((*p > '9') || (*p < '0'))
{
break;
}
else
{
p++;
}
}
while(1)
{
if(*p != ' ')
{
break;
}
else
{
p++;
}
}
len = atoi((const char*)p);
uint32_t toread;
uint32_t read = 0;
eeprom_init(&eepromdev);
while(read < len)
{
toread = ((len-read) > sizeof(buffer)) ? sizeof(buffer) : (len-read);
if(0 != (res = eeprom_random_read(&eepromdev, addr+read, buffer, toread)))
{
printf("read err %d\r\n",res);
eeprom_deinit(&eepromdev);
return;
}
read += toread;
for(uint32_t i=0; i
{
printf("%02x ",buffer[i]);
}
printf("\r\n");
}
eeprom_deinit(&eepromdev);
}

写命令实现

static uint8_t char2hex(uint8_t ch){
if((ch<='9') && (ch>='0'))
{
return ch-'0';
}
else if((ch<='f') && (ch>='a'))
{
return ch-'a' + 10;
}
else if((ch<='F') && (ch>='A'))
{
return ch-'A' + 10;
}
return 0;
}
void writeeepromfunc(uint8_t* param){
uint8_t buffer[16];
uint32_t addr;
uint32_t len=0;
uint8_t* p = param;
uint8_t flag;
uint8_t tmp;
int res;
//if(3 == sscanf((const char*)param, "%*s %s %d %d", type, &addr, &len))
while(1)
{
if((*p > 'z') || (*p < 'a'))
{
break;
}
else
{
p++;
}
}
while(1)
{
if(*p != ' ')
{
break;
}
else
{
p++;
}
}
addr = atoi((const char*)p);
while(1)
{
if((*p > '9') || (*p < '0'))
{
break;
}
else
{
p++;
}
}
while(1)
{
if(*p != ' ')
{
break;
}
else
{
p++;
}
}
flag = 0;
while(*p)
{
if(flag == 0)
{
tmp = char2hex(*p) << 4;
flag = 1;
}
else if(flag == 1)
{
tmp |= char2hex(*p);
flag = 0;
buffer[len++] = tmp;
if(len>=16)
{
break;
}
}
p++;
}
eeprom_init(&eepromdev);
if(0 != (res = eeprom_page_write(&eepromdev, addr, buffer, len)))
{
printf("write err %d\r\n",res);
eeprom_deinit(&eepromdev);
return;
}
printf("\r\n");
eeprom_deinit(&eepromdev);
}

4.3 测试

输入printeeprom 0 256回车打印如下

printeeprom 0 256
c0 a9 21 01 10 00 00 00 46 88 1f aa 2f fd b2 e9
28 26 16 0a 48 44 3d 45 4b 47 68 5e 29 78 1f 5c
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

逻辑分析仪抓取波形

 

写入测试输入

writeeeprom 32 11223344回车

抓取波形

 

连续写

先看原来的值

printeeprom 0 256
c0 a9 21 01 10 00 00 00 1b 89 ab eb b7 fd 47 e4
e1 c5 ed eb e4 1f f3 96 2d d3 2b 55 de e6 cb aa
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

修改8字节

writeeeprom 8 46881faa2ffdb2e9

查看修改后值

sh>
printeeprom 0 256
c0 a9 21 01 10 00 00 00 46 88 1f aa 2f fd b2 e9
e1 c5 ed eb e4 1f f3 96 2d d3 2b 55 de e6 cb aa
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

继续修改8字节

sh>
writeeeprom 16 2826160a48443d45

继续修改8字节

sh>
writeeeprom 24 4b47685e29781f5c

查看最终修改后结果

sh>
printeeprom 0 256
c0 a9 21 01 10 00 00 00 46 88 1f aa 2f fd b2 e9
28 26 16 0a 48 44 3d 45 4b 47 68 5e 29 78 1f 5c
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff

.总结

以上实现了自由修改EEPROM的工具。可以看出以上IO模拟IIC的代码非常简单容易移植,非常好用。包括eeprom的读写实现也可以作为库代码使用,也是按照开头的思想实现的。

很多设备的参数都是存储在EEPROM里的,有了这个工具我们就可以进行自由的改写,甚至harkclone某些设备了,这也可以作为我们今后瑞士军刀调试工具的一个功能。我们延续一贯的精简线路,设计积累自已的轮子,用时才能真香


评论 (0)
  • 曾几何时,汽车之家可是汽车资讯平台领域响当当的“扛把子”。2005 年成立之初,它就像一位贴心的汽车小助手,一下子就抓住了大家的心。它不仅吸引了海量用户,更是成为汽车厂商和经销商眼中的“香饽饽”,广告投放、合作推广不断,营收和利润一路高歌猛进,2013年成功在纽交所上市,风光无限。2021年更是在香港二次上市,达到了发展的巅峰,当年3月15日上市首日,港股股价一度高达184.6港元,市值可观。然而,如今的汽车之家却陷入了困境,业务下滑明显。业务增长瓶颈从近年来汽车之家公布的财报数据来看,情况不容
    用户1742991715177 2025-04-07 21:48 117浏览
  •   物质扩散与污染物监测系统软件:多领域环境守护的智能中枢   北京华盛恒辉物质扩散与污染物监测系统软件,作为一款融合了物质扩散模拟、污染物监测、数据分析以及可视化等多元功能的综合性工具,致力于为环境科学、公共安全、工业生产等诸多领域给予强有力的技术支撑。接下来,将从功能特性、应用场景、技术实现途径、未来发展趋势等多个维度对这类软件展开详尽介绍。   应用案例   目前,已有多个物质扩散与污染物监测系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润物质扩散与污染物监测系统。这
    华盛恒辉l58ll334744 2025-04-09 14:54 114浏览
  •   卫星图像智能测绘系统全面解析   一、系统概述   卫星图像智能测绘系统是基于卫星遥感技术、图像处理算法与人工智能(AI)技术的综合应用平台,旨在实现高精度、高效率的地理空间数据获取、处理与分析。该系统通过融合多源卫星数据(如光学、雷达、高光谱等),结合AI驱动的智能算法,实现自动化、智能化的测绘流程,广泛应用于城市规划、自然资源调查、灾害监测等领域。   应用案例   目前,已有多个卫星图像智能测绘系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润卫星图像智能测绘系统
    华盛恒辉l58ll334744 2025-04-08 15:04 103浏览
  • 文/郭楚妤编辑/cc孙聪颖‍伴随贸易全球化的持续深入,跨境电商迎来蓬勃发展期,物流行业 “出海” 成为不可阻挡的必然趋势。加之国内快递市场渐趋饱和,存量竞争愈发激烈。在此背景下,国内头部快递企业为突破发展瓶颈,寻求新的增长曲线,纷纷将战略目光投向海外市场。2024 年,堪称中国物流企业出海进程中的关键节点,众多企业纷纷扬帆起航,开启海外拓展之旅。然而,在一片向好的行业发展表象下,部分跨境物流企业的经营状况却不容乐观。它们受困于激烈的市场竞争、不断攀升的运营成本,以及复杂的国际物流环境,陷入了微利
    华尔街科技眼 2025-04-09 15:15 96浏览
  •   物质扩散与污染物监测系统:环境守护的关键拼图   一、物质扩散原理剖析   物质扩散,本质上是物质在浓度梯度、温度梯度或者压力梯度等驱动力的作用下,从高浓度区域向低浓度区域迁移的过程。在环境科学范畴,物质扩散作为污染物在大气、水体以及土壤中迁移的关键机制,对污染物的分布态势、浓度动态变化以及环境风险程度有着直接且重大的影响。   应用案例   目前,已有多个物质扩散与污染物监测系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润物质扩散与污染物监测系统。这些成功案例为物质
    华盛恒辉l58ll334744 2025-04-09 11:24 64浏览
  •   卫星图像智能测绘系统:地理空间数据处理的创新引擎   卫星图像智能测绘系统作为融合卫星遥感、地理信息系统(GIS)、人工智能(AI)以及大数据分析等前沿技术的综合性平台,致力于达成高精度、高效率的地理空间数据采集、处理与应用目标。借助自动化、智能化的技术路径,该系统为国土资源管理、城市规划、灾害监测、环境保护等诸多领域输送关键数据支撑。   应用案例   目前,已有多个卫星图像智能测绘系统在实际应用中取得了显著成效。例如,北京华盛恒辉北京五木恒润卫星图像智能测绘系统。这些成功案例为卫星
    华盛恒辉l58ll334744 2025-04-08 16:19 88浏览
  • 在万物互联时代,智能化安防需求持续升级,传统报警系统已难以满足实时性、可靠性与安全性并重的要求。WT2003H-16S低功耗语音芯片方案,以4G实时音频传输、超低功耗设计、端云加密交互为核心,重新定义智能报警设备的性能边界,为家庭、工业、公共安防等领域提供高效、稳定的安全守护。一、技术内核:五大核心突破,构建全场景安防基座1. 双模音频传输,灵活应对复杂场景实时音频流传输:内置高灵敏度MIC,支持环境音实时采集,通过4G模块直接上传至云端服务器,响应速度低至毫秒级,适用于火灾警报、紧急呼救等需即
    广州唯创电子 2025-04-08 08:59 158浏览
  • ## DL/T645-2007* 帧格式:* 帧起始字符:68H* 地址域:A0 A1 A2 A3 A4 A5* 帧起始字符:68H* 控制码:1字节* 主站:* 13H:请求读电能表通信地址* 11H:请求读电能表数据* 1CH:请求跳闸、合闸* 从站:* 91H:正常应答读电能表* 9CH:正常应答跳闸、合闸* 数据域长度:1字节* 数据域:DI0 DI1 DI2 DI3* 发送方:每字节+33H* 接收方:每字节-33H* 数据标识:* 电能量* 最大需量及发生时间* 变量* 事件记录*
    四毛打印店 2025-04-09 10:53 68浏览
  • 在人工智能技术飞速发展的今天,语音交互正以颠覆性的方式重塑我们的生活体验。WTK6900系列语音识别芯片凭借其离线高性能、抗噪远场识别、毫秒级响应的核心优势,为智能家居领域注入全新活力。以智能风扇为起点,我们开启一场“解放双手”的科技革命,让每一缕凉风都随“声”而至。一、核心技术:精准识别,无惧环境挑战自适应降噪,听懂你的每一句话WTK6900系列芯片搭载前沿信号处理技术,通过自适应降噪算法,可智能过滤环境噪声干扰。无论是家中电视声、户外虫鸣声,还是厨房烹饪的嘈杂声,芯片均能精准提取有效指令,识
    广州唯创电子 2025-04-08 08:40 194浏览
  • 文/Leon编辑/cc孙聪颖‍转手绢、跳舞、骑车、后空翻,就在宇树、智元等独角兽企业率领“机器人大军”入侵短视频时,却有资本和科技大佬向此产业泼了一盆冷水。金沙江创投管理合伙人朱啸虎近日突然对人形机器人发难,他表示“最近几个月正在批量退出人形机器人公司”。“只是买回去做研究的,或者买回去做展示的,这种都不是我们意义上的商业化,谁会花十几万买一个机器人去干这些活?”朱啸虎吐槽。不过,朱啸虎的观点很快就遭到驳斥,众擎机器人的创始人、董事长赵同阳回怼道:“(朱啸虎)甚至问出了人形机器人在这个阶段有什么
    华尔街科技眼 2025-04-07 19:24 152浏览
  •   工业自动化领域电磁兼容与接地系统深度剖析   一、电磁兼容(EMC)基础认知   定义及关键意义   电磁兼容性(EMC),指的是设备或者系统在既定的电磁环境里,不但能按预期功能正常运转,而且不会对周边其他设备或系统造成难以承受的电磁干扰。在工业自动化不断发展的当下,大功率电机、变频器等设备被大量应用,现场总线、工业网络等技术也日益普及,致使工业自动化系统所处的电磁环境变得愈发复杂,电磁兼容(EMC)问题也越发严峻。   ​电磁兼容三大核心要素   屏蔽:屏蔽旨在切断电磁波的传播路
    北京华盛恒辉软件开发 2025-04-07 22:55 252浏览
  •     在研究Corona现象时发现:临界电压与介电材料表面的清洁程度有关。表面越清洁的介电材料,临界电压越高;表面污染物越多的地方,越容易“爬电”。关于Corona现象,另见基础理论第007篇。    这里说的“污染物”,定义为——可能影响介电强度或表面电阻率的固体、液体或气体(电离气体)的任何情况。    IEC 60664-1 (对应GB/T 16935.1-2023) 定义了 Pollution Degree,中文术语是“污染等
    电子知识打边炉 2025-04-07 22:06 118浏览
  •     根据 IEC术语,瞬态过电压是指持续时间几个毫秒及以下的过高电压,通常是以高阻尼(快速衰减)形式出现,波形可以是振荡的,也可以是非振荡的。    瞬态过电压的成因和机理,IEC 60664-1给出了以下四种:    1. 自然放电,最典型的例子是雷击,感应到电力线路上,并通过电网配电系统传输,抵达用户端;        2. 电网中非特定感性负载通断。例如热处理工厂、机加工工厂对
    电子知识打边炉 2025-04-07 22:59 160浏览
  • 文/Leon编辑/侯煜‍就在小米SU7因高速交通事故、智驾性能受到质疑的时候,另一家中国领先的智驾解决方案供应商华为,低调地进行了一场重大人事变动。(详情见:雷军熬过黑夜,寄望小米SU7成为及时雨)4月4日上午,有网友发现余承东的职务发生了变化,华为官网、其个人微博认证信息为“常务董事,终端BG董事长”,不再包括“智能汽车解决方案BU董事长”。余承东的确不再兼任华为车BU董事长,但并非完全脱离华为的汽车业务,而是聚焦鸿蒙智行。据悉,华为方面寻求将车BU独立出去,但鸿蒙智行仍留在华为终端BG部门。
    华尔街科技眼 2025-04-09 15:28 95浏览
  • HDMI从2.1版本开始采用FRL传输模式,和2.0及之前的版本不同。两者在物理层信号上有所区别,这就需要在一些2.1版本的电路设计上增加匹配电路,使得2.1版本的电路能够向下兼容2.0及之前版本。2.1版本的信号特性下面截取自2.1版本规范定义,可以看到2.1版本支持直流耦合和交流耦合,其共模电压和AVCC相关,信号摆幅在400mV-1200mV2.0及之前版本的信号特性HDMI2.0及之前版本采用TMDS信号物理层,其结构和参数如下:兼容设计根据以上规范定义,可以看出TMDS信号的共模电压范
    durid 2025-04-08 19:01 175浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦