登录站点

用户名

密码

MC9S12XDP512下IIC模块的应用总结

1已有 812 次阅读  2010-02-05 10:59   标签IIC  模块  应用 

IIC应用笔记

IIC总线相关知识:

1.起始信号: 时钟线保持高电平时,数据线上出现由高变低的信号。

2.停止信号:时钟线保持高电平时,数据线上出现由低变高的信号。

3.数据传输:时钟线为高电平时,数据线上的逻辑状态必须保持一致。时钟线为低电平时,允许数据线上的电平发生变化(即传输)

4.起始信号和停止信号都由主控制器产生,应答信号在每个数据传输后的第9个时钟周期由接收器产生,低电平有效。当主控制器为接收方时,接收到最后一个字节时,不应发送应答信号。

5. 写过程:启动IIC→发送从机地址→发送要写单元地址→发送写数据(一个或者连续写) →发送停止信号,关闭IIC

6.读过程:主机发送开始信号,启动IIC→发送从机地址→产生连续启动,发送要读单元地址→接收数据,发送应答信号→接收最后一个数据,不发送应答信号→发送停机信号

芯片相关知识:

1.  FM3135(RTC模块)

1.  支持最高1MHZIIC总线时钟频率。

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中断) 

http://blog.csdn.net/finewind

后记:此程序IIC总线时钟速率为1MHZ,采用XGATE处理IIC中断,之间会有等待 过程,最长等待为发送停机信号及重新启动IIC部分。

 

没有了 下一篇: S19文件格式简述

分享 举报