LPC213x内部RTC供电的问题
时间:08-30
来源:互联网
点击:
大家问题的焦点是:LPC213x内部RTC在CPU处于掉电模式或者芯片未上电时,使用后备电池和外部晶振能否正常工作。此文不讨论如何为备用电池充电的问题,这属于外围电路设计。
//时钟初始化函数
void RTC_Ini(void)
{
//PREINT = Fpclk / 32768 - 1;// 使用内部时钟,设置基准时钟分频器
//PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
YEAR = 2004;// 初化年
MONTH = 11;// 初化月
DOM = 1;// 初化日
CIIR = 0x01;// 设置秒值的增量产生一次中断
ILR= 0x03;
CCR= 0x11;// 启动RTC,使用独立时钟源
VICIntSelect = 0x00;
VICVectCntl3 = 0x20 | 13;
VICVectAddr3 = (int)RTC_Int;
VICIntEnable |= (1 13);
}
这个RTC初始化函数摘自一个使用LPC213x内部RTC作日历时钟的例子。
在初始化代码中,只设置了年月日寄存器,没有设置时分秒寄存器,这样在芯片上电时如果RTC正常工作的话那么其时分秒是正确的,而年月日会恢复到初始值。
实际测试结果是,设置好当前年月日、时分秒,然后拔除开发板电源后,再上电时,时钟的年月日恢复到初始值,时分秒走时正确。无论断电时间长短,测试结果相同。
也就是说,芯片掉电后内部RTC使用外部电源和晶振依然可以工作,而且芯片复位并不会影响RTC的工作。
内部RTC使用外部电源供电时需要注意:
=============选择外部晶体振荡器为RTC时钟源=============
如果要使用内部RTC,那么Vbat引脚必须有电源供电。如果不使用内部RTC,那么将该引脚接地。
//时钟初始化函数
void RTC_Ini(void)
{
//PREINT = Fpclk / 32768 - 1;// 使用内部时钟,设置基准时钟分频器
//PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
YEAR = 2004;// 初化年
MONTH = 11;// 初化月
DOM = 1;// 初化日
CIIR = 0x01;// 设置秒值的增量产生一次中断
ILR= 0x03;
CCR= 0x11;// 启动RTC,使用独立时钟源
VICIntSelect = 0x00;
VICVectCntl3 = 0x20 | 13;
VICVectAddr3 = (int)RTC_Int;
VICIntEnable |= (1 13);
}
这个RTC初始化函数摘自一个使用LPC213x内部RTC作日历时钟的例子。
在初始化代码中,只设置了年月日寄存器,没有设置时分秒寄存器,这样在芯片上电时如果RTC正常工作的话那么其时分秒是正确的,而年月日会恢复到初始值。
实际测试结果是,设置好当前年月日、时分秒,然后拔除开发板电源后,再上电时,时钟的年月日恢复到初始值,时分秒走时正确。无论断电时间长短,测试结果相同。
也就是说,芯片掉电后内部RTC使用外部电源和晶振依然可以工作,而且芯片复位并不会影响RTC的工作。
内部RTC使用外部电源供电时需要注意:
=============选择外部晶体振荡器为RTC时钟源=============
如果要使用内部RTC,那么Vbat引脚必须有电源供电。如果不使用内部RTC,那么将该引脚接地。
- 使用EasyARM2131时遇到的一些问题(12-02)
- 基于STM32内部RTC的时钟程序(11-29)
- STM32L151内部RTC时钟(11-13)
- SHARC 2147x系列处理器:具有低功耗,浮点处理精度,适用于便携式和电池供电的系统(03-28)
- 设计超低功耗的嵌入式应用(09-10)
- Profibus-DP技术在地铁供电监控系统中应用(12-21)