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.

[参考译文] BQ27421-G1:无法解封芯片

Guru**** 2492385 points
Other Parts Discussed in Thread: EV2400

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1485437/bq27421-g1-unable-to-unseal-the-chip

器件型号:BQ27421-G1
主题中讨论的其他器件:EV2400

工具/软件:

您好!

我正在为采用 Nordic SDK 的 NRF52832控制器编写固件。 一般而言、很多工作已经完成、但也出现了一些问题。

我通过控制(读取状态和标志、复位命令、BAT_INSERT 命令等)实施并测试了命令输入。 但出于某种原因、通过控制的密封和解封命令不起作用。 我设法通过存储器访问(update_status |= 0x80)进行密封。 之后、我无法通过控制来解封该器件。 我可以提供什么来更好地描述这种情况? 我应该注意什么?

已检查解封密钥的默认值。 解封命令在两个多字节事务中发送两次(还会检查单个)。

在什么状态下执行训练循环(密封或解封)是否重要?

对于采用30mA 电池且平均电流为20 100μA 的系统、该监测器的性能如何? 我注意到单位是"mA"、没有"μA "。

此致!

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

    typedef enum
    {
    	BQ27421_REG_CONTROL					= 0x00,
    	BQ27421_REG_TEMPERATURE 			= 0x02,
    	BQ27421_REG_VOLTAGE 				= 0x04,
    	BQ27421_REG_FLAGS 					= 0x06,
    	BQ27421_REG_REMAINING_CAPACITY      = 0x0C,
    	BQ27421_REG_AVERAGE_CURRENT			= 0x10,
    	BQ27421_REG_AVERAGE_POWER			= 0x18,
    	BQ27421_REG_SOC 					= 0x1C,
    
    	BQ27421_REG_OP_CONFIG				= 0x3A,
    	BQ27421_REG_DESIGN_CAPACITY			= 0x3C,
    	BQ27421_REG_DATA_CLASS				= 0x3E,
    	BQ27421_REG_DATA_BLOCK				= 0x3F,
    
    	/**********Data Memory Access**********/
    
    	BQ27421_REG_DATA_MEMORY_DESIGN_CAPACITY_MSB = 0x4A,
    	BQ27421_REG_DATA_MEMORY_DESIGN_CAPACITY_LSB = 0x4B,
    
    	/********Data Memory Access End********/
    
    	BQ27421_REG_BLOCK_DATA_CHECK_SUM	= 0x60,
    	BQ27421_REG_BLOCK_DATA_CONTROL		= 0x61,
    
    } bq27421_reg_t;
    
    typedef enum
    {
    	BQ27421_CONTROL_STATUS 				= 0x0000,
    	BQ27421_DEVICE_TYPE					= 0x0001,
    	BQ27421_CHEM_ID						= 0x0008,
    	BQ27421_BAT_INSERT					= 0x000C,
    	BQ27421_SET_CFGUPDATE				= 0x0013,
    	BQ27421_SHUTDOWN_ENABLE 			= 0x001B,
    	BQ27421_SHUTDOWN 					= 0x001C,
    	BQ27421_SEALED						= 0x0020,
    	BQ27421_RESET						= 0x0041,
    	BQ27421_SOFT_RESET					= 0x0042,
    	BQ27421_UNSEALED_PART				= 0x8000,
    
    }bq27421_cntl_t;
    
    bq27421_status_t bq27421_write(bq27421_reg_t reg, u16 value)
    {
    
     u08 data[2] =
     {
        (value >> 0) & 0xFF,
        (value >> 8) & 0xFF
     };
    
     if (i2c_write(BQ27421_ADDR, &reg, 1, data, 2) != I2C_STATUS_OK)
     {
        NRF_LOG_ERROR("bq27421_write error");
        return BQ27421_STATUS_WRITE_ERROR;
     }
    
     time_sleep(MS(1));
     
     return BQ27421_STATUS_OK;
    }
    
    bq27421_status_t bq27421_control_write(bq27421_cntl_t sub_cmd)
    {
     if (bq27421_write(BQ27421_REG_CONTROL, sub_cmd) != 0)
     {
        return BQ27421_STATUS_WRITE_ERROR;
     }
    
     return BQ27421_STATUS_OK;
    }
    
    bq27421_status_t bq27421_unseal()
    {
        bq27421_control_write(BQ27421_UNSEALED_PART);
        return bq27421_control_write(BQ27421_UNSEALED_PART);
    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Pavlo:

    发送解封的两个字节的速度是多快? 这些必须在4s 窗口内相互发送。  

    关于 uA 电流、库仑计将能够检测到这种情况、但固件将难以看到如此低的电流。 此设计中使用的检测电阻是什么?

    此致、

    Anthony

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

    感谢您发送编修。


     按数据表的建议连续发送密钥、中间没有其他数据写入 Control()寄存器。 这是两个多字节 i2c 事务。 命令之间的暂停时间为几毫秒。 但我尝试将发送命令之间的暂停时间增加到0.1-1秒。 我附加了一个逻辑分析仪图。



    传感器电阻为7m Ω。

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

    尊敬的 Pavlo:

    感谢您分享图像、如果使用单字节方法、是否有任何区别?

    此致、

    Anthony

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

    是的、我尝试了参数更新示例表中所述的单字节方法。 我没有得到任何明显的差异,结果是一样的。

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

    尊敬的 Pavlo:

    感谢确认、我在我们的一块电路板上成功解封、从而在下面找到逻辑捕获:

    第一个命令:

    第二个命令:

    以下时间之间的延迟:

    此时的时钟频率是多少?

    此致、

    Anthony

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

     尊敬的 Anthony:  
    感谢您发送编修。
    此时 频率为100kHz。 应该减少吗?

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

    尊敬的 Pavlo:

    感谢确认、这里的100kHz 频率应该没问题。 是否可以获得发送的两条命令的更近图像以便我们进行检查?

    此外、您是否有 EV2400可用于与其他主机进行检查?

    此致、

    Anthony

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

    尊敬的 Anthony:  
    我从上图中附加了两个命令的更详细的图像。





    不幸的是,不,我现在不能与另一个主机检查.  根据上图、是否可以了解与另一台主机进行测试的相关性? 也许我能得到一些 COM-I2C。

    谢谢!

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

    尊敬的 Pavlo:

    感谢您发送更近的图像、我们的逻辑分析仪捕获结果似乎几乎相同。 我会咨询我们的团队、看看是否有遗漏。 这只是为了确认、目前在多个器件上是否可以重现?

    此致、

    Anthony

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

    尊敬的 Anthony:

    谢谢、我将等待反馈。 是的、目前在多个 A 版本器件和至少一个 B 版本器件上可重现此问题。

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

    尊敬的 Pavlo:

    还有几个问题:

    此时的上拉电阻值是多少?

    此时尝试解封的电芯电压是多少?

    是否通过延长过去的1s 来尝试了命令之间的延迟?

    此致、

    Anthony

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

    你好 Anthony! 很抱歉回复延迟。

    上拉电阻的值为10k Ω。
    电池电压从3.5到4.35 (B 版)、整个工作范围均已完成。
    是的、我尝试实现了1秒的延迟

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

    尊敬的 Pavlo:

    感谢您确认、这些值不应导致问题。 如果重新刷写固件并再次发送密钥、这里是否有任何区别?

    此致、

    Anthony

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

    嗨、 Anthony。
    没有、没有发现差异。 如果我设法通过访问 RAM 来密封芯片(更新状态|= 0x80)、则从不执行解封。 仅关闭电源会有所帮助。

    我还将澄清小电池容量(30mah)是否会导致问题? 内置敏感电阻- 7m Ω。

    谢谢!

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

    尊敬的 Pavlo:

    如果设备能够读取和写入(密封之前)、我认为小电池容量不应该有问题。 如果连接到示波器、是否满足以下规格要求?

    此致、

    Anthony

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

    尊敬的 Anthony:
    是的、我能够使用示波器连接、但在时钟线路的上升沿以及时钟线路低电平和高电平的持续时间方面遇到了一些问题。 我将时钟频率降低至50kHz、并将上拉电阻器的电阻用于测试。 不幸的是,这没有帮助。 我仍然可以通过存储器访问来密封芯片、但无法使用 KEY 命令来解封芯片。
    谢谢!

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

    尊敬的 Pavlo:

    在这段时间内、是否也会将所有命令发送到接收 ACK 的电量监测计?

    此致、

    Anthony

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

    尊敬的 Pavlo:

    在这段时间内、是否也会将所有命令发送到接收 ACK 的电量监测计?

    此致、

    Anthony

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

    尊敬的 Anthony:
    是、所有命令都发送到电量监测计并接收 ACK。

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

    尊敬的 Pavlo:

    感谢确认、这很奇怪、因为电量监测计会确认要发送的每个命令。 您之前说过有多个单元正在发生这种情况、但是您的端部是否有此功能正常工作的单元? 如果是、设置或配置是否有任何明显差异?

    此致、

    Anthony

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

    尊敬的 Anthony:

    共有三个器件具有芯片版本 A 和 B。预计不久还会再有五个器件。 这些器件都无法解封。 尽管我在协议中没有收到任何错误(例如 ACK)。 ​​通过写入后立即读取来专门控制某些值。

    也会出现其他问题(例如、与完成充电和学习周期的主要条件有关)、但这将是另一个讨论的主题、我尚未编写任何内容。

    此外、在我看来、如此小的电池容量仍然会导致充电状态算法或我的应用出现问题。 电池监测芯片有时会给出非常奇怪的不稳定状态充电。 如果您将电池加载到一个 LED 然后释放它,电压将被恢复,并且百分比可以在一个方向或另一个几十个单位的变化。

    谢谢!

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

    尊敬的 Pavlo:

    明白了、感谢您的澄清。 我们也可以查看原理图、看看此时是否有任何突出显示的内容。 请告知我们新芯片的结果。

    此致、

    Anthony

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

    你好 Anthony!

    这个方案是否足够? srx_bat 触点也会接受充电。 电池和电量监测计之间有一个 GLF73910-BD01保护芯片、但现在已分流。


    一旦有新设备的消息,我会写是否有变化.

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

    尊敬的 Pavlo:

    感谢您发送此图像、我看不到通信线路的设置有任何问题。 主机和测量仪表之间这些线路上是否有任何元件中间、或者仅存在上拉电阻器?

    此致、

    Anthony

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

    尊敬的 Anthony:

    没有任何内容、只是上拉电阻器。

    谢谢!

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

    尊敬的 Pavlo:

    感谢您确认、他们的任何奇怪之处是否未显示在使用 I2C 线路的电路板上? 主机和设备之间的路由可能非常长?

    此致、

    Anthony