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

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

3天内不再提示

为什么MCU I2C波形中会出现的脉冲毛刺?

聚沃科技 2024-03-02 09:33 次阅读

I2C的波形中,经常会发现有这样的脉冲毛刺,会被认为是干扰或者器件不正常。

wKgZomXigcaAf4DVAAcuLcM_Sl8019.png

看到这个波形时,可以先数一下出现在第几个clock的位置,如果出现在第9个clock的低电平期间,就不是干扰或者器件异常导致。

在I2C的协议中,不管是地址匹配阶段还是数据读写阶段,第9个clock都是ACK和NACK位;

其中NACK为第9个SCL上升沿时SDA高电平:

wKgZomXigcuAOCwTAAAY7vJhex0521.png

ACK为第9个SCL上升沿时SDA低电平:

wKgaomXigc-AHjr8AAAaQkwtO1Y118.png

在地址匹配阶段由从机来回复ACK,在数据收发阶段由接受方来回复ACK。

那么I2C是双向半双工通信,SDA引脚通过主机和从机共同控制,ACK回复过程意味着发送方会在通过SDA发送了8个bit的数据后释放SDA控制权给接受方,此时如果最后一个波形数据BIT0是0,那SDA会在SCL下降沿后从拉低状态被释放,由于上拉电阻的作用SDA就会恢复到高电平,但紧接着接受方开始数据建立开启对SDA的控制权,拉低SDA引脚准备回复ACK,于是SDA信号被再次拉低。

wKgaomXigdWAZLHJABMpXCCcJX4089.png

由于整个过程是连续的,且都会在SCL第9个Clock的低电平期间完成,产生的波形就会像一个毛刺被误认为干扰。实际上这个波形的出现不用在意,可以不采取任何措施。

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

    关注

    6001

    文章

    43973

    浏览量

    620851
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16019

    浏览量

    343636
  • 嵌入式
    +关注

    关注

    4982

    文章

    18285

    浏览量

    288474
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1346

    浏览量

    120826
  • GD32
    +关注

    关注

    7

    文章

    333

    浏览量

    23740
收藏 人收藏

    评论

    相关推荐

    i2c读取每4毫秒偶尔会出现故障的原因?

    i2c读取每4毫秒偶尔会出现故障。 概率约为 1, 500:1。 失败的原因是 I2C_ERR_OTHER。 版本为版本:1.40.0_7.0.0
    发表于 01-19 07:12

    用STM8S207硬件I2C调试用轮询的方式,一旦加入中断,I2C的时序就出现了问题,为什么?

    用STM8S207 硬件I2C调试用轮询的方式发现如果不加入其它中断可以正常运行,一旦加入中断,I2C的时序就出现了问题,比如用定时器如果设置成1MS定时每次都是错误的,定时100MS基本还是可以正常运行不过偶尔也
    发表于 04-19 07:49

    为什么MCU I2C波形中会出现脉冲毛刺?#MCU #单片机 #嵌入式开发 #i2c

    单片机mcu
    聚沃科技
    发布于 :2024年03月02日 09:35:36

    I2C总线彩电的检修

    调整并作进一步检查时,应首先检查I2C总线通道工作情况,可用仪器分别探查CPU和各受控IC的SDA端口和SCL端口有没有波形出现,其幅值是否符合要求(正常波形幅值应接近5VPP?。在此
    发表于 09-05 10:56

    oki mcu i2c通信问题

    "0" I2C0MOD = 0x13;//Enable I2C,standard mode}unsigned char WaitAck(void){ return
    发表于 08-13 14:56

    STM32应用实例十:简析STM32 I2C通讯死锁问题

    时,就是使用I2C接口来实现通讯的。但在使用I2C和STM32F1的标准库读取数据时出现了死机的现象。其现象是这样的,程序可以顺利的运行,但I2C没有数据返回。用示波器查看
    发表于 05-15 13:36

    到底什么是I2C

    之间的通信链路。这一解释已经很清楚了,但我还有更多的问题:它究竟是什么?什么类型的设备使用I2CI2C如何帮我解决系统中遇到的实际问题?I2C是使主设备(例如处理器,微控制器(MCU
    发表于 07-23 04:45

    I2C中的脉冲Gobbler延迟是多少?

    大家好,我是在dsPIC33EP256MU806微控制器上工作,我想用I2C接口。为了计算BRG的重载值,在公式中出现了一个未知的值,叫做脉冲Gobbler Delay,在相关注释中写着“查看特定
    发表于 10-14 15:59

    stm32f401re i2c使用

    HAL_ERR和HAL_BUSY,只能通过复位I2C和软重启解决。后来改用模拟I2C,在抓包时发现又是会出现10ns的毛刺信号,头疼。初步怀疑是因为用杜邦线飞线导致的,后来打的样板回来
    发表于 03-05 19:02

    i2c通信协议

    1.1 i2c通信协议通信协议:用来实现数据传输。i2c物理总线:SCL(时钟线) SDA(数据线)i2c通信协议是 串行、同步、半双工 的通信方式。i2c物理总线中,SCL时钟线只能
    发表于 03-06 16:15

    I2C简介

    线(SDL)组成。I2C 总线上可以接多个 I2C 设备,每个器件都有一个唯一的地址识别。同一时间只能有一个主设备,其他为从设备。通常 MCU 作为主设备控制,外设作为从设备。STM32 的
    发表于 08-10 06:28

    MCUI2C采用IO口模拟实现

    调试过程吧。需要做的工作小结如下:1、MCUI2C采用IO口模拟实现;2MCU作为I2C主设备与定时芯片RX-8025SA建立通信;3、
    发表于 11-04 07:14

    MSP MCU I2C入门手册

    简介I2C(或称为I2C,集成电路总线)是一种两线制通信形式,主要用来在短距离、电路板间的应用中,实现微控制器与外设IC之间的低速通信。由于其采用范围很广,所以学习使用I2C与MSP MCU
    发表于 11-16 07:56

    为什么程序中会出现空指针?

    为什么程序中会出现空指针
    发表于 10-10 07:25

    波形出现毛刺的原因 如何消除示波器波形毛刺 驱动波形尖峰如何处理

    示波器波形毛刺通常是由信号本身带来的噪声或者示波器本身的问题造成的。下面是一些减少示波器波形毛刺的方法
    发表于 05-02 09:55 1.9w次阅读