AT24C01应用实例(8)

时间:2025-05-03

数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件。 AT24C02正是运用了I2C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。

AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。控制字各位的具体作用见表1。

由上表可知,控制字的高4位为AT24C02的识别位,是不能更改的;而第A0,A1,A2片选位,最后是一位是读写控制位,当其为1时,进行的是读操作,反之将要进行的是写操作。

3 AT24C02的读写操作

3.1 开始位、停止位和确认位的编程

总线SCL和SDA一般由上拉电阻拉为高电平,只有在SCL为低电平的周期内,SDA引脚上的数据才有效。而当SCL为高电平期间SDA引脚上产生的电平变化则表示I2C总线工作的“开始”或“停止”两种状态:当SCL为高平时,SDA由高电平转向低电平时表示“开始”状态,而由低电平转向高电平时表示“停止”状态,其时序如图3所示。

由时序图可以编写由主机发给AT24C02的开始信号和停止信号的KEIL C语言函数如下:

同时,AT24C02与主机进行信息交换,还需要另外一个“确认信号(ACK)”的状态。I2C总线数据传送时,每成功地传送一个字节数据后,AT24C02都必须产生一个应答信号,应答的器件在第9个时钟周期时将SDA线拉低,表示其已收到一个8位数据。AT24C02在接收到起始信号和与之匹配的地址之后就会响应第一个应答信号;如果AT24C02被设置为写操作,则每接收一个字节之后响应一个应答信号;当AT24C02被设置在读模式时,则在发送一个字节的数据后会释放SDA线,并监视主机发过来的应答信号,一旦接收到应答信号,AT24C02继续发送数据,如主机没有发送应答信号,AT24C02将停止传送数据并等待一个停止信号,此时主机必须发送一个停止信号给AT24C02,使其进入备用电源模式并使AT24C02处于已知的状态。由此可见,应答信号在AT24C02的读写工作中经常用到,根据图4应答信号的时序图。

可以编出一个检验是否有应答信号送来的操作函数如下:

3.2 写操作

AT24C01应用实例(8).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219