Thread 中讨论的其他器件:BQ40Z50
工具与软件:
问题摘要:
我使用的是 BQ40Z50 相同 3S3P 12V 电池组 制造 Samsung INR18650MJ1 电压。 尽管连接正确、但总有一个 输出端无电压 .
观察和调试尝试:
- SMBus 通信: 成功读取 单节电池电压、总电池电压和容量 .
- FET 控制: 在尝试启用 FET 时、我收到 A 回调错误 .
- 错误: 。 永久性故障(PF)标志 。
硬件配置:
- 保险丝(引脚25): 直接连接到 VSS
- PTC (引脚23): 直接连接到 VSS
- PTCEN (引脚24): 直接连接到 VSS
- BTP (引脚15): 直接连接到 VSS
- TS1 (引脚10): 已直接尝试使用 VSS 和 10kΩ 电阻至 GND
- TS2、TS3、TS4 (引脚11、12、13): 全部直接连接到 VSS
- PRES (引脚16):
- 尝试过 VSS
- 尝试过 通过 MCU 将其拉低
- 尝试过 拉高
错误代码检查(SMBus 通信代码):
我使用以下函数来检查中是否存在错误 BQ40Z50 :
void CheckBQ40Z50Errors (void){
uint16_t manufacturingStatus = ReadBatteryData (0x56);
uint16_t batteryStatus = ReadBatteryData (0x16);
uint16_t SafetyStatus = ReadBatteryData (0x51);
uint16_t operationStatus = ReadBatteryData (0x54);
uint16_t chargingStatus = ReadBatteryData (0x55);
uint16_t pfStatus = ReadBatteryData (0x53);// Permanent Failure Status
sprintf (uart_Buffer、"制造状态:0x%04X\r\n"、manufacturingStatus);
UART9_SendData (UART_BUFFER);
sprintf (uart_buffer、"Battery Status:0x%04X\r\n"、batteryStatus);
UART9_SendData (UART_BUFFER);
sprintf (UART_BUFFER、"Safety Status:0x%04X\r\n"、SafetyStatus);
UART9_SendData (UART_BUFFER);
sprintf (UART_BUFFER、"Operation Status:0x%04X\r\n"、operationStatus);
UART9_SendData (UART_BUFFER);
sprintf (uart_Buffer、"Charging Status:0x%04X\r\n"、chargingStatus);
UART9_SendData (UART_BUFFER);
sprintf (uart_Buffer、"SpartStatus PF:0x%04X\r\n"、pfStatus);
UART9_SendData (UART_BUFFER);
}
错误日志输出:
电池电压:12380mV
ErrorCallback
温度传感器配置:0x0000
生产状态:0xD003
电池状态:0x10C7
安全状态:0x0004
运行状态:0x8104
充电状态:0x1003
PF 状态:0x0004
已发送 FET 解锁
ErrorCallback
发送了 FET 使能
ErrorCallback
FET 状态:0x4C04
温度:25.15 C
蓄电池电压:12379mV
读取命令0x0A 时出错
读取命令0x0B 时出错
最大误差:100
相对荷电状态:96%
绝对荷电状态:85%
剩余容量:3724 mA
完全充电容量:3900 mA
Cell 1电压:4119mV
Cell 2电压:4121mV
Cell 3电压:413mV
请求帮助:
- 可能是这样的 根本原因 状态 PF 错误 ?
- 有关解决的任何建议 FET 使能回调错误 ?
- 正确的电压 寄存器设置 或者 诊断步骤 要进一步解决该问题?
我附上了 原理图、错误日志和代码 非常有用。 如果有任何见解、将不胜感激。
提前感谢! 

