CoolRunner-Ⅱ器件的OL、SDA、START不口STOP发生逻辑

时间:2008-09-18
  在主模式中,此进程产生I2C总线的SOL和SDA。SOL为100 kHz,由系统时钟1.832 MHz及分频计数器CNT_100kHz决定。在不同的设计中,系统时钟可能不一样。为了满足I2C时序要求,需要重新计算CNT_100kHz值,并正确设置START_HOLD和DATA_HOLD参数。
  在主模式中,产生SOL和SDA的状态机如图所示。
  在发送模式中,SDA信号线输出的信号为START及STOP状态,或数据寄存器MBDR中的数据。

  在IDLE状态,SCL和SDA均为三态,允许主设备控制总线。一旦有START请求,且CPLD I2C在主模块式,总线空闲,则状态机会转入START状态。
  在START状态,SCL为高,SDA输出低电平,产生START。系统时钟计数器SCL_CNT开始计数,总线保持START状态直到START_HOLD满足,进入SCL_LOW_EDGE状态。
  在SCL_LOW状态,产生SCL下降沿,并复位CLK_CNT。在下一个时钟沿,系统进入SCL_LOW状态,并保持此状态直到CLK_CNT=LOW_CNT。如果有REP_START发生则SDA变为高;如果有GEN_STOP,则SDA变为低。
当CLK_CNT=LOW_CNT,即SCL低电平满足如下两个条件,状态进入IDLE;否则进入SCL_HI_EDGE。
  (1)总线仲裁失败。
  (2)字节传输守华,即BIT_CNT>7。
  在SCL_HI_EDGE状态,产生一个SCL上升沿。
  在SCL_HI状态,系统时钊训数器进行计数.SDA保持高电平直刭CLK_CNT=HIGH_CNT,进入SCL_LOW_EDGE状态。如果在此过程中出现START/STOP条件,状态机将会在SOL高电平持续半周期时进入START或STOP WAIT状态。
  STOP_WAIT状态被用来确保在STOP条件之后满足保持时间。

SCL、SDA、START和STOP发生逻辑状态机


  如图 SCL、SDA、START和STOP发生逻辑状态机
  

  
上一篇:CoolRunner-Ⅱ器件的I2C总线仲裁
下一篇:集成稳压电源实验内容

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料