14 iic
day14.txt
iic
硬件:iic总线:scl和sda两根
协议:同步的串行半双功多主总线协议
iic总线理论可以并联127个iic接口设备,并且每一个设备都可以成为主机。主机会控制时钟线
iic协议:
启动信号: scl为高电平时,SDA出现下降沿,代表start
停止信号: scl为高电平时,sda出现上升沿,代表stop
数据发送位:字节为一个发送单位
ack: 接收方必须在第9个时钟周期发送应答(接收方修改sda电平)。0位正常应答 1为非正常
iic设置靠设备号进行区分。每一设备都有7位从机地址,从机地址大部分都是厂商设定的。
iic通信速率:100k、400k、3.4m
主机控制发送速率,因为主机控制scl的频率
iic通讯时:
必须进行寻址;因此第一个字节信息如下:
7位从机地址+1位读写标志
读写标志位:0代表主机对从机进行写操作
1代表主机对从机进行读操作
iic自带仲裁机制:可保证总线同一时刻只有一个主机
iic通信中start和stop都是主设备发出的。
主设备控制scl
4412:
有8个iic接口
可以支持100k和400k两种模式
4412可以作为主机和从机,4412作为从机使用从机地址可以由使用者自己设置,地址不能和板子上的其他器件相同
4412支持的4中模式:
主发送:
主接收:
从发送:
从接收:
程序完成需要的步骤:
1、start、stop、发送速率如何设置
I2CSTAT的第5位决定start,stop
I2CCON 的第0-3位和第6位共同决定
2、ack如何设置
I2CCON 的第7位
3、发送数据和接收数据的接口
I2CDS,数据的收发都从这个寄存器操作
4、速据接收和发送控制
I2CCON的4位
程序第4位写0,代表下次操作开始
CPU控制第4位写1代表,上次操作结束
i2c协议规定,如果需要对从机进行指定寄存器的读操作。
首先需要将从机地址和从机寄存器地址进行写操作,通知从机要对指定寄存器进行操作,接下来才开始对从机进行读操作。从机会将指定寄存器的数值发送给主机。
如果读操作不指定寄存器地址,则从机从自己寄存器的起始处开始发送,主机读多少数据就会发前多少个寄存器的数值。