IIC笔记
IIC采用同步通讯,是半双工工作方式。

在产生起始信号后,主机会在总线上广播自己想要找的从机的从机地址,总线上的各个从机就读取总线上的地址,看是不是自己,当是自己时响应一个应答信号,然后就进行读写操作。(至于从机的那些都是芯片设计的时候就处理好了iic协议,比如应答、做开漏输出、地址)。

当i2c设备空闲时会输出高阻态,各个从机就可以接收数据。快速模式下传输速率为400k bit/s,支持DMA传输,在快速模式下可选择SCL时钟的占空比,可选Tlow/Thigh=2或
Tlow/Thigh=16/9模式。
计算时钟频率:
标准模式:
Thigh=CCRTPCKL1
Tlow = CCRTPCLK1
快速模式中Tlow/Thigh=2时:
Thigh = CCRTPCKL1
Tlow = 2CCRTPCKL1
快速模式中Tlow/Thigh=16/9时:
Thigh = 9CCRTPCKL1
Tlow = 16CCRTPCKL1
例如,我们的PCLK1=42MHz,想要配置400Kbit/s的速率,计算方式如下:
PCLK时钟周期:
TPCLK1 = 1/42000000
目标SCL时钟周期:
TSCL = 1/400000
SCL时钟周期内的高电平时间:
THIGH = TSCL/3
SCL时钟周期内的低电平时间:
TLOW = 2TSCL/3
计算CCR的值:
CCR = THIGH/TPCLK1 = 35
该结果刚好为整数,所以我们可直接把CCR取值为35,这样I2C的SCL实际频率
即为400KHz。
GPIO
推挽输出 1 3.3v
0 0v
开漏输出 1 电阻无穷大
0 0v



一般从机地址的前四位是确定的后四位由硬件连接确定。

被折叠的 条评论
为什么被折叠?



