IIC应用笔记
IIC总线相关知识:
1.起始信号: 时钟线保持高电平时,数据线上出现由高变低的信号。
2.停止信号:时钟线保持高电平时,数据线上出现由低变高的信号。
3.数据传输:时钟线为高电平时,数据线上的逻辑状态必须保持一致。时钟线为低电平时,允许数据线上的电平发生变化(即传输)。
4.起始信号和停止信号都由主控制器产生,应答信号在每个数据传输后的第9个时钟周期由接收器产生,低电平有效。当主控制器为接收方时,接收到最后一个字节时,不应发送应答信号。
5. 写过程:启动IIC→发送从机地址→发送要写单元地址→发送写数据(一个或者连续写) →发送停止信号,关闭IIC。
6.读过程:主机发送开始信号,启动IIC→发送从机地址→产生连续启动,发送要读单元地址→接收数据,发送应答信号→接收最后一个数据,不发送应答信号→发送停机信号
芯片相关知识:
1. FM3135(RTC模块):
1. 支持最高1MHZ的IIC总线时钟频率。
2. RTC模块读取时间流程:向地址0x00处先写0x01(即置位R)→地址移动到0x02→读取时间数据→向地址0x00处写0x00(即复位R)
3. RTC模块修改时间流程:向地址0x00处写0x02(即置位W) →写时钟寄存器→向地址0x00处写0x00
2. MC9S12XDP512IIC模块:
1.IBCR:第5位,主/模式选择位,该位从0变成1时,产生起始信号;该位从1变成0时,产生一个停止信号(只有当IBIF=1时,停止信号才能产生).
2.IBDR:在发送模式下,当一个数据被写到IBDR时,数据传输就开始了。
在接收模式下,读该寄存器将机动下一字节的接收。注意:接收第一字节之前,空读该寄存器以启动接收。在读最后一个字节之前,要将寄存器设置成不发送应答信号。当下一次中断(最后一个字节之后的一个数据)来临时,不能再读IBDR,应直接写IBCR的第5位产生停止信号。
3. 主机做接收方时,需要将主机设置成连续启动.
4. 发送中断来临时,还需等待从机应答信号到来才能发送下一个字节。
代码:(Xgate处理IIC中断)
后记:此程序IIC总线时钟速率为1MHZ,采用XGATE处理IIC中断,之间会有等待 过程,最长等待为发送停机信号及重新启动IIC部分。
发表评论 评论 (0 个评论)