历史上的今天
返回首页

历史上的今天

今天是:2025年02月13日(星期四)

正在发生

2018年02月13日 | 嵌入式控制系统中I2C串行EEPROM器件应用

2018-02-13 来源:eefocus

    I2C串行EEPROM存储器因具有外形体积小、接口紧凑简单、占用引脚资源少、数据保存可靠、可在线改写、功耗低和价格低廉等显著特点,被广泛应用于嵌入式控制系统中,用于存放配置参数、调整和运行数据等信息。但由于其为同步串行传输,通讯协议非常简单,没有提供更为复杂的纠错和检测机制,在实践中经常因使用不当造成数据丢失、数据无故改写等问题。对于存储数据要求非常高的系统, 例如计量产品、无人值守系统等,如果存储数据发生意外错误,造成的损失是致命的,因此在设计使用I2C串行EEPROM存储器时,更多地需要硬件和软件相互接合,采取一些相关的处理措施,使得产品能够在各种恶劣的使用环境中可靠、正确地运行。

1 硬件处理措施

硬件处理过程中,应重点考虑以下几个方面:

(1)电源是一个控制系统可靠运行的基石,很多产品与外界的有线连接就是电源连接。因此,在产品设计时应对电源电路进行有效滤波处理,并且应该通过EMC的试验检测来降低电源纹波噪声,抑制高频震荡和高压脉冲的侵入,减少由于噪声过大而引起的I2C串行EEPROM器件读写失误。这一点尤为重要,因为实践中很多系统的数据不知何故而发生了错误,可能的一个重要原因就是电源的抗干扰能力有限,从而导致I2C总线干扰。

(2)由于特殊原因,尽管对电源已经进行了有效处理,仍无法避免电磁的干扰,在使用I2C串行EEPROM时,在I2C规范限制条件下,可以采取减小上拉电阻和使用I2C总线驱动器提高输出驱动能力等措施来有效降低电磁干扰对读写的影响。

(3)I2C串行EEPROM 一般具有欠压复位电路,如果微处理器欠压复位的门限电压高于I2C串行EEPROM,那么,由于电磁干扰造成的电压波动使得微处理器可能会在总线通信过程中率先复位,而I2C串行EEPROM保持其当前状态,导致总线出现“挂死”现象,使得数据传输不同步而出现数据错误。因此,应尽量采用带有掉电检测功能的微处理器,设置微处理器掉电复位门槛电压低于I2C串行EEPROM 的欠压复位门槛,使得微处理器与I2C串行EEPROM同步复位[1]。

(4)为防止总线意外“挂死”,如果设计允许,最好能控制I2C器件的电源或选择带有复位引脚的器件。

(5)对于具有写保护功能的I2C串行EEPROM,可充分利用写保护引脚来提供硬件写保护功能,将写保护引脚连接到微处理器的I/O口线上,控制器件在平时处于写保护状态;需要写入时,将写保护引脚变为逻辑“0”。注意,写保护引脚不能悬空,否则器件将无法正常工作。

2 软件处理措施

在保证硬件电路设计可靠的同时,提高软件的抗干扰能力同样重要。在对I2C串行EEPROM进行读写操作时,要从两个方面进行可靠性的设计,首先要保证I2C总线通讯的完整和有效性,其次就是保证I2C串行EEPROM读写数据的正确性。

2.1 保证 I2C总线通讯的完整和有效性措施

2.1.1 总线复位

前面讲到在I2C总线通讯过程中,由于电磁干扰等因素可能导致总线“挂死”或通讯失效,所以在启动通讯前,应先对I2C串行EEPROM器件进行复位操作,以保证I2C总线处于畅通状态。对于具有复位引脚的器件,提供复位信号重新复位;而对于无复位引脚的器件,若电路设计中能控制其电源,则给器件上电复位;若无法控制器件电源,则启动“恢复序列”复位。恢复序列操作流程为:
    (1)在SCL线发送9个时钟脉冲;
    (2)由Master保持SDA线为高,直到Slave-Transmitter模式释放SDA执行ACK操作;
    (3)在ACK操作时,保持SDA线为高;
    (4)在Master-Receiver和Slave-Transmitter模式都结束后,Master发送一个Stop命令完成初始化总线[1]。

恢复序列如图1所示。

1副本.jpg?imageView2/2/w/550

推荐阅读

史海拾趣

方向电子公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的关键设备,具有高度的专业性和广泛的应用性。从广义上讲,凡是能与电视机连接并处理音视频信号的网络终端设备均可视为机顶盒。它不仅能够接收来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,还能通过内置的解码器将这些信号转换为电视机可识别的格式,从而呈现出高清乃至4K的超高清画质,大大提升了观看体验。

机顶盒不仅限于基本的电视信号接收功能,还集成了多种增值服务。例如,它提供电子节目指南,让用户轻松查找和预约节目;支持因特网网页浏览,实现网络购物、在线视频观看、游戏娱乐等多元化互动体验。随着智能化技术的发展,现代机顶盒还融入了语音助手、智能推荐等功能,进一步提升了用户的操作便捷性和内容个性化程度。

在技术层面,机顶盒的发展日新月异,不断向高清化、智能化方向迈进。5G技术的应用更是为机顶盒带来了更快的传输速度和更低的延迟,为用户提供了更为流畅的观影体验。此外,虚拟现实和增强现实技术的融入,也为机顶盒的未来发展打开了新的想象空间,将为用户带来更为沉浸式和互动式的观影享受。

综上所述,机顶盒作为现代家庭娱乐的重要组成部分,不仅极大地丰富了人们的电视观看体验,还通过不断的技术创新和服务升级,满足着用户日益多样化的需求。

CANDD公司的发展小趣事

在电子行业的初期,CANDD公司凭借其创始人对半导体技术的深入研究,成功开发出了一款具有划时代意义的芯片。这款芯片不仅性能卓越,而且成本远低于市场上的同类产品。凭借这一技术突破,CANDD公司迅速在行业内崭露头角,吸引了大量投资者的关注。随着产品销量的不断增长,公司逐渐扩大了生产规模,并在全球范围内建立了销售网络。

EFC [Electronic Film Capacitors, Inc.]公司的发展小趣事

在电子薄膜电容器领域,EFC公司一直以其技术创新而闻名。公司创始人李博士带领着一支由资深工程师组成的研发团队,不断挑战技术极限。某年,他们成功研发出一种新型材料,这种材料不仅大大提高了电容器的性能,还降低了制造成本。这一突破性的创新使EFC公司在市场上脱颖而出,赢得了大量客户的青睐。

爱特姆(ATOM)公司的发展小趣事

爱特姆深知人才是企业发展的核心动力。因此,公司一直注重人才的引进和培养。通过招聘行业内的优秀人才,建立了一支高素质、专业化的研发团队。同时,公司还定期举办各类培训活动,提升员工的技能水平和综合素质。

永源微电子(APM)公司的发展小趣事

永源微电子(APM)公司创立于2017年,前身可追溯到台湾汉磊科技。作为汉磊科技的全资子公司,香港艾柏霖科技有限公司的功率器件事业部,永源微电子继承了丰富的技术积累和市场资源。公司创立之初,便确立了专注于集成电路设计、制造与销售的战略方向。通过引进国际先进的生产工艺和研发团队,永源微电子逐渐在电子行业中崭露头角,为后续的快速发展奠定了坚实基础。

Corex Intervest Inc公司的发展小趣事

Corex Intervest Inc公司的创立,标志着电子行业中一颗新星的诞生。公司创始人凭借对电子技术的深刻理解和市场需求的敏锐洞察,决定投身于电子产品的研发和生产。在创立初期,公司面临着资金短缺、技术难题和市场竞争等多重挑战。然而,创始人凭借坚定的信念和不懈的努力,带领团队攻克了一个又一个难关,逐步在市场中站稳了脚跟。

问答坊 | AI 解惑

AVR单片机应用系统开发典型实例

我们用的AVR系统,有一套教材 上传和大家分享咯…

查看全部问答>

各个管脚的含义

在下载程序时 cyclone II 各个管脚Q O S n代表什么含义呢 -%-278280-%-…

查看全部问答>

在串口调试工具上,用AT命令集打电话发短信的步骤是怎样的.

在串口调试工具上,用AT命令集打电话发短信的步骤是怎样的.…

查看全部问答>

安装了Sfilter,怎么看不到调试语句输出呢?

DDK里面的Sfilter例子。编译出sfilter.sys,用里面自带的inf文件安装,重启了。但是用windbg看不到调试语句输出。 怎么回事? …

查看全部问答>

tchar字符串转换为十进制的方法

请教一个问题: 在WinCE环境下,使用eVC编程 定义了2个字节的数据 TCHAR buf1[3]=_T(\"7A\"); SetDlgItemText(IDC_EDIT3,buf1); 显示的ASCII 现在我想用十进制显示出来,怎么转换呢?…

查看全部问答>

有关使用定时器产生PWM输出的配置问题、求高手!

看了STM32应用上讲的使用定时器产生PWM输出,其中一个配置步骤: 根据需要的频率和占空比计算出输出高电平的时间和低电平的时间:OCHy = 通道y的高电平时间;OCLy =通道y的低电平时间把OCHy写入对应的输出比较寄存器,并启动计数器开始计数,比较 ...…

查看全部问答>

伺服电机的测速方法介绍.

伺服电机的测速方法介绍.…

查看全部问答>

STC单片机 PCA 和DC问题

为什么我的STC当PCA定时和DC运算同时进行时 数据会乱跳,关掉DC运算PCA定时就正常了…

查看全部问答>

MSP430里的标志位定义方法

MSP430里没有位定义 可下面结构体定义来代替 struct flag_inf{              unsigned doc:1;        unsigned m:1;        unsigned up:1;     ...…

查看全部问答>

LVPECL问题

有个问题,请教大家,如果有个LVPECL的信号Q和Q把,怎么输入到FPGA中去啊?作为外部时钟输入。在管脚分配的时候,选LVPECL外,里面代友怎么写?要描述下,Q和Q把 的逻辑关系就好了?还是要怎么样的?困惑中。…

查看全部问答>