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.

[参考译文] Linux/BQ27545-G1:使用 HDQ 无法进入非密封模式

Guru**** 2367580 points
Other Parts Discussed in Thread: BQ27545-G1, BQ27000
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/596544/linux-bq27545-g1-unable-to-enter-into-unsealed-mode-using-hdq

器件型号:BQ27545-G1
主题中讨论的其他器件: bq27000bq27541-G1

工具/软件:Linux

您好!

我们使用 HDQ 与 BQ27545-G1进行通信。 对于要求、我必须通过驱动程序代码进入从密封模式到非密封模式。

我尝试了以下代码来执行同样的操作:

W1_bq27000_WRITE (DEV、0x00、BQ27545_CONTRAL_HI);

/*读取状态以检查电池是否密封*/
读取= bq27x00_read (di、BQ27545_CONTRAL_HI、false);
printk ("%s":BQ27545_CONTRAL_HI 0x%x\n"、__func__、读取);

/*解开电池的密封通道*/
if (读取和 BQ27545_CONTRAL_STATUS_SS){
     printk ("1. 解除电池密封\n");
     W1_bq27000_WRITE (DEV、0x04、BQ27545_CONTRAL_LO);
     W1_bq27000_WRITE (DEV、0x14、BQ27545_CONTRAL_HI);
     W1_bq27000_WRITE (dev、0x36、BQ27545_CONTRAL_LO);
     W1_bq27000_WRITE (DEV、0x72、BQ27545_CONTRAL_HI);
 }


 /*写入要访问的寄存器*/
 W1_bq27000_WRITE (DEV、0x00、BQ27545_CONTRAL_HI);
 /*读取状态以检查其他标志*/
 读取= bq27x00_read (di、BQ27545_CONTRAL_HI、false);

但该代码仍将状态显示为密封。 我尝试了不同的组合、将代码发送到电池电量监测计。 但它始终显示为密封状态。

请帮助我了解打开蓄电池盖的正确方法。

谢谢、

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

    大家好、Abdul、欢迎参加论坛!

    假设您正在处理的 bq27541-G1仍使用默认的 unseal 密钥、则看起来您的高字节和低字节会交换-因此监测计不接受该密钥的原因(您基本上发送0x7236404)。 代码应更像以下内容(请注意字节的发送顺序):

    /*解除对电池的密封访问*/
    if (读取和 BQ27545_CONTRAL_STATUS_SS){
    printk ("1. 解除电池密封\n");
    W1_bq27000_WRITE (DEV、0x14、BQ27545_CONTRAL_LO);
    W1_bq27000_WRITE (DEV、0x04、BQ27545_CONTRAL_HI);
    W1_bq27000_WRITE (DEV、0x72、BQ27545_CONTRAL_LO);
    W1_bq27000_WRITE (dev、0x36、BQ27545_CONTRAL_HI);
    } 

    此外,您似乎只在 Control()子命令所需的两个字节中发送一个字节。 对于 CONTRAL_STATUS 命令,将0x00发送到 Control()的低字节和高字节:

    W1_bq27000_WRITE (dev、0x00、BQ27545_CONTRAL_LO);
    W1_bq27000_WRITE (dev、0x00、 BQ27545_CONTRAL_HI); 

    尝试对代码进行这些更改。 允许驾驶员在系统内解开仪表的密封应该足够了(当然、如果钥匙被更换、硬编码的默认钥匙将不再工作)。 我没有任何 Linux 的编码经验、但我通过 HDQ 通过修改后的 PC 串行端口成功地与监测计通信。

    希望这对您有所帮助!

    此致、
    Jason