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

iiC的开始和停止信号的延时怎么不同啊

liuxiaofei126 2018-07-21 浏览量:2228

1.png

这个时间大于4.7us,但是在原子例程中缺只有4us

//²úÉúIICÆðʼÐźÅ
void IIC_Start(void)
{
SDA_OUT();     //sdaÏßÊä³ö
IIC_SDA=1;    
IIC_SCL=1;
delay_us(4);
  IIC_SDA=0;//START:when CLK is highDATA change form high to low 
delay_us(4);
IIC_SCL=0;//ǯסI2C×ÜÏߣ¬×¼±¸·¢ËÍ»ò½ÓÊÕÊý¾Ý 

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 既然时序都一样的话。这个延时还是选择5us较好,这样更稳定可靠
    • 发布于 2018-07-23
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:16
  • delay_us是用循环实现的吗?还是定时器?循环实现的话时间没那么精准,us级的4个就够了
    • 发布于2018-07-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 起始信号和结束信号的延时不同,在一个可容纳的范围内,可以被器件识别到就可以了,4us还是5us都一样。

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

  • 因为他们是两个不同的信号,为什么要一样呢?
    • 发布于2018-07-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 本来就是不同的信号,没必要一样,而且时序只是给出器件能够识别的最小时序,只要大于这个都行,一般不会用最小时序的,本来IIC通讯一般都不高,用的是低速,毕竟总线上面器件速率要求很难一样,就低不就高!
    • 发布于2018-07-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 1,起始信号和终止信号为什么不同?

    起始信号和终止信号是两个信号,两个信号当然就不一样了,如下:

    起始信号:scl 高电平,sda 产生一个下降沿

    终止信号:scl 高电平,sda 产生一个上升沿

    这是两个信号,本来就是不一样的

    2,为什么协议是4.7,实际延时 4 仍然会工作?

    4.7 us 是个协议要求的最小时间,4.7 你要理解成:

    大于等于 4.7 一定不会出问题好好工作,但是小于4.7就一定会出问题么?不一定的,实际上高速器件相应很快的。

    反过来从器件厂商角度去考虑这个 4.7 ,厂商为了器件容忍度更好,肯定希望他远小于 4.7 仍能正常工作,不会把这个时间做到临界正好是 4.7,因为如果软件稍不注意小于4.7 那器件就不能用,或者电路波形稍微出点问题,就不稳定,都不是器件厂商希望看到的。所以并不是说小于 4.7 就一定会挂掉。

    3,你写 iic 协议时候,当然是要保证大于 4.7 符合 iic 协议,也能更好的兼容所有 iic 器件通信,但是你写 4.0,自己写的协议不规范,器件仍然能工作,你不能赖器件做的这么优秀呀,对吧

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

  • 你看看别人规定的通信协议是怎么回事呗,这个是通信协议规定的。
    • 发布于2018-07-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个延时的值可以在一个范围里面取,并不一定是大于4.7us
    • 发布于2018-07-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 这就好比国标和厂家标准,所以还是应以官方I2C协议为准。
    • 发布于2018-07-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个标准协议,只要是在这个范围之内都可以通讯
    • 发布于2018-07-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 时序没有那么苛刻,iic的起始和结束都有一个最小的建立时间和保持时间,大于他们就可以保证通信正常
    • 发布于2018-07-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 通讯是有最小时间 只要满足最小条件 多少都可以
    • 发布于2018-07-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 只要满足I2c的要求,时长不同也没什么
    • 发布于2018-07-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个时序的操作只要是时钟信号对应,这个操作的时候不会要求那么严格的
    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 要看的IIC芯片是否支持这样的操作,每个芯片都有最大的时序时间
    • 发布于2018-08-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

iiC的开始和停止信号的延时怎么不同啊