|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我想请问下,I2C中有三个模式:标准模式:100Kbit/s,快速模式:400kbit/s,高速模式:3.4Mbit/s.这个应该是指SCL的频率吧?
我写的主机位控制模块中,写和读状态需要,w_a,w_b,w_c,w_d四个状态来完成,相当于Fscl=Fclk_sys/4,那如果我想设定I2C在快速模式下工作,是不是就根据前面那个公式转换得Fclk_sys=4*Fscl=4*400K=1600KHz,只要设定我的系统时钟为1600KHz,就表示快速模式?
我在网上下了一个代码,其中有这样的解释:
// Timing: Normal mode Fast mode
///////////////////////////////////////////////////////////////////////
// Fscl 100KHz 400KHz
// Th_scl 4.0us 0.6us High period of SCL
// Tl_scl 4.7us 1.3us Low period of SCL
// Tsu:sta 4.7us 0.6us setup time for a repeated start condition
// Tsu:sto 4.0us 0.6us setup time for a stop conditon
// Tbuf 4.7us 1.3us Bus free time between a stop and start condition、
怎么SCL高电平和低电平的占空比都不一样,而且通过计算也不是精确的数,这是为什么?请高手解释下。谢谢。。。。。 |
|