一、IIC总线协议
SDA上传输的数据必须在SCL为高电平期间保持稳定,在SCL为低电平期间变化。
3.IIC总线的数据传输格式
启动一个传输时,主机现发出S信号,然后在8个时钟周期内在SDA数据线上传输8位数据(7位从机地址和读写位),发送完便释放SDA控制权。从机根据本身固话的地址进行判断,若地址与自己匹配则自动发出响应信号ack。接着传输一系列字节及其响应信号。最后主机发出P信号结束本次传输。下面韦东山视频讲的传输时序图:
4、IIC设备
AT24c系列存储芯片:at24c02、at24c04、at24c08、at24c016等,大小分别是2k、4k、8k、16k。每个芯片都有7位固话的设备地址,前四位是固定的1010,后三位可以硬件电路决定。巧妙利用分页机制访问存储器中每个单元,其中每页的大小就是256Byte(因为协议规定发送到SDA线上的数据以8位为单位)。如图A0~A2由硬件电路确定,设置P0~P2用于访问存储器的哪一页(存储器大小大于2k时)。比如:对于at24c08来说,dev_addr =0b1010 000表示可以访问第0页的256Byte,dev_addr =0b1010 011表示可以访问第3页的256Byte。所以后面驱动部分在mini2440开发板(at24c08)上注册IIC设备时的地址列表addr_list可以写0x50,0x51,0x52,0x53中任意一个。