PCF8563.docx

上传人:b****8 文档编号:9900725 上传时间:2023-02-07 格式:DOCX 页数:41 大小:482.50KB
下载 相关 举报
PCF8563.docx_第1页
第1页 / 共41页
PCF8563.docx_第2页
第2页 / 共41页
PCF8563.docx_第3页
第3页 / 共41页
PCF8563.docx_第4页
第4页 / 共41页
PCF8563.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

PCF8563.docx

《PCF8563.docx》由会员分享,可在线阅读,更多相关《PCF8563.docx(41页珍藏版)》请在冰豆网上搜索。

PCF8563.docx

PCF8563

2PCF8563简介

   图1为PCF8563内部结构。

PCF8563内部包括16个8位寄存器,可自动增量的地址寄存器,内置32.768Hz的振荡器(带有一个内部集成的电容),分频器(用于给实时时钟RTC提供源时钟),可编程时钟输出,定时器,报警器,掉电检测器和400kHz的I2C总线接口。

   所有16个寄存器设计成可寻址的8位并行寄存器,但不是所有位都有用。

前2个寄存器(内存地址00H,01H)用于控制寄存器和状态寄存器,其中内存地址02H~08H用于时钟计数器(秒~年计数器),地址09H~0CH用于报警寄存器(定义报警条件),地址ODH控制CLKOUT引脚的输出频率,地址OEH和OFH分别用于定时器控制寄存器和定时器寄存器。

秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD格式编码。

3系统硬件设计

   硬件电路设计包括PCF8563时钟,日历器件与AT89S52单片机的接口电路、HS12864液晶显示电路以及键盘电路3个部分。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8KB在系统可编程Flash存储器;使用高密度非易失存储器技术制造,与T业80C51产品指令和引脚完全兼容:

片上Flash允许程序存储器在系统可编程,亦适用于常规编程器。

具有灵巧的8位CPU和在系统可编程Flash,使其为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。

   PCF8563采用32.768kHz可编程时钟输出频率,I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。

单片机与PCF8563之间双向传送数据,最高传送速率为100Kb/s。

FC总线的优点是简单和有效。

由于接口直接在组件之上,因此,I2C总线占用的空间非常小,减少了电路板的空间和器件引脚的数量,降低了成本。

图2为PCF8563与AT89S52单片机的接口电路,PCF8563的SCL与单片机的引脚P14连接;SDA与单片机的引脚P15连接,实现时间、日期等数据的读取。

   图3为HS12864液晶显示电路.配合单片机软件程序的编制和调试,将PCF8563中的时钟信息从P01~P07端口输出到液晶显示器,完成时间、日期等数据的显示。

4系统软件设计

   系统软件主要完成系统的初始化和系统控制,即:

初始化晶体振荡器、I/O端口、定时器及读取PCF8563中的数据、液晶显示程序等。

在这期间扫描键盘,判断是否有键按下,如果有键按下,执行相应的操作。

系统读取PCF8563中数据的C语言程序如下:

    

5结束语

   介绍采用AT89S52单片机为主控器件的电子时钟系统的设计与实现。

设计电子时钟系统时选用PCF8563时钟/日历器件,由3.3V直流电源供电,简化了硬件电路,提高了系统可靠性,通过HS12864液晶显示器能够准确显示时间。

实际应用证明该电子时钟操作简单、准确性高、体积小、功耗低,且具有良好的抗干扰性能。

 

一、概述

 

PCF8563是PHILIPS公司推出的一款工业级内含I2C总线接口功能的具有极低功耗的多功能时钟/日历芯片。

PCF8563的多种报警功能、定时器功能、时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。

内部时钟电路、内部振荡电路、内部低电压检测电路(1.0V)以及两线制I2C总线通讯方式,不但使外围电路及其简洁,而且也增加了芯片的可靠性。

同时每次读写数据后,内嵌的字地址寄存器会自动产生增量。

当然作为时钟芯片,PCF8563亦解决了2000年问题。

因而,PCF8563是一款性价比极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。

特性

l         宽电压范围1.0~5.5V,复位电压标准值Vlow=0.9V;

l         超低功耗:

典型值为0.25μA(VDD=3.0V,Tamb=25℃);

l         可编程时钟输出频率为:

32.768KHz、1024Hz、32Hz、1Hz;

l         四种报警功能和定时器功能;

l         内含复位电路、振荡器电容和掉电检测电路;

l         开漏中断输出;

l         400kHzI2C总线(VDD=1.8—5.5V),其从地址:

读,0A3H;写,0A2H。

PCF8563的管脚排列及描述如图1及表1所示。

表1  PCF8563管脚描述

符号

管脚号

       描   述

OSCI

 1

振荡器输入

OSCO

 2

振荡器输出

/INT

 3

中断输出(开漏;低电平有效)

VSS

 4

SDA

 5

串行数据I/O

SCL

 6

串行时钟输入

CLKOUT

 7

时钟输出(开漏)

VDD

 8

正电源

                               

图1  PCF8563管脚排列图

 

 

 

二、PCF8563的基本原理

 

PCF8563有16个8位寄存器:

一个可自动增量的地址寄存器,一个内置32.768KHz的振荡器(带有一个内部集成的电容),一个分频器(用于给实时时钟RTC提供源时钟),一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHzI2C总线接口。

所有16个寄存器设计成可寻址的8位并行寄存器,但不是所有位都有用。

前两个寄存器(内存地址00H,01H)用于控制寄存器和状态寄存器,内存地址02H~08H用于时钟计数器(秒~年计数器),地址09H~0CH用于报警寄存器(定义报警条件),地址0DH控制CLKOUT管脚的输出频率,地址0EH和0FH分别用于定时器控制寄存器和定时器寄存器。

秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD格式编码。

当一个RTC寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下,可以禁止对时钟/日

历芯片的错读。

1.报警功能模式

一个或多个报警寄存器MSB(AE=AlarmEnable报警使能位)清0时,相应的报警条件有效,这样,一个报警将在每分钟至每星期范围内产生一次。

设置报警标志位AF(控制/状态寄存器2的位3)用于产生中断,AF只可以用软件清除。

2.定时器

8位的倒计数器(地址0FH)由定时器控制寄存器(地址0EH,参见表23)控制,定时器控制寄存器用于设定定时器的频率(4096,64,1,或1/60Hz),以及设定定时器有效或无效。

定时器从软件设置的8位二进制数倒计数,每次倒计数结束,定时器设置标志位TF(参见表5),定时器标志位TF只可以用软件清除,TF用于产生一个中断(/INT),每个倒计数周期产生一个脉冲作为中断信号。

TI/TP(参见表5)控制中断产生的条件。

当读定时器时,返回当前倒计数的数值。

3. CLKOUT输出

管脚CLKOUT可以输出可编程的方波。

CLKOUT频率寄存器(地址0DH;参见表21)决定方波的频率,CLKOUT可以输出32.768KHz(缺省值),1024,32,1Hz的方波。

CLKOUT为开漏输出管脚,上电时输出有效,无效时输出为高阻抗。

4. 复位

PCF8563包含一个片内复位电路,当振荡器停止工作时,复位电路开始工作。

在复位状态下,I2C总线初始化,寄存器TF、VL、TD1、TD0、TESTC、AE被置逻辑1,其它的寄存器和地址指针被清0。

5.掉电检测器和时钟监控

PCF8563内嵌掉电检测器(如图2所示),当VDD低于Vlow时,位VL(VoltageLow,秒寄存器的位7)被置1,用于指明可能产生不准确的时钟/日历信息,VL标志位只可以用软件清除.当VDD慢速降低(例如以电池供电)达到Vlow时,标志位VL被设置,这时可能会产生中断。

图2 掉电检测

6. PCF8563内部寄存器

PCF8563共有16个寄存器,其中00H~01H为控制方式寄存器、09H~0CH为报警功能寄存器、0DH为时钟输出寄存器、0EH和0FH为定时器功能寄存器、02H~08H为秒~年时间寄存器。

各寄存器的位描述如表2及3.14所示。

表2 二进制格式寄存器概况

地址

寄存器名称

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

00H

控制/状态寄存器1

TEST1

0

STOP

0

TESTC

0

0

0

01H         

控制/状态寄存器2

0

0

0

TI/TP

AF

TF

AIE

TIE

0DH            

CLKOUT输出寄存器

FE

FD1

FD0

0EH          

定时器控制寄存器

TE

TD1

TD0

0FH          

定时器倒计数

数值寄存器

           定时器倒计数数值(二进制)

 

表3 BCD格式寄存器概况

地址

寄存器名称

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

02h

 VL

       00~59BCD码格式数

03h

分钟

 -

       00~59BCD码格式数

04h

小时

 -

 -

00~59BCD码格式数

05h

 -

 -

01~31BCD码格式数

06h

星期

 -

 -

 -

 -

 -

    0~6

07h

月/世纪

 C

 -

 -

01~12BCD码格式数

08h

               00~99BCD码格式数

09h

分钟报警

 AE

        00~59BCD码格式数

0Ah

小时报警

 AE

 -

00~23BCD码格式数

0BH

日报警

 AE

 -

01~31BCD码格式数

0CH

星期报警

 AE

 -

 -

 -

 -

    0~6

注:

标明“-”的位无效

 

(1)控制/状态寄存器1

表4 控制/状态寄存器1位描述(地址00H)

Bit

符号

   描      述

7

TEST1

TEST1=0,普通模式;TEST1=1,EXT_CLK测试模式

5

STOP

STOP=0,芯片时钟运行;STOP=1,所有芯片分频器异步置逻辑0。

芯片时钟停止运行(CLKOUT在32.768kHz时可用)

3

 

TESTC

TESTC=0,电源复位功能失效(普通模式时置逻辑0)

TESTC=1,电源复位功能有效

6,4,2,1,0

0

缺省值置逻辑0

 

(2)控制/状态寄存器2

表5 控制/状态寄存器2位描述(地址01H)

Bit

符号

描述   

7,6,5

0

缺省值置逻辑0

 4

TI/TP

TI/TP=0:

当TF有效时INT有效(取决于TIE的状态)TI/TP=1:

INT脉冲有效,参见表6(取决于TIE的状态)。

注意:

若AF和AIE都有效时,则INT一直有效

 3   

AF

当报警发生时,AF被置逻辑1;在定时器倒计数结束时,TF被置逻辑1,它们在被软件重写前一直保持原有值,若定时器和报警中断都请求时,中断源由AF和TF决定,若要使清除一个标志位而防止另一标志位被重写,应运用逻辑指令AND,标志位AF和TF值描述参见表7

 2    

TF

 1  

AIE

标志位AIE和TIE决定一个中断的请求有效或无效,当AF或TF中一个为“1”时中断是AIE和TIE都置“1”时的逻辑或。

AIE=0,报警中断无效;AIE=1,报警中断有效

TIE=0,定时器中断无效;TIE=1,定时器中断有效

 0

 

TIE

 

  

 

 

表6 /INT操作(bitTI/TP=1)

源时钟

(Hz)

  /INT周期

 n=1

 n>1

4096

1/8192

1/4096

64

1/128

1/64

1

1/64

1/64

1/60

1/64

1/64

        注1.TF和/INT同时有效

        注2.n为倒计数定时器的数值,当n=0时定时器停止工作。

        

表7 AF和TF值描述

R/W

     Bit:

AF

     Bit:

TF

描述

描述

Read读

0

1

报警标志无效

报警标志有效

0

1

定时器标志无效

定时器标志有效

Write写

0

1

报警标志被清除

报警标志保持不变

0

1

定时器标志被清除

定时器标志保持不变

      

(3)秒、分钟和小时寄存器

表8秒/VL寄存器位描述(地址02H)

Bit

符号

         描       述

7

VL

VL=0:

保证准确的时钟/日历数据

VL=1:

不保证准确的时钟/日历数据

6~0

<秒>

代表BCD格式的当前秒数值,值为00~99

例如:

<秒>=1011001,代表59秒

 

表9 分钟寄存器位描述(地址03H)

Bit

符号

    描   述

7

无效

6~0

<分钟>

代表BCD格式的当前分钟数值,值为00~59

 

表10 小时寄存器位描述(地址04H)

Bit

 符号

    描  述

7~6

无效

5~0

<小时>

代表BCD格式的当前小时数值,值为00~23

 

(4)日、星期、月/世纪和年寄存器

表11 日寄存器位描述(地址05H)

Bit

符号

       描     述

7~6

无效

5~0

<日>

代表BCD格式的当前日数值,值为01~31。

当年计数器的值是闰年时,PCF8563自动给二月增加一个值,使其成为29天

表12 星期寄存器位描述(地址06H)

Bit

 符号

   描    述

7~3

 -

无效

2~0

<星期>

代表当前星期数值0~6,参见表13,这些位也可由用户重新分配

 

表13 星期分配表

日(Day)

Bit2

Bit1    

Bit0

星期日

 0

 0

 0

星期一

 0

 0

 1

星期二

 0

 1

 0

星期三

 0

 1

 1

星期四

 1

 0

 0

星期五

 1

 0

 1

星期六

 1

 1

 0

 

表14 月/世纪寄存器位描述(地址07H)

Bit

符号

        描       述

7

C

世纪位;C=0指定世纪数为20××,C=1指定世纪数为19××,“××”为年寄存器中的值,参见表16。

当年寄存器中的值由99变为00时,世纪位会改变

6~5

无用

4~0

<月>

代表BCD格式的当前月份,值为01~12;参见表15

 

表15月分配表

月份

Bit4 

Bit3

Bit2

Bit1

Bit0

一月

 0

 0

 0

 0

 1

二月

 0

 0

 0

 1

 0

三月

 0

 0

 0

 1

 1

四月

 0

 0

 1

 0

 0

五月

 0

 0

 1

 0

 1

六月

 0

 0

 1

 1

 0

七月

 0

 0

 1

 1

 1

八月

 0

 1

 0

 0

 0

九月

 0

 1

 0

 0

 1

十月

 1

 0

 0

 0

 0

十一月

 1

 0

 0

 0

 1

十二月

 1

 0

 0

 1

 0

 

表16 年寄存器位描述(地址08H)

 Bit

符号

        描       述

7~0

<年>

代表BCD格式的当前年数值,值为00~99

 

(5)报警寄存器

向一个或多个报警寄存器写入合法的分钟、小时、日或星期数值并且它们相应的AE(AlarmEnable)位为逻辑0,当这些数值与当前的分钟、小时、日或星期数值相等,标志位AF(AlarmFlag)被设置,AF保存设置值直到被软件清除为止,AF被清除后,只有在时间增量与报警条件再次相匹配时才可再被设置。

报警寄存器在它们相应位AE置为逻辑1时将被忽略。

表17 分钟报警寄存器位描述(地址09H)

Bit

符号

        描       述

7

AE

AE=0,分钟报警有效;AE=1,分钟报警无效

6~0

<分钟报警>

代表BCD格式的分钟报警数值,值为00~59

 

表18 小时报警寄存器位描述(地址0AH)

Bit

符号

        描       述

7AE

AE

AE=0,小时报警有效;AE=1,小时报警无效

6~0

<小时报警>

代表BCD格式的小时报警数值,值为00~23

 

表19 日报警寄存器位描述(地址0BH)

Bit

符号

       描       述

7

AE

AE=0,日报警有效;AE=1,日报警无效。

6~0

<日报警>

代表BCD格式的日报警数值,值为00~31

 

表20 星期报警寄存器位描述(地址0CH)

Bit

符号

         描       述

7

AE

AE=0,星期报警有效;AE=1,星期报警无效

6~0

<星期报警>

代表BCD格式的星期报警数值,值为0~6

 

(6)CLKOUT频率寄存器

表21 CLKOUT频率寄存器位描述(地址0DH)

Bit

符号

          描         述

7

 

 FE

 

FE=0,CLKOUT输出被禁止并设成高阻抗

FE=1,CLKOUT输出有效

6~2

 -

无效

1

0

FD1

FD0

用于控制CLKOUT的频率输出管脚(fCLKOUT),

参见表22

 

         表22 CLKOUT频率选择表

FD1

FD0

fCLKOUT 

FD1

FD0

fCLKOUT 

 0

 0

32.768kHz

 1

 0

32Hz

 0

 1

1024Hz

 1

 1

1Hz

 

(7)倒计数定时器寄存器

定时器寄存器是一个8位字节的倒计数定时器,它由定时器控制器中位TE决定有效或无效,定时器的时钟也可以由定时器控制器选择,其它定时器功能,如中断产生,由控制/状态寄存器2控制。

为了能精确读回倒计数的数值,I2C总线时钟SCL的频率应至少为所选定定时器时钟频率的两倍。

表23 定时器控制器寄存器位描述(地址0EH)

Bit

符号

        描      述

7

TE

TE=0,定时器无效;TE=1,定时器有效

6~2

无用

1

TD1

定时器时钟频率选择位,决定倒计数定时器的时钟频率,见表24,不用时TD1和TD0应设为“11”(1/60Hz),以降低电源损耗

0

TD0

 

表24 定时器时钟频率选择

TD1

TD0

定时器时钟频率(Hz)

 0

0

    4096

 0

1

    64

 1

0

    1

 1

1

    1/60

 

表25 定时器倒计数数值寄存器位描述(地址0FH)

Bit

   符 号

     描  述

7~0

<定时器倒计数数值>

倒计数数值“n”,

倒计数周期=n/时钟频率

 

7.EXT_CLK测试模式

 测试模式用于在线测试、建立测试模式和控制RTC的操作。

  测试模式由控制/状态寄存器1的位TEST1设定,这时CLKOUT管脚成为输入管脚。

在测试模式状态下,通过CLKOUT管脚输入的频率信号代替片内的64Hz频率信号,每64个上升沿将产生1秒的时间增量。

 

  注意:

进入EXT_CLK测试模式时时钟不与片内64Hz始终时钟同步,也确定不出预分频的状态。

操作举例

(1)进入EXT_CLK测试模式;设置控制/状态寄存器1的位7(TEST=1)。

(2)设置控制/状态寄存器1的位5(STOP=1)。

(3)清除控制/状态寄存器1的位5(STOP=0)。

(4)设置时间寄存器(秒、分钟、小时、日、星期、月/世纪和年)为期望值。

(5)提供32个时钟脉冲给CLKOUT。

(6)读时间寄存器观察第一次变化。

(7)提供64个时钟脉冲给CLKOUT。

(8)读时间寄存器观察第二次变化;需要读时间寄存器的附加增量时,重复步骤(7)和(8)。

8.电源复位(POR)替换模式

POR的持续时间直接与振荡器的起动时间有关。

一种内嵌的长时间起动的电路可使POR失效,这样可使设备测试加速。

这种模式的设定要求I2C总线管脚SDA和SCL的信号波形如图3所示,图中所有的时间值为所需的最小值。

当进入替换模式时,芯片立即停止复位,操作通过I2C总线进入EXT_CLK测试模式。

设置位TESTC逻辑0可消除替换模式,再次进入替换模式只有在设置TESTC为逻辑1后进行。

在普通模式时设置TESTC为逻辑0没有意义,除非想阻止进入POR替换模式。

 

                            

图3 POR时序图

9.石英晶片频率调整

方法

(1):

定值OSCI电容――计算所需的电容平均值,用此值的定值电容,通电后在CLKOUT管脚上测出的频率应为32.768kHz,测出的频率值偏差取决于石英晶片,电容偏差和器件之间的偏差(平均为±5×10-6)。

平均偏差可达5分钟/年。

方法

(2):

OSCI微调电容――可通过调整OSCI管脚的微调电容使振荡器频率达到精确值,这时可测出通电时管脚CLKOUT上的32.768kHz信号。

方法(3):

OSCI输出—直接测量管脚OSCI的输出。

 

三、PCF8563与单片机的接口软件及功能应用举例

 

按I2C总线协议规约,PCF8563有唯一的器件地址0A2H。

如图4所示为PCF8563应用电路原理图,下面首先给出基本的接口软件,然后举例说明各种功能应用。

注:

电容C3的取值范围为1~20pF。

图4  PCF8563应用电路原理图

 

1.时钟的读取和写入

(1)    读时钟:

下面的程序将秒~年共七个字节的时间信息读出并放入MRD为首址的接

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1