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.

[参考译文] BQ76940:BQ76940006DBTR

Guru**** 2555630 points
Other Parts Discussed in Thread: BQ76940

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/760308/bq76940-bq76940006dbtr

器件型号:BQ76940

你(们)好。 我基于 TI BQ76940参考设计了一个 PCB。 Altium Designer 工程已附加。

您可以看到、我正在尝试使用 stm32f103 微控制器来托管该芯片。 由于我找不到任何与 MCU 和 IDE (Keil V5)兼容的库、我尝试通过 SparkFun 重写 Arduino 库。 我成功地通过 I2C 连接到芯片并读取 SYS_STAT 寄存器。 您应该知道的另一件事是、我对我的设计不是很确定、所以我不想使用真正的 LFP 电池组测试电路板、因为它们昂贵且危险! 因此、我使用了15 75欧姆的串联电阻器连接到27V 电源、我计划更改 OV 和 UV 阈值以匹配我的"电池仿真器"、然后测试电路板和程序。 我遇到的问题是 DEVICE_XREADY 情况! 无论我做什么、只要芯片启动、我就会得到0x20、并且我无法复位该位。 数据表显示 DEVICE_XREADY 是由于 电路中的瞬变过大而发生的、我 看不到任何原因导致这种情况、因此我只能想到三个方面:

1:代码未正确写入以写入寄存器(我使用了 HAL 库标准函数、我必须使用地址0x30而不是0x18来连接到芯片、我也附加了代码)我所做的是:

while (1)

RegisterAddress[0]= bq796x0_SYS_STAT;
接收包[0]= 0xDF;//此格式的一些随机数 xx0x-xxxx
HAL_I2C_Master_Transmit (&hi2c2、bqI2CAddress、RegisterAddress、sizeof (RegisterAddress)、MAX_I2C_TIME); //bqI2CAddress = 0x030 (="0x18")
HAL_I2C_Master_Receive (&hi2c2、bqI2CAddress、接收包、1、MAX_I2C_TIME); //MAX_I2C_TIME = 10
HAL_UART_transmit (&hart2、recevedPack、1、10);//此处当 我使用引导开关启动芯片时、我接收到0x20
if (receevedPack[0]& bq796x0_DEVICE_XREADY)//bq796x0_DEVICE_XREADY = 1 << 5

HAL_DELAY (1000);//等待一秒钟、然后尝试重写 SYS_STAT 寄存器
接收包[0]&&~(bq796x0_DEVICE_XREADY);//在 DEVICE_XREADY 位中写入0:xx0x-xxxx
HAL_I2C_Master_transmit (&hi2c2、bqI2CAddress、RegisterAddress、1、MAX_I2C_TIME);
HAL_I2C_Master_transmit (&hi2c2、bqI2CAddress、接收包、1、MAX_I2C_TIME);

//在这里,我尝试使用“不重复启动的写操作”模式,但我没有任何结果


//receevedPack[1]|= bq796x0_device_XREADY;
// recevedPack[1]&&~(bq796x0_device_XREADY);
//接收包[0]= bq796x0_SYS_STAT;
// HAL_I2C_Master_transmit (&hi2c2、bqI2CAddress、接收包、sizeof (接收包)、MAX_I2C_TIME);

HAL_DELAY (200);

2.串联的电阻器对电池组的仿真不够好。  

3.芯片损坏了、应该换一个新芯片。 (实际上、由于 LDO 电压为3.8、这可能是可行的! 我是否可以确定它?)

如果您想了解有关如何操作或如何查找错误来源的任何提示、我们将不胜感激。  

谢谢、  

此致、  

Arash.e2e.ti.com/.../BQ76940.rar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的问题将在工作日在这里得到解答。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Arash、
    75欧姆电阻器在分压器仿真电池时应该很好、但会变得很热。 对于15节电池、27V 电压仅为每节电池1.8V。 该器件仍应唤醒并运行、但请注意、它低于每节电池建议的工作电压。
    XREADY 可能是由正常运行期间中断通信的噪声引起的、但是引导时的 XREADY 通常表示器件没有完全启动。 检查电源引脚 VSS、VC5X (这2个可能正常、因为您可以进行通信)、VC10X 和 BAT 的电源应用。
    尝试启动后、CAP1、CAP2和 CAP3的电容器上应该有3.3V 电压(这可能是正常的、因为您可以进行通信)。 如果缺少一个、这将解释永久 XREADY。
    XREADY 也可能由 TS2或 TS3引脚上的残余电压引起。 确保它们通过热敏电阻或类似的下拉电阻下拉至本地组基准。

    1.要清零 XREADY 或其他状态寄存器位、向该位写1。 请参阅表7-3下的 bq76940数据表注释。 SYS_STAT (0x00)。 同样、如果电源不正确、则无法清除。
    2.电阻器应该正常。 100至1000欧姆的仿真电阻器很常见、电阻越低越好、但它们确实会产生大量热量。
    3.8V 高于3.6V 绝对最大值、此部件可能会损坏。 它可能会继续工作、但您应该在信任它的性能之前更换它。 您应该找到导致高电压的原因。 如果您的 MCU 在 SCL 和 SDA 上有上拉电阻器、电压为5V、则5V 电源将上拉 REGOUT 电压。 由于 SCL 和 SDA 的绝对最大值为3.6V、如果合适、请使用 REGOUT 上拉电阻或根据需要使用电平位移电路。 检查系统设计是否存在可能导致类似情况的其他类似情况。 您的设计可能没有5V 电源、在这种情况下、请检查是否存在其他泄漏路径或 REGSRC 的电压过高。