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

BQ32002 晶振不起振问题32.768khz

請問一下各位大大, BQ32002的晶振没起来 ,是不是因为我没配置好所以他才没起振呢?那么BQ32002的驱动在哪里可以找到呢?

answer:

http://www.ti.com.cn/product/cn/BQ32000/toolssoftware

可以在此链接下载驱动程序

Ying Chen59:

回复 answer:

非常非常感谢您呢!已经下载完毕,并且集成进代码,以下是我的初始化代码:

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

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

赞(0)
未经允许不得转载:TI中文支持网 » BQ32002 晶振不起振问题32.768khz
分享到: 更多 (0)