单片机技术篇之I2C 总线日历时钟芯片 PCF8563介绍
扫描二维码
随时随地手机看文章
PCF8563 是PHILIPS 公司推出的一款工业级内含I2C 总线接口功能的具有极低功耗的多功能时钟/日历芯片。PCF8563 的多种报警功能、定时器功能、时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。是一款性价比极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。
实时时钟芯片PCF8563是低功耗的I2C总线器件,其内部有定时器和报警器等资源,可以提供时、分、秒、月、日、年和星期等时间信息,被广泛应用于便携式设备中。本节将简要介绍PCF8563的引脚、内部寄存器和通信协议。
PCF8563有16个8位寄存器,其中包括:可自动增量的地址寄存器、内置32.768kHz的振荡器(带有一个内部集成电容)、分频器(用于给实时时钟RTC提供源时钟)、可编程时钟输出、定时器、报警器、掉电检测器和400kHz的I2C总线接口。
1.PCF8563的引脚功能
PCF8563的引脚如图6-14所示,其功能分别如下:
1)OSCI和OSCO分别是振荡器的输入和输出引脚。
2)INT是中断信号输出引脚,低电平有效。
3)VDD和VSS分别是正电源引脚和接地引脚。
4)SDA和SCL分别是串行数据输入/输出引脚和串行时钟信号引脚。
5)CLKOUT是时钟信号输出引脚。
2.PCF8563的内部寄存器
PCF8563内部有16个8位寄存器,每个寄存器都有地址,见表6-2。根据功能可以将这些寄存器分成三类:
1)控制寄存器,地址为01H~02H和0DH~0FH。
2)时钟寄存器,地址为02H~08H,存放了时、分和秒等时钟信息。
3)报警寄存器,地址为09H~0CH,用于设置报警时间。
单片机可以通过地址访问这些寄存器,以实现对PCF8563的操作控制。
3.PCF8563的通信协议
PCF8563有三种通信协议,分别如图6-15~图6-17所示,下面分别简要介绍。
(1)主机发送、从机接收的协议
假设单片机是主机,PCF8563是从机。在图6-15所示的协议中,主机发出启动信号之后再发送1个字节,该字节的高7位是PCF8563的地址;最低位为0,表示主机将继续向PCF8563发送数据。接下来,主机发送PCF8563内部寄存器的地址,以确定存放接收数据的寄存器。之后,主机连续向PCF8563发送n个字节数据。每接收1个字节数据后,PCF8563内部寄存器的地址将自动加1。发送完毕后,主机发出停止信号,结束本次数据传输。
图6-15 PCF8563协议之主机发送、从机接收
需要注意,PCF8563的地址格式如图6-12所示。其中:地址高7位是固定的,即1010001,最低位为1和0分别表示单片机读和写PCF8563,即:主机读、写PCF8563的地址分别是0A3H和0A2H。另外,PCF8563没有硬件地址定义引脚;对于有地址定义引脚的I2C器件,接收到器件地址后,需将该地址与地址定义引脚的状态进行比较,比较结果一致,才能进行后续的通信操作。
(2)主机设置寄存器地址后再读数
在图6-16的协议中,主机发出启动信号后再发1个字节,其中,高7位是PCF8563的地址;最低位是0,表示主机将继续发数据。接着,主机发送PCF8563内部寄存器的地址,以确认下一步读取PCF8563的哪一个寄存器。之后,主机开启一个读PCF8563的过程,主机首先发出启动信号;然后发出一个字节,其中高7位是PCF8563的地址,最低位为1,表示接下来主机要读PCF8563的数据;之后主机开始连续读PCF8563发出的数据。
图6-16 PCF8563协议之主机设置寄存器地址后再读数据
需要注意,在由写操作切换到读操作前,主机必须再次产生启动信号,并利用之后发出的第1个字节(其最低位为1,表示读操作)将PCF8563设置为发送方。
(3)主机设置从机地址后立即读数据
在图6-17的协议中,主机产生启动信号后再发送1个字节(该字节的最低位为1),以将自身设置为数据接收方,接下来连续读取PCF8563发送的数据。
图6-17 PCF8563协议之主机设置从机地址后立即读数据