TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP432P401R RTC时钟偏差较大

目前通过MSP432P401R的RTC时钟,作为系统时间,通过测试发现RTC时钟24小时慢在6分钟以上;

系统时钟采用内部DCO时钟:

FlashCtl_setWaitState( FLASH_BANK0, 2 );
FlashCtl_setWaitState( FLASH_BANK1, 2 );
CS_setDCOCenteredFrequency( CS_DCO_FREQUENCY_48 );
CS_initClockSignal( CS_HSMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
CS_initClockSignal( CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_4 );
CS_initClockSignal( CS_MCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
CS_initClockSignal( CS_ACLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1 );
CS_initClockSignal( CS_BCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1 );

RTC初始化:

 MAP_RTC_C_initCalendar(&RtcData, RTC_C_FORMAT_BINARY);

/* Specify an interrupt to assert every minute */
MAP_RTC_C_setCalendarEvent(RTC_C_CALENDAREVENT_MINUTECHANGE);

MAP_RTC_C_clearInterruptFlag( RTC_C_TIME_EVENT_INTERRUPT );
MAP_RTC_C_enableInterrupt( RTC_C_TIME_EVENT_INTERRUPT);
/* Start RTC Clock */
MAP_RTC_C_startClock();

/* Enable interrupts and go to sleep. */
MAP_Interrupt_enableInterrupt(INT_RTC_C);
RtcData=MAP_RTC_C_getCalendarTime();//RTC时钟初始化

RTC时钟读取:

void RTC_C_IRQHandler(void)
{
uint32_t status;
static bool TempbasalModeState=false;//临时基础率运行状态
status = MAP_RTC_C_getEnabledInterruptStatus();
MAP_RTC_C_clearInterruptFlag(status);

if (status & RTC_C_CLOCK_READ_READY_INTERRUPT)
{
//MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0);
}

if (status & RTC_C_TIME_EVENT_INTERRUPT)//分中断
{
/* Interrupts every minute – Set breakpoint here */
asm("nop");//__no_operation();
RtcData = MAP_RTC_C_getCalendarTime();

}

}

系统主要工作在LPM3;

 

Susan Yang:

您现在是否有使用外部晶振?自制的板子?

内部 DCO 具有 +/-3% 的容差,不过可使用一个高精度外部电阻器将 DCO 容差改善至 +/-0.6%。

精确的 RTC 时钟一般是LFXT ,通过外接低频晶体实现的低频时钟,此类晶体为典型 32KHz 晶体。

Susan Yang:

具体关于DCO,您可以查看 www.ti.com/…/slaa658a.pdf

user4974765:

回复 Susan Yang:

由于需要长时间工作在LPM3模式,RTC采用内部时钟,时钟源是REFO频率32.768K
CS_initClockSignal( CS_BCLK, CS_REFOCLK_SELECT, CS_CLOCK_DIVIDER_1 );

时钟源是REFO,应该不能使用一个高精度外部电阻器将 DCO 容差吧?

灰小子:

回复 user4974765:

可以通过外部高精度外部电阻器改善DCO容差的,看看3楼那个链接的文件吧。

user4974765:

回复 灰小子:

RTC时钟源不是DCO,是REFOCLK,和DCO的精度没有关系

灰小子:

回复 user4974765:

REFO本身误差就比较大,不换时钟源的话没有太好的办法。

赞(0)
未经允许不得转载:TI中文支持网 » MSP432P401R RTC时钟偏差较大
分享到: 更多 (0)