数字ic学习-IIC总线(一)之datasheet学习
1.简述
刚学fpga的时候做过ov7725摄像头的驱动,包括iic,跟着****做的,最终实现了。现在马上要工作了,私下联系了主管,他给我安排了任务,年前期末的事了,现在才做,真是惭愧。让我做iic slave接口,当时心想做过啊,简单。后来仔细去做的时候发现,我以前做的是master接口,不能直接用,而且仿真激励还得用到iic master,突然觉得主管不愧是主管,看似简单,东西挺多的啊。他后面给了NXP的iic手册,研究了一下,确实详细,比网上资料好很多,还能锻炼英文。今天先总结下。
2.正文
1.摘要
- iic只有两个总线,SCL和SDA。
- 四种模式
- 标准模式 100Kb/s
- 快速模式 400Kb/s
- 快速Plus模式 1Mb/s
- 高速模式 3.4Mb/s
- 超高速模式 5Mb/s
2.修订历史
3.特性表
- 这里面说三种情况:单主机、多主机和从机。
- M:必有 O:可选 n/a:不适用。实现的时候我们要遵循这个标准。
4.逻辑电平
由于做ic所以要关注逻辑电平。可以看出iic总线的电平不是固定的,取决于参考输入电平(VDD)。
- 30%VDD及以下 为低电平;
- 70%VDD及以上 为高电平
5.数据有效
- 当SCL 为高时SDA数据为有效的,所以这个时候SDA数据必须稳定;
- SDA数据在SCL为低电平的时候变化;
- 一个SCL时钟传输1bit的SDA数据。
6.开始和停止信号
- 开始信号 当SCL为高时,SDA由高变低;
- 停止信号 当SCL为高时,SDA由低变高;
7.传输格式
- SDA必须为8bit数据一组传输,也就是传输一个字节;
- 传输的字节数据没有限制;
- 传输每个字节后面都得有ack。
8.ACK和NACK
ACK和NACK是接收端发出的应答信号,ACK表示有效,可以继续传输。NACK表示有问题,传输暂停,原因文档列了五条,我不做解释了。
- ACK SCL时钟有效,SDA为低;
- NACK SCL时钟有效,SDA为高;
9.从机地址和读写位
这个图很容易看明白iic时序了,不难理解。
- 1-7bit 是地址
- 第8bit 是读或写位
- 0 写
- 1 读
- 数据传输是从高位到地位传输。
3.总结
其实看了这些,只是iic理想情况下的,还没涉及到多机传输冲突、几种传输模式实际运用等等,就类似高中和大学学习,全都是忽略很多实际问题的理想情况。今天就看了这么多,明天继续吧,深入挖掘。