微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > BQ32002 晶振不起振问题32.768khz

BQ32002 晶振不起振问题32.768khz

时间:10-02 整理:3721RD 点击:

請問一下各位大大, 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, &reg);

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, &reg);
}
if (error)
return error;

/* Check Oscillator Failure flag */
error = bq32k_read(BQ32K_MINUTES, 1, &reg);

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, &reg);
}
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. 如果要时间继续走,那么还需配置哪些寄存器,具体要写什么值进去呢?

请您帮忙回答一下好吗?谢谢您

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top