0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

硬件I2C控制器保持稳定需要哪些条件呢

冬至配饺子 来源:TopSemic嵌入式 作者:TopSemic 2022-08-15 17:24 次阅读

EEPROM可以掉电保存数据,是一种在产品中经常使用的器件,24Cxx 系列更是被广泛采用。文章附件的工程在 24LC02 上调试通过,实现了字节读写和页读写。MCUSTM32F030。采用了 MCU 的硬 I2C 控制器。24LC02硬件连接:A2,A1,A0 接 GND, 地址为 A0。WP 接 GND,允许写入。24LC02 Page size 是 8 Bytes, 一共 256 个字节大小。如果要移植代码到其它芯片,需要注意 Page size 和页地址的不同。

pYYBAGL6D_2AI1KcAAD7jHiwlWI294.png

网上有很多抱怨使用硬件 I2C 控制器不稳定,常常死机,所以转而采用 GPIO 模拟 I2C 时序的同学。我们还是不推荐用模拟的方法,它会耗费比较多的MCU 系统时间。硬件 I2C 其实也是可以稳定运行的,需要注意以下几点:

1. 看一下芯片勘误表 Errata,有没有已知 Bug。

2. I2C 操作中途被打断,或受到脉冲干扰,SCL, SDA 可能被拉低锁死。尝试用 SCL 产生 9 个时钟脉冲让从器件或主控制器释放总线。这种方法可以解决掉绝大部分问题。这里需要注意,拉低总线的并不一定是从器件,有客户在总线锁死后,把 SCL SDA 线割断后发现这两根线任然是拉低的(主控制器模块因为时序问题进入死锁)。

3. 总线上加具有总线恢复功能的缓冲器,如 LTC4307。

4. 选用带复位输人的 I2C 从器件。5. 控制 I2C 从设备的电源,死锁后重新上电。采用哪些方法,还是要综合考虑可靠性要求和成本。

下面是实测的 24C02 读写时序:

Byte Write

pYYBAGL6EB6APaDFAABv2L74gHw400.png

Byte Read

pYYBAGL6EDGAc6DdAAB42WphtR0205.png

Page Write

poYBAGL6EESAYuEHAAB5EWDYjNY381.png

Page Read

poYBAGL6EF2ARUmEAACDxavnWb4351.png


审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • EEPROM
    +关注

    关注

    9

    文章

    928

    浏览量

    80329
  • I2C控制器
    +关注

    关注

    0

    文章

    6

    浏览量

    6923
  • STM32F030
    +关注

    关注

    1

    文章

    33

    浏览量

    6465
收藏 人收藏

    评论

    相关推荐

    怎么检测I2C的开始条件和结束条件?

    [table][tr][td]怎么检测I2C的开始条件和结束条件?做I2C接口时一般大家是怎样检测其开始条件和结束
    发表于 11-08 17:52

    稳定可靠的I2C通信的设计计算

    I2C™、SPI、Microwire和UNI/O®总线。其中,I2C总线在单片机和其他芯片组中具有广泛的硬件支持,并且信号传递方式简单,可采用极小的硅片有效实现,因此占据了非易失性存储
    发表于 12-17 11:52

    I2C总线信号时序总结

    是由主控主动建立的,在建立该信号之前I2C总线必须处于空闲状态。 重启动信号在主控控制总线期间完成了一次数据通信(发送或接收)之后,如果想继续占用总线再进行一次数据通信(发送或接收
    发表于 06-14 15:00

    请问dm385 使用i2c 3访问控制器超时,需要改驱动哪些东西?

    大家好:我使用dm385 i2c 1访问tvp7002能正常访问,但是使用i2c 3访问寄存,出现控制器超时。我是在a8这侧访问的。请问驱动需要
    发表于 07-25 09:54

    不使用处理I2C控制器

    嗨,我需要一个I2C内核来控制串行eeprom。在Web上的大多数I2C示例中,使用了微处理。但我想只使用FPGA。我怎样才能做到这一点?
    发表于 03-13 13:08

    为什么virtex5板的“DVI控制器”中时钟需要i2c接口?

    嗨是通过“i2c接口”配置dvi控制器时所需的xclk时钟等你的回复最好的祝福
    发表于 09-02 10:07

    能使用内置的I2C控制器或使用软件吗

    刚开始的时候,我有一个带有I2C接口的PIC12F1820。读取外部串行EEPROM的最好方法是什么?1)我应该使用内置的I2C控制器或使用软件吗?2)有标准的
    发表于 05-14 08:14

    HarmonyOS 驱动平台---I2C

    */ uint16_t regLen;/* 寄存字节宽度 */ struct DevHandle *i2cHandle;/* I2C控制器句柄 */};/*
    发表于 09-16 18:54

    软件I2C硬件I2C区别

    目录一、软件I2C硬件I2C1、软件I2C2硬件I2C3、软硬
    发表于 08-20 08:08

    什么是软件I2C硬件I2C

    学习I2C总线通信协议,完成基于I2C硬件协议的AHT20温湿度传感的数据采集,并将采集的温度-湿度值通过串口输出。具体任务:1)解释什么是“软件
    发表于 08-23 06:19

    I2C设备驱动的相关资料下载

    I2C总线驱动加载到内核的过程3.2 I2C总线驱动如何操作硬件3.3 I2C设备 I2C驱动3.4
    发表于 02-10 06:39

    硬件I2C与模拟I2C相关资料推荐

    硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的
    发表于 02-22 06:02

    Rockchip I2C控制器支持哪些功能?

    Rockchip I2C控制器支持哪些功能?
    发表于 03-02 09:56

    浅谈STM32硬件I2C的使用

    STM32的硬件I2C很多人都对它望而却步。因为很多电工都说,STM32 硬件 I2C有BUG、不稳定、死机等等……最后都使用GPIO模拟
    发表于 04-03 10:55

    如何保持宽电压输入而供电电流能够保持稳定呢?

    如何保持宽电压输入而供电电流能够保持稳定呢? 保持宽电压输入,同时保持稳定的电流是各种电子设备设计中需要解决的一个难点。这个问题尤其对于那些
    的头像 发表于 10-26 11:38 509次阅读