4. SPI 与 I2C 转换模块电路
PCF2128 芯片上 SPI 总线引脚与 I2C 总线引脚是复用的,SPI/I2C 接口选择电路如图 8 所示。使用了跳线器 JP1 来选择 SPI 接口或 I2C 接口。
PCF2128 芯片的 SPI 以及 I2C 只能设置为从模式。并且根据器件手册规定,SPI 接口只能设置为模式 CPHA = 0,CPOL = 0[1]。
[1] 当 CPHA 为 1 时,数据在时钟前沿输出,在时钟后沿采样;当 CPHA 为 0 时,数据在时钟后沿输出,在时钟前沿采样。当 CPOL 为 1 时,SCK 为低时有效;当 CPOL 为 0 时,SCK 为高时有效。
由图 8 可知,PCF2128 的总线接口连接到 JP1 的 B1-B3 端,与 B1-B3 端连接的分别是:SCL/SCK 引脚、SDA/CE 引脚、IFS/GND 引脚。
I2C 总线模式选择
在选择 I2C 总线时,需要短接的引脚如图 9 所示。SCL/SCK 引脚与 SCL 引脚,短路 B1-A1;连接 SDA/CE 引脚与 SDA 引脚,短路 B2-A2;连接 IFS/GND 引脚与 VOUT 引脚,短路 B3-A3。
SPI 总线模式选择
在选择 SPI 总线时,需要短接的引脚如图 10 所示。连接 SCL/SCK 引脚与 SCK 引脚,短路 B1-C1;连接 SDA/CE 引脚与 CE 引脚,短路 B2-C2;连接 IFS/GND 引脚与 DGND 引脚,短路 B3-C3。
5. Timestamp 电路
PCF2128 有一个低电平有效的 Timestamp(时戳)输入管脚 TS,内接 200kΩ 的片内上拉电阻。PCF2128 的时戳部件具有检测两种不同触发事件的电路,如图 11 所示。
触发事件 1:管脚 TS 输入信号是电源和地之间的一个中间电平。短路 B4-A4,当按键 S1 按下时产生触发事件 1;
触发事件 2:管脚 TS 输入为地。短路 B4-C4,当按键 S2 按下时产生触发事件 2。
在 Timestamp 引脚的输入端并联 0.1μF 电容,作用是去除按键抖动。
6. 后备电源转换电路
PCF2128 具有 3 个电源引脚,分别是:
VDD -主电源输入管脚;
VBAT -电池备用电源输入管脚;
VOUT -电池供电电压输出管脚,电池供电的 输出电压等于内部工作电压。
PCF2128 的后备电源转换电路如图 12 所示。该电路用于监控主电源 VDD,当内部电源转换电路检测到电源电压发生故障时,将自动切换到后备电源模式,由 VBAT 端电源供电,以保证即使在主电源断电情况下,RTC 仍然能够精确的计时。
电源切换具有两种模式:
1) 标准模式:当 VDD<VBAT 且 VDD<VBMT(VBMT = 2.5V,后备电源模式的极限电压值)时,切换到后备电源工作;
2) 直接切换模式:当 VDD<VBAT 时,直接从 VDD 切换为 VBAT,而不要求 VDD 降至低于 VBMT。
电池转换功能由控制 3 寄存器(地址 0x02H)的两个控制位 BSOFF(电池转换关断)和 BSM/EPFD(电池转换模式)控制,如表 3 所列。
表 3 电池转换功能控制位
BSOFF BSM/EPFDOFF 功能
0 0 电池转换功能在标准模式下使能
0 1 电池转换功能在直接切换模式下使能
1 x 电池转换功能被禁能(默认)
7. 后备电源电路
PCF2128 后备电源端电路如图 13 所示。在 VBAT 输入端、VOUT 输出端并联 0.1μF 电容,起到滤波的作用。VOUT 输出电压可以作为电池备用设备(如 SRAM)的电源。
VOUT 电压值大小等于供给芯片工作的内部电压,控制 3 寄存器(0x02H)中的两个控制位 BSOFF 和 BSM/EPDFPOFF 控制该电压,如表 4 所列。
表 4 输出管脚 VOUT
BSOFF BSM/EPFDOFF 条件 VOUT
0 0 VDD>VBAT 或 VDD>VBMT
VDD
VDD<VBAT 且 VDD<VBMT
VBAT
0 1 VDD>VBAT VDD
VDD<VBAT VBAT
1 x VDD>VBAT VDD
VDD<VBAT VBAT
8. 电池低压检测电路
在备用电池提供系统电压时,低电池将不能确保数据的完整性,因此,在电池操作期间需要监测电池电压的情况。PCF2128 具有电池低压检测电路,该电路监控电池 VBAT 的状态,当 VBAT 降至低于 2.5V 的阈值时,PCF2128 通过设置一个标志来表示电池低且必须被替换。
电池低检测功能通过控制 3 寄存器(0x02H)中的两个控制位 BSOFF(电池关断)和 BLDOFF(电池低检测关断)来控制,如表 5 所列。
表 5 电池低检测功能控制位
BSOFF BLDOFF 功能
0 0 电池低检测功能被使能
0 1 电池低检测功能被禁能
1 x 电池低检测功能被禁能(默认)[1][2]
[1] 在默认条件下,从复位中退出后的值为:BSOFF =‘1’且 BLDOFF=‘1’。
[2] 如果电池转换功能被禁能,则电池低检测功能不能被使能。
当 VBAT 降至低于 2.5V 的阈值时,出现下列的情况:
1) 电池低标志 BLF(控制寄存器 3)被设为 ‘1’;
2) 如果控制位 BLIE(控制寄存器 3)使能,则产生中断;
3) BLF 保持设为‘1’直至安装了可替换的电池。BLF 不能使用总线清除。
电池低压操作时各电压关系如图 14 所示。
9. 外电源检测电路
PCF2128 具有外电源故障检测电路,如图 15 所示。该电路将电源故障输入引脚 PFI 的电压与 1.25V 的内部参考电压相比较,如果 VPFI<1.25V,则 PFO 输出低电平。PFO 引脚是开漏输出,低电平有效,需要外接上拉电阻。
外电源故障检测功能通常用作对主电源 VDD 的低电压检测,需要设置 R5 和 R10 电阻值,使得当 VDD 降至低于器件所需的电源故障电压 VPF 时,PFI 的电压低于 1.25V。
VPF 的值设置,要保证在 VDD 电压降到低于系统的最小操作电压之前,有几毫秒的时间允许微控制器转换到后备电源模式工作。
10. 温度补偿原理
音叉型石英晶体具有平方律温度特性(temperature dependency),在 PCF2128 中,由温度特性造成的频率偏差可以通过调整晶体振荡器的负载电容来校正。在不同的温度下,芯片的频率偏差可以得到相应得校准,由此得到的精度如图 16 所示。
PCF2128 具有一个温度传感电路,用来实现频率的温度补偿,温度在上电后立即测量,然后在温度转换率位 TCR[1:0] 设置的周期内进行循环测量。测量周期如表 6 所列。
表 6 温度测量周期
TCR[1] TCR[0] 温度测量周期
0 0 4分(默认)
0 1 2分
1 0 1分
1 1 30秒
11. 晶振老化校正
PCF2128 具有一个老化补偿寄存器(地址 0x19H)来校正晶体的老化效应。石英频率的精度由老化情况来决定,晶体供应商规定第1年的老化通常为±3ppm,老化补偿寄存器增加一个正或负的补偿量,在温度补偿电路中实现晶体的老化校正。
老化补偿位 AO[3:0] 允许频率校正范围从大约-12ppm 到 10.5ppm,通常以 1.5ppm 为单位。默认下 AO[3:0]=1000dec,对应于 0ppm 的频率校正。
注意:每个 LSB 的 ppm 随着石英和温度(+25℃ 下对应的单位量是 1.5ppm)的不同而改变。
六、 PCF2128 在电表中的应用
电表主要存在两类产品:电子式电表和感应式电表。目前,国内电表市场中,电子式电表的市场份额已经超过了 80%,而且比例还在上升,相比之下,感应式电表的市场份额正在逐年递减。
在电子式电表中,最重要的一个模块就是实时时钟(RTC),电表工作环境的变化非常大,在恶劣的环境中要保持时钟的精度不是一件容易的事,精度的高低和时钟芯片晶振的稳定性有着直接的关系,环境温度、湿度都会影响晶振的频率。为了解决温度对时间的影响,很多电子式电表都采用温度传感器(如 LM75)用来测量环境温度,从而进行温度补偿,如图 17 所示。
采用 LM75 用来对温度进行补偿,显然增加了系统的复杂度,而且稳定性又无法保证。PCF2128 成功的解决了这个问题,具有温度补偿并集成高精度的实时时钟,采用 PCF2128 后的系统框图如图 18 所示。
七、结束语
目前,随着系统工作环境复杂度的增加,对 RTC 的要求也会越发提高。传统的 RTC 芯片大多采用外置晶振的方法,那么在环境温度、湿度变化时,晶振的精度便不可避免的受到影响,进而影响 RTC 的精度。PCF2128 内部集成温度补偿晶体振荡器(TCXO)和 32.768kHz 石英晶振,大大提高了 RTC 的精度和可靠性。