跳转到主内容
Knowledgebase
Home
Renesas Electronics China - Knowledgebase

请举例说明通过 I2C 总线连接外部 EERPROM 的处理。

最新更新:2011年10月 04日

Question:

请举例说明通过 I2C 总线连接外部 EERPROM 的处理。

Answer:

1. 处理过程概述

 

(0) 设置端口。 (设置 PM32, 33 为1,和 P32, 33 为0)
(1) 设置传送时钟。
(2) 设置控制寄存器 (9个时钟等待模式)。
(3) 设置端口。 (设置 PM32, 33 为0)
(4) 发送停止条件并检测总线是否被释放。
(检测中断或者 SPD0 是否被设置)
(5) 发送启动条件并获取单独的总线控制权。
(检测 STD0 是否已经被设置。)
(6) 传送从机地址并检测从机是否存在(ACK)。 (在中断时序检测 ACKD0。如果没有 ACK信号,停止传送。)
(7) 传送 EEPROM 的地址。

在写操作的情况下,还需要执行下列步骤。
(8) 发送写数据并检测用于中断的 ACK 信号。
(如果没有 ACK 信号,结束传送操作。)
(9) 如果还有剩余数据,重复步骤(8)。
(10) 发送停止条件停止写操作。

下读操作的情况下,执行下列步骤。
(11) 发送启动条件并设置数据传输方向为读方向。
(12) 设置8个时钟等待模式并允许自动响应模式。
(13) 写虚拟数据(0FFH)启动传送。
(14) 在接收完成之后读取数据。
(15) 一旦所有的数据都已经被接收,禁止自动响应模式并设置为9个时钟等待模式。
(16) 发送一个停止条件。

 

2. 处理流程
处理流程详见 PDF 格式文件。
(对不起,此文件仍在建设中。)
为简化起见,在此假定所有的数据都可以被连续的读或者写。
3. 注
(1) 关于 ACK信号
在当没有接收到响应信号,等待响应信号期间禁止循环发生。
I2C 总线中的响应时序是固定的,因此,如果在规定时间内没有收到响应信号, 便不再会收到响应信号。
如果没有收到响应信号,终止通信。

(2) 关于传输方向
从从机读取数据时,作为数据向从机发送一个2字节地址(EEPROM)。
如果没有进一步的动作,数据接收不会开始。
在 I2C 总线中,这样的操作是不会发生的。
指定 EEPROM 地址后,必须执行重启,并且通过数据读操作重启通信。
请检查所使用的 EEPROM 的说明。
Suitable Products