你好,欢迎访问达普芯片交易网!|  电话:010-82614113

CoolRunner-Ⅱ器件的I2C总线仲裁

发布时间:2008-09-18阅读:809

  在以下几种情况下,I2C总线仲裁会失败。
  (1)在地址或数据发送周期,当主设备输出“1”,而SDA被采样为“0”。
  (2)在数据接收周期的应答位,当主设备输出“1”,而SDA被采样为“0”。
  (3)当总线忙时,企图有一个START。  
  (4)在从模式中,企图有一个Repeat START。
  (5)检测到一个STOP,而主设备并没有STOP请求。
  如果I2C控制器工作在主模式,输出SDA信号将会与输入SDA信号进行比较以确定总线仲裁是甭失效。在数据传输过程中,SDA信号仅在SCL为高电平的时被检查(ACK周期除外),以确保START/STOP不会在错误的时间内产生。如果发现输出SDA与输入SDA不同,则总线仲裁失败,这时MAL位被置位。同时CoolRunner-II I2C控制器切换到从模式并复位MSTA位。
 
  CoolRunner-II fc控制器在总线忙时不会产生START,然而如果在总线忙时,uC依然发出START/Repeat START请求,则MAL位将会被置位。另外,在主设备没有发出STOP请求时,MAL仍然因为STOP被检测到而置位。这些都被视为仲裁失败,应该避免,并正确处理。

  如果仲裁失败发生在字节传输过程中,SOL会一直产生,直到字节传输完成。

在线人工客服

点击这里给我发消息

点击这里给我发消息

点击这里给我发消息

010-82614113

客服在线时间周一至周五
9:00-17:30