爱普生EPSON实时时钟芯片-RX8111CE

1.翻译记录

•内置频率调整32.768 kHz晶体单元

•接口类型:I2C(高达400 kHz) 普通 100khz

•备份时的低电流消耗:100毫安/3.0伏典型值。

•宽工作电压范围:1.6 V至5.5 V

•宽时间保持器电压范围:1.1 V至5.5 V

•自动电源切换功能:自动切换至备用电源

通过监测VDD电压。

•时间戳功能:8倍时间戳,1/256秒,可选择多个触发器。

•时间戳存储器可用作用户存储器;512位,64字 8位

•警报中断:日、日、时、分、秒

•各种功能包括完整日历、秒报警、唤醒计时器和32.768 kHz输出

•自我监控功能:电压检测、晶体振荡停止等。

VDD:电源引脚,VIO可以提供与VDD不同的电压

VOUT:内部电压输出引脚,需外接1.0uf的旁路电容器

FOUT:频率输出引脚(CMOS)(频率选择:32.768 kHz、1024 Hz、1 Hz),当输出停止时,FOUT引脚为高阻抗。

VIO:接口电源引脚,可以输入与主机相同电压,或者不同电压,看单片机引脚驱动几伏

EVIN:触发时间戳请求的输入。内置可编程上拉/下拉电阻。

输入检测在备份模式下可用。输入电平的基准是VOUT电压。注意,VIO中没有它。可选择输入抖动过滤率。不使用EVIN时,将EVIN连接到VDD或GND;不要让EVIN pin漂浮。

/INT:开路输出,该引脚用于输出报警信号、定时器信号、时间更新信号和其他信号。该引脚为N-沟道

注:确保在VDD和GND之间连接额定值至少为0.1μF的旁路电容器。

应用电路  IO和电源电压一致

 典型电路链接

2.交流特性

I2C接口在收到从机地址2秒后复位。

要重新启动串行通信,请再次发送启动条件。

8位数据锁存在ACK的SCL上升沿。

如果在发送8位数据的中途取消通信,则不会写入数据

10.电源

(1)电源顺序

该电路对电源噪声敏感,电源电压应稳定以避免对精度产生负面影响

 正确上电复位需要tR1。如果无法保持通电状态,则有必要通过软件向RTC发送初始化例程。

如果在短期内反复接通/断开电源,则可能会导致上电复位不稳定。

 断电后,将VDD=VBAT=GND保持10秒以上,以便进行正确的上电复位。当RTC不稳定时,请用软件初始化RTC。

上电复位发生在VOUT电压的上升沿

内部初始化首次通电时,VDD必须大于1.45 V:+VDET1。

Power supply rise time1:电源上升时间1

Access wait time.After initial power on:访问等待时间。初始通电后。

After VDD reach to +VDET1 :VDD到达+VDET1后

Access disable hold time:访问禁用保持时间

Power supply fall time :电源下降时间

Waiting time before starting I2C from Power-ON.:通电,启动I2C前的等待时间。40ms

 (2)RTC上电时的行为和操作限制

 由于大多数RTC寄存器与内置晶体振荡器的振荡时钟同步,因此,如果集成振荡器不稳定,RTC将无法正常工作。请在振荡稳定后(振荡开始时间tSTA后)电源电压返回时(VLF=1)初始化RTC。

如果打算在主电源电压恢复后访问RTC,请注意以下几点:

当VLF返回“1”时,请初始化所有寄存器。当内置振荡稳定时,请仅执行初始设置tSTA(振荡开始时间)。

在电源电压超过最小VCLK(时钟电源电压(VDD>1.6 V))的40毫秒内禁止访问。

下图图解

(3)通过软件重置

通过软件重置用于发电的软件序列上电重置

1) 通电

2) 等待时间超过40毫秒  标记1

3) 虚拟读数  标记2

4) 读出VLF位1

5) 写入00h地址:Reg=32h(标记3 ) INIEN=0b

6) 写入80h地址:Reg=3Fh测试=1

7) 写入6Ch地址:Reg=D0h

8) 写入03h地址:Reg=D1h

9) 写入10h地址:Reg=D2h

10) 写入20h地址:Reg=D3h

11) 等待2毫秒以上自动释放  标记4

标记1:当40毫秒的等待时间在您的系统中很长时,另一种方法是。

从第一步跳到第三步。在步骤4,当VLF为1时,将0写入VLF。当VLF为1时,重复重置至VLF并验证VLF为0。如果VLF清除为0,则跳至步骤5。在这种方法中,该序列可能短于40毫秒。40毫秒后,当VLF未重置为0时,转至步骤5。(这个感觉不实际,咱还是40ms在操作RTC)

标记2:虚拟阅读:任何地址都可以。在I2C通信中,忽略来自RX8111CE的ACK/NACK信号。

标记3:即使VLF为0,也应执行此命令。即使VLF为1,也可在步骤5后使用。

标记4:2毫秒是重置处理的时间。

注:除使用此重置序列外,不要从D3h访问D0h,也不要将1写入测试位。

11.寻找频率稳定性  温度与频率的关系,会影响到计时;每个RTC走着走着都会偏,正常每个厂家都会在误差范围内

12.应用笔记

1、注意事项 该模块采用C-MOS集成电路实现低功耗。搬运时,请仔细注意以下注意事项。

(1)静电

虽然该模块具有内置电路,可防止静电放电,但芯片仍可能被大量静电放电损坏。用于包装和运输的容器应由导电材料制成。此外,只有烙铁、测量电路和其他不会泄漏高压的此类设备才应与该模块一起使用,在使用此类设备时,该模块也应接地。

(2)干扰

如果电源或输入引脚上施加了外部噪声过大的信号,设备可能会出现故障或“闭锁”为了确保稳定运行,连接大于0.1uf的滤波电容器(最好是陶瓷电容器)尽可能靠近连接到电源引脚。此外,避免将任何产生高水平电子噪声的设备放置在该模块附近。

(3)输入引脚的电压

当输入端持续输入的电压超出输入电压规格范围时,就会产生穿透电流。因此,当前的消费量大大增加。这会导致锁存,因此,IC中的ABILT会被破坏。请根据输入电压规格使用输入端子。此外,请尽可能多地输入VDD或GND最近的电压。

(4)未使用的引脚

处理未使用的输入端子。当输入端处于打开状态时,会导致消耗电流增加以及不稳定的行为。请将一个未使用的引脚固定在接在VDD或GND的电压上。

2、说明

如果包装内的温度超过+260度、 晶体振荡器的特性将退化,并可能

可能会损坏。建议使用我们回流配置文件中的回流条件。

13.寄存器应用说明

Note. The initialization of registers is necessary about the unused function too

13.1功能概述

1) 时钟功能

此功能用于设置和读取秒、分、时、日、月、年(至最后两位)和日期数据。

任何四的倍数(两位数)的年份都被视为闰年,并自动计算,直到2099年。而且

“60”秒的书写时间适用于闰秒。

2) 唤醒定时器中断功能

唤醒计时器中断功能在244.14之间的任何固定周期周期周期性地生成中断事件32岁。生成中断事件时,/INT引脚变为低电平(low),TF位设置为“1”,以报告已发生事件。

即使计时器正在运行,也可以读取计时器数据。定时器在定时器暂停和运行两种情况下工作,因此该功能实现了累积计时器、唤醒计时器等

3) 报警中断功能

报警中断功能为报警设置生成中断事件,如日期、日期、小时和分钟设置。当中断事件发生时,AF位值设置为“1”,并且/INT引脚变为低电平,以指示事件已发生。

4) 低工作电压检测功能(VLF)

在上电初始化或备份恢复期间,可以检测到VOUT端子电压较低。该功能判断时钟数据的可靠性。

如果检测到较低的电压,上电重置功能将此RTC设备移至初始状态。

5) 低电池备用电压检测功能(VLOW)

可检测到VBAT端子电压较低

6) 晶体振荡停止检测功能(XST)

可以检测到RTC内部晶体振荡停止。

7) 时钟输出功能(FOUT)

FOUT终端提供32.768 kHz、1024 Hz或1 Hz时钟。

如果未使用FOUT功能,唤醒定时器中断功能可用。

8) 时间戳函数

例如,该功能可用于记录系统软件更新、电池更换和系统警报的时间。

即使电源切换到备用电池电源,时间戳也会被存储,这有助于提高系统的鲁棒性。

8次,从一年到1/256秒。

时间戳触发EVIN引脚、自我监控和I2C软件命令的输入。

9) 用户RAM

内置8比特 用于通用存储器或时间戳存储器的64字(512位)RAM。

它可供用户的RAM或时间戳存储器选择。

13.2数据表格

13.2.1数据表格

初始通电(0 V)后或如果VLF位返回“1”,确保在使用RTC之前初始化所有寄存器。

 确保避免输入错误的日期和时间数据,因为数据或时间数据不正确时,时钟操作无法保证。

 初始化后,标记为“z”的任何位的值都应为“0”。(不可写)

任何标有“•”的位都是RAM位,可用于读取或写入任何数据。

任何标有“---”的位都不可写。读取结果未知。

上表仅显示了用户注册。由于功能原因,RTC具有上表未提及的不同寄存器,这些寄存器由制造商编程。请确保只访问上述用户注册。

通过对无功能寄存器的读/写,其他功能不受影响。

初始通电(0 V)后或如果VLF位返回“1”,确保在使用RTC之前初始化所有寄存器。

制造商使用测试位(3Fh位7)进行测试。写入时请确保将该位设置为“0”。

 在使用时钟模块之前,确保通过初始化写入“0”。之后,确保在书写时设置“0”。

 确保避免输入错误的日期和时间数据,因为数据或时间数据不正确时,时钟操作无法保证。

初始化后,标记为“z”的任何位的值都应为“0”。(不可写)

任何标有“•”的位都是RAM位,可用于读取或写入任何数据。

任何标记为wit“-”的位都是不可写的。读取结果未知。

上表仅显示了用户注册。由于功能原因,RTC具有上表中未提及的不同寄存器

由制造商编程。请确保只访问上述用户注册。

即使对“无功能”进行读/写访问,其他功能也没有影响。

当不使用周数据时,不需要初始化周寄存器。

通过对无功能寄存器的读/写,其他功能不受影响。

13.2.2上电复位后记录初始值

本表描述了上电复位后的初始值。

注:标记为“X”的寄存器应初始化为0,时间戳区域除外

13.3. 寄存器说明

13.3.1. 时钟和日历计数器(10h  16h)

这是从一秒到一年的计数器注册。详情请参考[14.1时钟日历说明]。

13.3.2. 唤醒计时器(向下计数器)((1Ah ~1Ch, 2Dh)

唤醒定时器(下行计数器)数据被读取并存储在此寄存器中。,还有TE、TF、TIE、TSEL1、TSEL0、TBKON、TBKEbit。

如果用户不使用此功能,则应将TIE、TE重置为“0”。计数器数据未知。

请参考14.2唤醒计时器。详细信息。

13.3.3. 报警寄存器(17h~19h)

报警中断功能与AIE、AF和WADA位一起用于设置指定日期、日期、小时和分钟值的报警。如果用户不使用此功能,则应将AIE重置为“0”。数据不详。

请参考14.3警报中断。详情

13.3.4.功能相关寄存器(1Dh ~ 1Fh)

1) FSEL1,FSEL0位

FSEL1和FSEL0位的组合用于选择要输出的频率。如果客户不使用此功能,则应将FESL1、FSEL0设置为“1”。请参考14.6 FOUT功能

2)USEL、UF、UIE

此位用于指定“第二次更新”或“分钟更新”作为的更新生成定时

时间更新中断功能。如果客户不使用此功能,USEL、UIE应重置为“0”。

详情请参考[14.4.更新中断功能]。

3) TE、TF、TIE、TSEL1、TSL0、TSTP、TBKON、TBKE、TMPIN位

这些位用于控制唤醒定时器中断功能的操作。

如果客户不使用此功能,(TE、TIE、TSTP、TMPIN)应为(0,0,0,0)、TSEL1、TSEL0(1,0)。详情请参考[14.2唤醒定时器中断功能]。

4) WADA,AF,AIE bit

这些位用于控制报警中断功能的操作。如果客户不使用此功能,WADA应为“1”,AIE为“0”。我不在乎。详情请参考[14.3.报警中断功能]。

5) ETS、EVF、EIE位

这些位用于控制时间戳功能的操作。

如果客户不使用此功能,ETS、EIE应重置为“0”。EVF不在乎。

详情请参考[14.8.时间戳功能]。

6) VLF、POR、XST位

这些位用于检测RTC内部状态和记录。

例如,在上电重置期间,低电压检测使VLF位为“1”。

详见[14.5.RTC内部状态检测功能]。

7) 停止位

此位用于停止计时操作。在“停止位=1”的情况下:

所有的计时更新(年、月、日、周、时、分、秒、1/128、1/512)操作和日历操作

停止。有了它,更新中断事件不会在报警中断时发生,时间戳数据将在停止状态下显示。

13.3.5. 电池备用切换功能相关寄存器(32h)

详见14.7电池备用切换功能。

1) CHGEN

备用电池充电控制设置(开/关)。

2)  INIEN

设置电源切换功能(开/关)。

3) SMPT1,SMPT0位

每个电源引脚的电压检测器电路的操作时间设置。

4) SWSEL1,SWSEL0位

电池备用切换期间的工作电压检测电路功能禁用

13.3.6. 时间戳寄存器 (详情请参考14.8时间戳功能)

1) 时间戳、状态记录寄存器(20小时) 29小时,40小时 7Fh)

在事件发生时,时间戳(1/1024秒~年)和内部状态被记录到这些寄存器中。

2) EVIN终端控制寄存器(2Bh)

EVIN终端的设置。

3) 命令触发器,时间戳控制寄存器(2Eh 2Fh)

它通过I2C总线用于时间戳触发定时。

4) 时间戳触发控制寄存器(35h)

除EVIN外,它用于时间戳触发器。

13.3.7. 运行状态检测寄存器(33h)

详见14.5运行状态检测功能-

1)EVIN

EVIN终端检测电压电平H/L

2) VCMP位

VCMP比较结果

3)VLOW

VLOW检测结果

13.3.8. 用户注册(40h~ 7Fh)

用户可以通过设置34h TSRAM位“0”将该区域用作用户的RAM。

14.如何使用

 Figure 18 Basic (32.768 kHz oscillation, counter, FOUT) Function         

 图18基本(32.768 kHz振荡、计数器、FOUT)功能

14.1. 时钟日历功能

在通信开始时,时钟和日历数据是固定的(保持进位操作),并在通信结束时自动进行修改。因此,建议通过自动增量功能连续访问时钟日历。

在当前时间读取时,停止位应为“0”

表13时间,日历设置示例

请注意,写入不存在的时间数据可能会干扰时钟计数器的正常工作

注:时间从停止位操作(H)开始→L)定时

14.1.1. 时钟计数器

1) [秒],[分钟]寄存器

这些寄存器是60个基本BCD计数器。当从较低的计数器生成更新信号时,较高的计数器是递增的。。在下位寄存器从59变为00的定时,进位被生成到高位寄存器,然后被递增。

2) [小时]登记

该寄存器是一个24基BCD计数器(24小时格式)。这些寄存器在低位寄存器生成进位时递增。

3) 闰秒调整

对于闰秒调整,用户可以将“60”写入秒计数器,1秒后秒计数器将设置为“00”。

通常情况下,第二个计数器将从“59”计数到“00”。

14.1.2. 周计数器

一周中的某一天由7位表示,从0位到6位。

The day data values are counted as: Day 01h → Day 02h → Day 04h → Day 08h → Day 10h → Day 20h → Day 40h → Day 01h → Day 02h, etc.

从小时寄存器生成进位时,进位增加。此寄存器不会生成到更高寄存器的进位。由于该寄存器未与年、月和日寄存器连接,因此如果年、月或日寄存器中的任何一个发生了更改,则需要将其与每周的匹配日重新设置。

当不使用周数据时,不需要初始化周寄存器。

不要同时将“1”设置为一天以上。

表14周寄存器值设置示例

 14.1.3. 日历计数器

1) 【日】【月】登记

日期寄存器是一个变量(28基和31基之间)BCD计数器,受月份和闰年的影响。月寄存器是一个12基BCD计数器,由日寄存器的结转触发

 2) 【年】登记

此寄存器是BCD计数器,适用于00年至99年。

闰年是自动确定的,并影响日期寄存器。

该RTC将以下年份处理为闰年:00,04,08,12,96。

2100年、2200年、2300年都需要用户软件修正,因为它们是普通年份。

闰年的定义

闰年:可被4整除的年份,可被400整除的年份

例:2000、2004、2008、2012、2096、2400、2800、,

普通年份:不可被4整除的年份,可被100整除的年份

例如2001年、2002年、2003年、2005年、2099年、2100年、2200年、2300年、2500年、,,

14.2. 唤醒定时器中断功能

唤醒计时器中断功能在244.14之间的任何固定周期周期周期性地生成中断事件和31.9年。此功能可一次性停止,并可作为累计计时器使用。

14.2.1. 唤醒定时器中断功能的相关寄存器

在进入操作设置之前,我们建议首先将TE位清除为“0”。

当不使用固定周期计时器功能时,固定周期计时器计数器0,1寄存器可用作RAM寄存器。在这种情况下,通过向TE和TIE位写入“0”来停止固定周期计时器功能。

 1) 唤醒中断计时器2、1、0的下行计数器

该寄存器用于设置计数器的默认(预设)值。从1(000001h)到16777216(FFFFFFh)的任何计数值都可以,准备好了。在写入预设值之前,确保将“0”写入TE位。

当TE=0时,定时器计数器的读取数据为默认(预设)值。当TE=1时,定时器计数器读出的数据仅为计数值。但是,当访问计时器计数器数据时,计数值不会被保留。

因此,例如,执行两次读取访问以获得正确的数据,以及采用两次数据访问是必要的情况的方法

2) TSEL1, TESL0 bit

这种组合决定了倒计时周期的源时钟。

源时钟选择应在TE位设置为“0”后进行

/INT引脚的自动复位时间(tRTN)根据源时钟设置如上图所示变化。

第一次倒计时比源时钟短。

3) TE位(定时器启用)

该位控制唤醒计时器的启动/停止。

4) TF位(定时器标志)

5) 连接位(定时器中断启用)

6) TBKON,TBKE位(定时器备份开启,定时器备份/正常启用)

7) TMPIN位(定时器引脚)

8) TSTP位(计时器停止)

14.2.2. 唤醒计时器开始计时

固定周期定时器值的倒计时从SCL(ACK输出)信号的上升沿开始,该信号在TE值

从“0”更改为“1”。

14.2.3. 唤醒计时器中断间隔

14.2.4. 唤醒定时器中断功能图

14.3. 报警中断功能

报警中断功能为报警设置生成中断事件,如日期、日期、小时和分钟设置。

当发生中断事件时,AF位值设置为“1”,并且/INT引脚变为低电平,以指示事件已发生。此RTC保留/INT=“L”状态,直到有意重置。

14.4. 时间更新中断功能

时间更新中断功能以1秒或一分钟的间隔生成中断,并与RTC的秒或分钟时间寄存器的更新同步。生成中断事件时,此/INT状态自动清除

(/INT状态在中断发生后从低电平变为Hi-Z 7.57毫秒)。

14.4.1.时间更新中断功能的相关寄存器。

14.5. RTC自我监控检测

这些位是RTC每个功能的标志位。

它是一个标志位,用于检测该产品的状态并保存结果。

-POR上电复位检测

-VLF检测到内部电压过低。

-XST振荡停止检测。

-EVIN事件输入状态。

-VCMP电池充电状态。

-电池电量低。

14.5.1. RTC内部状态检测的相关寄存器

1) POR位(上电复位)

 该位记录上电复位操作。

Write 0:POR位被清除为0,并等待下一次上电重置检测

Write 1:无效(写入“1”将被忽略)

read 0 :无上电复位检测

read 1:检测到上电重置。结果将一直保留,直到清除“0”。所有寄存器都通过上电rest设置为默认状态。

2) VLF位(电压低标志)

该位以POR或XST的状态反映。

Write 0:VLF被清除为0,并等待下一次低电压检测。

Write 1:无效(写入“1”将被忽略)

read 0 :振荡状态正常,RTC寄存器数据有效。

read 1:检测到上电复位或X'tal振荡停止。结果依然如此直到清除“0”。用户可以通过软件检查RTC状态和初始化。(在通电时间等)

3) XST位(X'tal振荡停止)

 该位记录RTC内部晶体振荡停止状态。

如果没有振荡,则时间戳功能不激活;一旦振荡开始,它就会激活

当振荡停止超过10毫秒时,XST设置为1。通电复位不会将该位清除为“0”。

Write 0:XST被清除为0,并等待下一个振荡停止检测。

Write 1:无效(写入“1”将被忽略)

read 0 :无RTC内部晶体振荡停止检测

read 1:检测到RTC内部晶体振荡停止。结果将一直持续到正在清除“0"

4) EVIN位(EVIN终端的输入电平监视器)

该位监控EVIN终端输入电压高/低

Read 0:EVIN终端输入电压低电平

Read 1:EVIN终端输入电压高电平

5) VCMP bit

6) VLOW bit 

14.6. FOUT功能(时钟输出功能)

14.7. 备用电池切换功能

14.7.1. 电池备用切换功能说明

有三种检测、切换功能。

1) VDD电压检测(VDET)比较VDD电压和VDET1(INIEN寄存器控制)

2) VBAT充电检测(VCMP)比较VBAT电压和VDD电压(CHGEN寄存器控制)。

3) VBAT电压检测(VLOW)VBAT电压和VLOW电压之间的比较(EVLOW寄存器控制

VDD电压检测和VBAT充电检测如图31和图32所示。

检测、切换功能由VDD和VBAT之间的二极管、开关和比较器组成。

RTCs备份功能的内置方式可防止从VBAT到VDD的反向电流

有两种操作模式:

1) 来自VDD的正常模式电源

2) 来自VBAT的备份模式电源

在备份模式下,FOUT引脚变为Hi-Z,I

2C输入启用(SDA、SCL:Hi-Z)。

VLF检测(甚低频bi“0”→“1)将电池备份切换相关寄存器设置为默认值。

14.7.2. 备用电池切换相关寄存器

表44备用电池切换相关寄存器

 

 1) CHGEN位(充电启用)

2) INIEN位(初始启用)

3) INIEN位(初始启用)

该位用于启用/禁用VLOW功能以及控制时间戳操作。

(详见14.8.6)

备用电池切换控制(初始通电)

4) 备用电池切换控制(初始通电)

5) 非充电电池控制(INIEN:1,CHGEN:0)

6) 可再充电电池控制(INIEN:1,CHGEN:1)

7) VDD电压检测寄存器SMPT1,SMPT0位

8) 电池备用切换相关寄存器SWSEL1,SWSEL0位

9) 电压检测间歇定时

14.8. 时间戳函数

14.8.1. 时间戳函数概述

时间戳操作有三个因素

1) EVIN引脚信号检测

2) RTC内部状态检测

3) 命令由i2C读取命令(2Fh读取)

时间戳事件最多可被记录到RAM中8次。(参见图31)

/INT引脚中断输出在时间戳事件发生时可用。这些操作也可以在备份模式下工作。RTC内部状态可以在标记记录时记录,时间(1/128秒、秒、分钟、小时、天、月、年、状态标记)。

14.8.2. 时间戳相关寄存器

14.8.3. EVIN引脚输入触发的时间戳功能

以下寄存器控制EVIN引脚输入触发的时间戳功能。

14.8.4. I2C访问触发的时间戳功能

14.8.5. 时间戳存储寄存器

14.8.6. RTC内部事件触发时间戳,多次戳

14.9. 流程图

下面是流程图的示例,但它们不一定适用于每个用例,也不一定适用于单个应用的最有效流程。为了有效处理,用户可以执行多次执行、更改顺序、删除执行等操作

1) 开机初始化示例

只有时钟使用 only clock

 

 

14.10. 通过I2C总线接口读取/写入数据

 14.10.1. I2C总线概述

每当不进行通信时,SCL和SDA信号都保持在高电平。

当SCL处于高电平时,通信的启动和停止控制在SDA的上升沿或下降沿。

14.10.2. 数据传输

一旦出现启动条件,数据传输以8位(1字节)为单位执行。数量(字节)没有限制

在启动条件和停止条件之间传输的数据。

(但是,传输时间不得超过0.95秒。)

14.10.3. 启动和停止I2C总线通信

访问该设备时,从发送启动条件到访问后发送停止条件的所有通信应在0.95秒内完成。如果通信需要0.95秒或更长时间,I2C总线接口将通过内部总线超时功能复位

14.10.4. 从地址

I2C总线设备没有任何芯片选择或芯片启用引脚。

所有I2C总线设备都以固定的唯一编号存储。I2C总线上的芯片选择被执行,当接口启动时,主设备向I2C总线上的所有设备发送所需的slaveaddress。当所需的从机地址与其自身的从机地址一致时,接收设备仅对接口做出反应。

在实际数据传输过程中,传输的数据包含从机地址和具有R/W(读/写)位的数据。

14.10.5. 系统配置

 所有连接到I2C总线的端口必须是开漏或开集电极端口,以便启用和连接到多个设备。

对于该RTC模块,CPU等控制器被定义为主设备,RTC模块被定义为

从设备。当一个设备同时用于发送和接收数据时,它被定义为发送器或接收器

取决于这些条件

14.10.6.协议

在以下序列描述中,假设CPU是主CPU,RX8111CE是从CPU。

地址规范写入序列

由于RX8111CE包含地址自动递增功能,一旦指定了初始地址,RX8111CE将在每次传输数据时递增(一个字节)接收地址。

解决自动递增函数的循环问题。

(1) CPU传输启动条件[S]。

(2) CPU传输RX811CE的从机地址,R/W位设置为写入模式。

(3) 检查来自RX8111CE的确认信号。

(4) CPU将写入地址传输到RX8111CE。

(5) 检查来自RX8111CE的确认信号。

(6) CPU将写数据传输到上面(4)中指定的地址。

(7) 检查来自RX8111CE的确认信号。

(8) 如有必要,重复(6)和(7)。地址会自动递增。

(9) CPU传输停止条件[P]。

 ACK signal from RX8111CE:来自RX8111CE的确认信号

2) 地址说明读取序列

使用写入模式写入要读取的地址后,将读取模式设置为读取实际数据。

(1) CPU传输启动条件[S]。

(2) CPU传输RX811CE的从机地址,R/W位设置为写入模式。

(3) 检查来自RX8111CE的确认信号。

(4) CPU传输从RX8111CE读取的地址。

(5) 检查来自RX8111CE的确认信号。

(6) CPU传输重启条件[Sr](在这种情况下,CPU不传输停止条件[P])。

(7) CPU传输RX811CE的从机地址,R/W位设置为读取模式。

(8) 检查来自RX8111CE的ACK信号(从这一点开始,CPU是接收器,RX8111CE是发射器)。

(9) RX8111CE输出上述(4)中指定地址的数据。

(10) CPU将ACK信号传输至RX8111CE。

(11) 如有必要,重复(9)和(10)。读取地址会自动递增。

(12) CPU传输“1”的确认信号。

(13) CPU传输停止条件[P]。

3) 未指定地址时的读取顺序

一旦最初设置了读取模式,就可以立即读取数据。在这种情况下,每个读取操作的地址都是先前访问的地址+1。

(1) CPU传输启动条件[S]。

(2) CPU传输RX811CE的从机地址,R/W位设置为读取模式。

(3) 检查来自RX8111的ACK信号(从这一点开始,CPU是接收器,RX8111CE是发射器)。

(4) 数据从RX8111CE输出到之前访问的地址末尾之后的地址。

(5) CPU将ACK信号传输至RX8111CE。

(6) 如有必要,重复(4)和(5)。读取地址在RX8111CE中自动递增。

(7) CPU传输“1”的确认信号。

(8) CPU传输停止条件[P]。

版权声明:本文为CSDN博主「芋头莎莎」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38295600/article/details/122921321

生成海报
点赞 0

芋头莎莎

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

RT-Thread Studio移植LAN8720A驱动

RTT网络协议栈驱动移植(霸天虎) 1、新建工程 ​ 工程路径不含中文路径名,工程名用纯英文不含任何符号。 2、用CubeMx配置板子外设 2.1、配置时钟 ​ 按照自己板子配置相应时钟。

【STM32Cube笔记】12-配置外部中断

【STM32Cube笔记】系列文章目录 1-基于STM32的VSCode入门级教程前言 2-STM32Cube安装教程 3-STM32CubeIDE汉化 4-STM32Cube配置时钟设置 5-跑马灯引脚配置 6-Cortex-M7内核基本配

stm32cubemx+HAL+串口接收中断

stm32cubemxHAL串口接收中断 在cubemx配置完串口和global interrupt后需要在keil中添加如下代码。 第一步:在main函数中添加接收中断标志位开启函数 HAL_UART_Receive_IT