新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种I2C设备控制方法的设计和实现

一种I2C设备控制方法的设计和实现

作者:时间:2012-11-12来源:网络收藏

为了快速读写数据,本文采用页面写的方式将数据写入AT24C08;采用随机读和顺序读相结合的方式读取AT24C08数据。

3 软件

3.1 TWI初始化程序的

根据TWI的功能特点,TWI初始化的初始化包括以下4步:

(1)配置PIO器使复用管脚驱动TWI信号;

(2)配置PMC使TWI时钟处于工作状态;

(3)配置TWI为主工作模式。本文CPU为主,日历和存储芯片为从;

(4)设置数据传输速率,配置TWI时钟波形发生器寄存器。

3.2 PCF8563驱动程序的

为了PCF8563的工作方式,需要对其写入字;为了得到PCF8563输出的时间信息,需要对其进行读操作,读/写数据的流程如图3所示。

本文设计编写如下读函数和写函数:

其中,pTwi是结构体指针,指向的结构体中存放TWI的寄存器,通过pTwi即可访问各TWI寄存器;address表示地址;im_address表示设备内部地址;data代表读写数据的变量指针。

因此,若使PCF8563工作于普通模式,并读时数据,可用以下代码

3.3 AT24C08驱动程序的设计

由于AT24C08由4个具有不同设备地址的页组成,且采用连续读写数据的操作方式,所以AT24C08的读写与PCF8563读写有以下几点区别。

(1)先设置TWI_CR的起始标志,之后通过TWI_RHR和TWI_THR读/写TWI接口的数据;发送最后一个数据之前,再设置TWI_CR的停止标志。

(2)对于多字节数据的读写,全部数据若没有传输完毕,便不发送停止信号,所以需通过判断TWI_SR寄存器中的TXRDY和RXRDY决定是否读TWI_RHR和写TWI_THR,而将是否出现停止信号作为是否停止发送和接收的判断依据。

(3)由于数据量和起始单元均是随机的,所以有可能出现一页写不下的情况,因此针对给定的数据量和起始单元参数需要计算出共需几页,以便在进行页面切换时更换设备地址。

本文设计编写了如下读函数和写函数。

3.4 软件的调试与运行

本文采用IAR开发环境和J-LINK仿真器进行软件的在线调试和加载运行。调用函数完成以下程序设计:首先从PCF8563连续读出若干数据并写入AT24C08;其次,将AT24C08中的数据读至数组变量中。在程序中的读完AT24C08数据后设置断点,观测数组中存放的数据,从而验证驱动程序的正确性。

4 结 语

本文介绍了PCF8563和AT24C08的使用,通过分析基于ARM核的AT91SAM7X256的TWI接口控制,设计PCF8563和AT24C08的驱动程序,时钟数据的读取和存储。

本文设计的驱动模块已成功地用于智能煤矿分站实验系统中,完成了历史时间数据的记录功能,同时本文为ARM控制多个设备提供了可以借鉴的


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭