BQ32002 晶振不起振问题32.768khz
請問一下各位大大, BQ32002的晶振没起来 ,是不是因为我没配置好所以他才没起振呢?那么BQ32002的驱动在哪里可以找到呢?
http://www.ti.com.cn/product/cn/BQ32000/toolssoftware
可以在此链接下载驱动程序
非常非常感谢您呢!已经下载完毕,并且集成进代码,以下是我的初始化代码:
int bq32k_probe( void )
{
uint8_t reg;
int error;
struct rtc_time tm;
i2cUtilsInitParams_t i2cUtilsParams = I2CUTILSINITPARAMS_DEFAULT;
I2CUtilsInit(RTC_I2C_INST, &i2cUtilsParams);
CONSOLEUtilsPrintf("bq32k_probe...\n");
/* Check Oscillator Stop flag */
error = bq32k_read(BQ32K_SECONDS, 1, ®);
CONSOLEUtilsPrintf("BQ32K_SECONDS = 0x%X. error = %d\n" , reg, error);
if (!error && (reg & BQ32K_STOP)) {
CONSOLEUtilsPrintf("Oscillator was halted. Restarting...\n");
reg &= ~BQ32K_STOP;
error = bq32k_write(BQ32K_SECONDS, 1, ®);
}
if (error)
return error;
/* Check Oscillator Failure flag */
error = bq32k_read(BQ32K_MINUTES, 1, ®);
CONSOLEUtilsPrintf("BQ32K_MINUTES = 0x%X. error = %d\n" , reg, error);
if (!error && (reg & BQ32K_OF)) {
CONSOLEUtilsPrintf("Oscillator Failure. Check RTC battery.\n");
reg &= ~BQ32K_OF;
error = bq32k_write(BQ32K_MINUTES, 1, ®);
}
if (error)
return error;
/* Important
timearrw[0]=0x5e;
timearrw[1]=0xc7;
timearrw[2]=0x01;
bq32k_write(0x20, 3, timearrw);*/
return 0;
}
现在的问题是,晶振可以了,但是:
1. 为什么下电之后时间还是会回到之前的值呢,是0H:30M:24S。而且您看我配置函数里面,我都没有配置过。这是什么原因?
2. 如果要时间继续走,那么还需配置哪些寄存器,具体要写什么值进去呢?
请您帮忙回答一下好吗?谢谢您