This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BQ27220:有时无法获得完全访问权限

Guru**** 2589265 points
Other Parts Discussed in Thread: BQ27220, BQSTUDIO

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/896148/bq27220-cannot-get-full-access-sometimes

器件型号:BQ27220
主题中讨论的其他器件: BQSTUDIO

大家好、

我的客户现在使用 BQ27220、他们想要校准监测计。  

首先、他们尝试根据 slubbd4第6.1节获得完全访问。执行访问获取代码后、他们等待最长1.6秒、以确保器件进入稳定的完全访问模式。 然后读取 SEC[1:0]。 但他们发现有时 SEC[1:0]等于11 (密封访问)或10 (非密封访问),而不是01 (完全访问)。 配置是否有问题?

请帮我解决这个问题、欢迎您发表任何意见。 谢谢你。

下面是访问获取代码:

-------------------- 获取访问-------------------------------------------------------------

    //step1未密封器件
    Rsh_Bq27220Write (0x00、0x14);
    Rsh_Bq27220Write (0x01、0x04);
    Rsh_Bq27220Write (0x00、0x72);
    Rsh_Bq27220Write (0x01、0x36);
    
    //step2进入完全访问
    Rsh_Bq27220Write (0x00、0xff);
    Rsh_Bq27220Write (0x01、0xff);
    Rsh_Bq27220Write (0x00、0xff);
    Rsh_Bq27220Write (0x01、0xff);
    
    //step3输入 cfg update
    Rsh_Bq27220Write (0x00、0x90);
    Rsh_Bq27220Write (0x01、0x00);

---------------- 读取访问饱和--------------------------------------------------------

    while (1)
    {
        usleep(200*1000);
        //step4 flag.cfgupdate 是否已设置
        rsh_Bq27220Read (0x3a、_val_3a);
        rsh_Bq27220Read (0x3b、_val_3b);

        DcmPrintf ("val_3a:%x、val_3b:%x\n"、val_3a、val_3b);

        if ((val_3a &(1 << 1))&(!(val_3a &(1 << 2))))
        {
            DcmPrintf ("解封成功! Val_3a =[%x] cnt =[%d]\n"、val_3a、cnt);
            中断;
        }
        其他
        {
            CNT++;
            if (cnt > 8)
            {
                DcmPrintf ("解除密封失败!\n");
                中断;
            }
        }     
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Taoran、

    我建议您使用 bqStudio 尝试相同的序列、看看他们是否可以看到相同的问题。

    Andy