请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:BQ27426 尊敬的 TI 支持成员。
以下 URL 中的源文件是否确实适用于 bq27426?
http://www.ti.com/tool/bq27426sw-linux
http://www.ti.com/tool/bq27426sw-linux
如果是、请确认以下问题。
(1)在更新 CHEMID 之前和之后、将读取器件中设置的 CHEMID。
但是、如果不转换下面的蓝色部分、则可能无法正确识别 CHEMID。
――――――――――――――――――――μ A
静态 int fG_change_chem_id (struct bq_fG_chip *bq、U16 new_id)
{
内转台;
U16 OLD_ID;
int i;
RET = FG_WRITE_WORD (bq、bq->regs[BQ_FG_REG_CTRL]、FG_SUBCMD_CHEM_ID);
如果(ret < 0){
PR_ERR ("无法写入 chemid subcmd、ret =%d\n"、ret);
回程;
}
mleep (5);
RET = FG_READ_WORD (bq、bq->regs[BQ_FG_REG_CTRL]、&OLD_ID);
如果(ret < 0){
PR_ERR ("读取控制状态失败、ret =%d\n"、ret);
回程;
}
old_id_dec =((old_id & 0xf000)>> 12)*1000 +(old_id & 0x0f00)>> 8)*100 \
+((old_id 和0x00f0)>> 4)*10 +(old_id 和0x000f);
如果(new_id == old_id){
PR_INFO ("新化物与旧化物相同、跳过更改\n");
返回0;
}
――――――――――――――――――――μ A
但是、如果不转换下面的蓝色部分、则可能无法正确识别 CHEMID。
――――――――――――――――――――μ A
静态 int fG_change_chem_id (struct bq_fG_chip *bq、U16 new_id)
{
内转台;
U16 OLD_ID;
int i;
RET = FG_WRITE_WORD (bq、bq->regs[BQ_FG_REG_CTRL]、FG_SUBCMD_CHEM_ID);
如果(ret < 0){
PR_ERR ("无法写入 chemid subcmd、ret =%d\n"、ret);
回程;
}
mleep (5);
RET = FG_READ_WORD (bq、bq->regs[BQ_FG_REG_CTRL]、&OLD_ID);
如果(ret < 0){
PR_ERR ("读取控制状态失败、ret =%d\n"、ret);
回程;
}
old_id_dec =((old_id & 0xf000)>> 12)*1000 +(old_id & 0x0f00)>> 8)*100 \
+((old_id 和0x00f0)>> 4)*10 +(old_id 和0x000f);
如果(new_id == old_id){
PR_INFO ("新化物与旧化物相同、跳过更改\n");
返回0;
}
――――――――――――――――――――μ A
(二)有些地方的等候时间似乎异常长。
例如、下面的蓝色部分将等待长达200秒。
您真的需要等待这么长时间吗?
――――――――――――――――――――μ A
静态 int fG_seal (struct bq_fG_chip * bq)
{
内转台;
int retry = 0;
FG_GET_SEART_ST态(bq);
if (bq->seal_state == sealing_state_sealed)
返回0;
mleep (5);
RET = FG_WRITE_WORD (bq、bq->regs[BQ_FG_REG_CTRL]、FG_SUBCMD_SEAL);
如果(ret < 0){
PR_ERR ("发送密封命令失败\n");
回程;
}
while (retry++< 1000){
FG_GET_SEART_ST态(bq);
if (bq->seal_state == sealing_state_sealed)
返回0;
mbleep (200);
}
返回-1;
}
――――――――――――――――――――μ A
例如、下面的蓝色部分将等待长达200秒。
您真的需要等待这么长时间吗?
――――――――――――――――――――μ A
静态 int fG_seal (struct bq_fG_chip * bq)
{
内转台;
int retry = 0;
FG_GET_SEART_ST态(bq);
if (bq->seal_state == sealing_state_sealed)
返回0;
mleep (5);
RET = FG_WRITE_WORD (bq、bq->regs[BQ_FG_REG_CTRL]、FG_SUBCMD_SEAL);
如果(ret < 0){
PR_ERR ("发送密封命令失败\n");
回程;
}
while (retry++< 1000){
FG_GET_SEART_ST态(bq);
if (bq->seal_state == sealing_state_sealed)
返回0;
mbleep (200);
}
返回-1;
}
――――――――――――――――――――μ A
此致、
Chiaki Endo
Chiaki Endo