• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

i2c spi等通讯协议 有没必要调平高低电平的时间

_落雪千寒灬 2018-08-21 浏览量:2155
之前同事用示波器看了我单片机的模拟i2c通讯的时序 发现高低电平的时间相差大 就用粗延时调整为差不多一样 他说这样脉宽相等更加稳定 这个是真的像他说的那样吗 有必要吧脉宽都看一下调一下吗
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • I2C有标准的通讯速度:400k,100k,20k,看具体I2C器件的支持程度。

    但是I2C并不要求严格的时钟周期,而是靠SCL线的上升沿来识别通讯时序,所以就算高低电平时间不一样也可以通讯。但是个人是强迫症患者,一般设计为50%的占空比。

    同理于SPI,靠的是CLK线上的上升下降沿来判断读写内容。

    • 发布于 2018-08-21
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:9
  • 完全没必要,SPI信号只和时钟边沿的电平信号有关系,时钟长短没任何影响,哪怕你是1%占空比,只要边沿处数据线电平正确就能正常通信。IIC也只规定每个电平状态的最低宽度,实际上协议规定的最低宽度占空比并不是50%。
    • 发布于2018-08-21
    • 举报
    • 评论 0
    • 1
    • 0

  • 需要根据数据手册调整时序,只要在范围之内都可以的
    • 发布于2018-08-21
    • 举报
    • 评论 0
    • 0
    • 0

  • IIC没有必要。

    SPI速度高时,可以调一下。否则信号波形比较平滑,

    • 发布于2018-08-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 问问你的同事,什么情况下占空比不是50%不稳定,一般很少会碰到这种情况吧,他说估计是他碰到过
    • 发布于2018-08-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 不需要调整。只需要你的电平时间按照时序来操作即可
    • 发布于2018-08-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 只要是能通信正常就不需要调整,无论是粗延时还是精延时,对于I2C引脚的效果都一个道理。SPI的话最好还是用硬件SPI接口。

    • 发布于2018-08-26
    • 举报
    • 评论 0
    • 0
    • 0

  • I2C通信,除非遇到那种通信速度很快的器件,否则都是有一定的容错能力的,不过使用模拟I2C的时候,最好用一个准一点的延时函数,如用定时器延时
    • 发布于2018-08-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个要使用专门的定时器延时函数,你可以修改你的定时器来调整你的延时时间
    • 发布于2018-09-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有必要,最好延时的时间没有太多的要求,只要跟你的时序一样就可以
    • 发布于2018-09-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

i2c spi等通讯协议 有没必要调平高低电平的时间