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.

[参考译文] BQ76952EVM:BQ76952接口

Guru**** 2782445 points

Other Parts Discussed in Thread: BQSTUDIO, BQ76952

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1198284/bq76952evm-bq76952-interface

器件型号:BQ76952EVM
主题中讨论的其他器件:BQSTUDIOBQ76952

您好、Matt、

我们正在使用 BQ7695203及其工作状态、但在插入/移除电池连接器/电池输入连接器一段时间后  、器件无法与 MCU 通信。

我们观察到 VREG18 o/p 为0.6 V,正常情况下电压为1.8 V。 并且状态在多次打开/关闭后保持不变(在用新的 BQ 通信重新启动后,BQ 会重新开始。)

我们使用 LDO 为外部 VREGIN 提供~5.39V DC 电源。

R199、R202 -1K

R148-4.7K

U23 --未安装

R161 -4.7K

请检查随附的原理图并提供您的输入以进行更正。

2:我还在使用低侧 MOSFET 驱动器,并使用 CHRG 和 DCHRG 命令,是正确的,或者需要更改此项–e2e.ti.com/.../schematic-BQ.pdf

3:上电时的 BQ 初始化代码

void BQ769x2_Init (void)

float tempRegValue=0;
//配置器件 RAM 中的所有参数

//进入 configupdate 模式(子命令0x0090)-需要处于 CONFIG_UPDATE 模式才能对器件 RAM 设置进行编程
//有关 CONFIG_UPDATE 模式的完整说明,请参阅 TRM
CommandSubcommands (SET_CFGUPDATE);

//进入 CONFIG_UPDATE 模式后、可以对 RAM 寄存器进行编程。 对 RAM 进行编程时、校验和和长度也必须为
//编程以使更改生效。 BQ769x2 TRM 中详细介绍了所有 RAM 寄存器。
//查找说明的一种更简单的方法是在 BQStudio Data Memory 屏幕中找到。 将鼠标移到寄存器名称上时、
//屏幕上将弹出对寄存器和位的完整说明。

//“电源配置”- 0x9234 = 0x2D80
//设置 DSLP_LDO 位可使 LDO 在器件进入深度睡眠模式时保持活动状态
//将唤醒速度位设置为00以获得最佳性能
BQ769x2_SetRegister (PowerConfig、0x2D80、2);
//“默认报警掩码”- 0x0.82启用 FullScan 和 Adscan 位,默认值= 0xF800
BQ769x2_SetRegister (DefaultAlarmMask、0xF882、2);

//'re 4/0 Config'-设置 REG0_EN 位以启用前置稳压器
BQ769x2_SetRegister (REG0Config、0x00、1);


//设置 DFETOFF 引脚以控制 CHG 和 DSG FET - 0x92FB = 0x42 (设置为0x00以禁用)
BQ769x2_SetRegister (DFETOFFPinConfig、0x42、1);

//设置 ALERT 引脚- 0x92FC = 0x2A
//这会将 ALERT 引脚配置为在启用时驱动高电平(REG1电压)。
//当触发保护或提供新的测量值时、ALERT 引脚可用作 MCU 的中断
BQ769x2_SetRegister (ALERTPinConfig、0x2A、1);

//将 TS1设置为测量电池温度- 0x92FD = 0x07
BQ769x2_SetRegister (TS1Config、0x00、1);

//将 TS3设置为测量 FET 温度- 0x92FF = 0x0F
BQ769x2_SetRegister (TS3Config、0x00、1);

//将 HDQ 设置为测量电池温度- 0x9300 = 0x07
BQ769x2_SetRegister (HDQPinConfig、0x00、1);// EVM HDQ 引脚上未安装热敏电阻、因此设置为0x00

//启用 int Temp 作为 FET temp /电芯保护的内部温度- 0x9303 = 0x1E
//user mV =10mV、用户 A =10mA
BQ769x2_SetRegister (DAConfiguration、0x1E、1);

//'VCell Mode'-启用16节电池- 0x9304 = 0x0000;写入0x0000会设置16节电池的默认值
BQ769x2_SetRegister (VCellMode、0x0000、2);

//在"Enabled Protections A"中启用保护0x9261 = 0xBC
//启用 SCD (短路)、OCD1 (放电过流)、OCD2、OCC (充电过流)、
// COV (过压)、CUV (欠压)
BQ769x2_SetRegister (EnabledProtectsA、0xFC、1);

//启用'Enabled Protections B'中的所有保护0x9262 = 0xF7
//启用 OTF (过热 FET)、OTINT (内部过热)、OTD (放电过热)、
// OTC (充电过热)、UTINT (内部欠温)、UTD (放电欠温)、UTC (充电欠温)
BQ769x2_SetRegister (EnabledProtectsB、0xF7、1);
//禁用'Enabled Protections C' 0x9263 = 0x00中的所有保护
BQ769x2_SetRegister (EnabledProtectsC、0x00、1);

//Enable/Disable 'Charge FET'中的所有保护0x9265 = 0x98
BQ769x2_SetRegister (CHGFETProtectsA、0x98、1);

//Enable/Disable 'Charge FET'中的所有保护0x9266 = 0xD5 //禁用所有保护
BQ769x2_SetRegister (CHGFETProtectsB、0xD5、1);

//Enable/Disable 'Charge FET'中的所有保护0x9267 = 0x56 //禁用所有保护
BQ769x2_SetRegister (CHGFETProtectsC、0x56、1);


//Enable/Disable 在"充电 FET "中的所有保护0x9269/0x926A/0x926B=默认设置
BQ769x2_SetRegister (DSGFETProtectsA、0xE4、1);
BQ769x2_SetRegister (DSGFETProtectsB、0xE6、1);
BQ769x2_SetRegister (DSGFETProtectsC、0xE2、1);

BQ769x2_SetRegister (FETOptions、0x0D、1);

//启用电荷泵和电荷泵电平5.5V、0X9309
BQ769x2_SetRegister (ChgPumpControl、0x00、1);

//设置电池放电状态的放电电流--0x9310=0x0A-1.0A
BQ769x2_SetRegister (DsgCurrentThreshold、0x0A、1);
//设置电池充电状态的充电电流-0x9312=0x0A-1.0A
BQ769x2_SetRegister (ChgCurrentThreshold、0x0A、1);

//设置开路检查时间-0x9314=0x1E-30秒
BQ769x2_SetRegister (CheckTime、0x1E、1);

//设置电池平衡配置- 0x9335 = 0x03 -处于静置或充电模式时的自动平衡
//另请参阅 TI.com 上的“使用 BQ769x2电池监控器实现电池平衡”文档
BQ769x2_SetRegister (平衡配置、0x03、1);
//设置电池平衡间隔//0X9339 = 30秒
BQ769x2_SetRegister (CellBalanceInterval、0x1E、1);
//设置电池平衡最大电池数//0X933A=1
BQ769x2_SetRegister (CellBalanceMaxCells、0x01、1);
//设置充电期间的电池平衡最小电池电压//0X933B=3600 mV
BQ769x2_SetRegister (CellBalanceMinCellVCharge、3500、2);
//设置充电过程中的电池平衡最小增量电池电压//0X933D=40mV
BQ769x2_SetRegister (CellBalanceMinDeltaCharge、40、1);
//设置充电期间的电池平衡最小增量停止电压//0X933e=20mV
BQ769x2_SetRegister (CellBalanceStopDeltaCharge、20、1);

//关断
//设置堆叠电压//0X9241=60.0V
BQ769x2_SetRegister (ShutdownStackVoltage、600、2);
//设置堆栈电压低于//9243=20秒时的关断延迟
BQ769x2_SetRegister (LowVShutdownDelay、20、1);

//设置关断温度//0X9244=70度
BQ769x2_SetRegister (关断温度、70、1);
//设置关断温度延迟//0X9245=5秒
BQ769x2_SetRegister (ShutdownTemperatureDelay、5、1);
//设置 FET 关断延迟//0X9252=0表示与 RST 引脚的连接
BQ769x2_SetRegister (FETOffDelay、0、1);

//设置关闭命令延迟//0X9253= 8*.25Second 表示与 RST 引脚的连接
BQ769x2_SetRegister (ShutdownCommandDelay、8、1);/2秒
//自动关断时间//9254=50mA
BQ769x2_SetRegister (自动关断时间、15、1);

//SLEEP 电流//9248=50mA
BQ769x2_SetRegister (SlepCurrent、50、2);

//睡眠电压时间//924A=60秒
BQ769x2_SetRegister (VoltageTime、60、1);

//睡眠唤醒比较器电流//924B=500mA
BQ769x2_SetRegister (WakeComparatorCurrent、500、2);

//SLEEP HYS 时间//924D=60秒
BQ769x2_SetRegister (Slep滞后 时间、60、1);

//休眠充电器电压阈值//924E=2000 //2000 * 10mV
BQ769x2_SetRegister (SlepChargerVoltageThreshold、2000、2);




//设置 CUV (欠压)阈值- 0x9275 = SetCellUnderVoltage[3](2000)
// CUV 阈值是该值乘以50.6mV
tempRegValue=SetCellUnderVoltage[3];
tempRegValue=(tempRegValue*10)/506+.5;
BQ769x2_SetRegister (CUVThreshold、(uint8_t) tempRegValue、1);

//CUV 延迟//9276=74 /250.8MS
BQ769x2_SetRegister (CUVDelay、74、2);
//CUV 恢复 HYS //927B=4//4*50.6mV
BQ769x2_SetRegister (CUVRecovery滞后、4、2);

//设置 COV (过压)阈值- 0x9278 = SetCellOverVoltage[3](3900mV)
// COV 阈值是该值乘以50.6mV
tempRegValue=SetCellOverVoltage[3];
tempRegValue=(tempRegValue*10)/506;
BQ769x2_SetRegister (COVThreshold、(uint8_t) tempRegValue、1);
//延迟0x9278=74 (250.8ms)
BQ769x2_SetRegister (COVDelay、74、2);
//设置 COV 恢复 HYS//0X927C=5//5*50.6
BQ769x2_SetRegister (COVRecovery滞后、5、1);

//设置 PACK-Tos 增量电压- 0x92B0 = 200//200*10mV
BQ769x2_SetRegister (OCCPACKTOSDelta、200、2);

//设置 OCC (充电中的过流)阈值- 0x9280 = 0x26 (1.25m Ω 检测电阻上的125mV = 100A)单位(以2mV 为单位)
BQ769x2_SetRegister (OCCThreshold、0x26、1);
//设置 OCC (充电过流)延迟- 0x9281 = 0x1E (29*3.3+6.6ms)//102ms
BQ769x2_SetRegister (OCCDelay、0x1D、1);

//设置 OCD1阈值- 0x9282 = 16 (1.25m Ω 检测电阻上32mV = 40A) 2mV 单位
BQ769x2_SetRegister (OCD1Threshold、16、1);
//设置 OCD1延迟- 0x9283 = 127 //127*3.3+6.6 Ms
BQ769x2_SetRegister (OCD1Delay、127、1);

//设置 OCD2阈值- 0x9284 = 24 (1.25m Ω 检测电阻上的48mV = 60A)单位为2mV
BQ769x2_SetRegister (OCD2Threshold、24、1);
//设置 OCD2延迟- 0x9285 = 28 /28*3.3+6.6 Ms=99mS
BQ769x2_SetRegister (OCD2Delay、28、1);

//设置 OCD3阈值- 0x928A =-1000 (-1000=100.0 A)
BQ769x2_SetRegister (OCD3Threshold、-1000、2);
//设置 OCD2延迟- 0x928C = 2//2秒
BQ769x2_SetRegister (OCD3Delay、2、1);

//设置 OCD 恢复阈值- 0x928D = 200 //
BQ769x2_SetRegister (OCDRecoveryThreshold、200、2);



//设置 SCD 阈值- 0x9286 = 6 (125A = 1.25m Ω@100A) 6=125mV
BQ769x2_SetRegister (SCDThreshold、0x06、1);

//µs SCD 延迟- 0x9287 = 7 (105us)启用、延迟为(值- 1)* 15 μ s;最小值为1
BQ769x2_SetRegister (SCDDelay、0x07、1);

//将 SCDL 锁存限制设置为1,以便仅在卸载时设置 SCD 恢复0x9295 = 0x01
//如果未设置,则 SCD 将根据时间恢复(SCD 恢复时间参数)。
BQ769x2_SetRegister (SCDLLatchLimit、0x01、1);

//OTC
// OTC 阈值- 0x929A = 50度
BQ769x2_SetRegister (OTCThreshold、50、1);
// OTC 延迟- 0x929B = 5秒
BQ769x2_SetRegister (OTCDelay、5、1);

// OTC 恢复- 0x929C = 45度
BQ769x2_SetRegister (OTCRecovery、45、1);

//OTD
// OTD 阈值- 0x929D = 60度
BQ769x2_SetRegister (OTDThreshold、60、1);
// OTD 延迟- 0x929E = 5秒
BQ769x2_SetRegister (OTDDelay、5、1);

// OTC 恢复- 0x929F = 55度
BQ769x2_SetRegister (OTDRecovery、55、1);


//OTF
// OTF 阈值- 0x92A0 = 70度
BQ769x2_SetRegister (OTFThreshold、70、1);
// OTF 延迟- 0x92A1 = 5秒
BQ769x2_SetRegister (OTFDelay、5、1);

// OTC 恢复- 0x92A2 = 60度
BQ769x2_SetRegister (OTFRecovery、60、1);


//负载检测
// LD 时间0x92B4 = 10秒
BQ769x2_SetRegister (LoadDetectActiveTime、10、1);
// LD 恢复时间= 50秒
BQ769x2_SetRegister (LoadDetectRetryDelay、50、1);
// LD 恢复时间= 1小时
BQ769x2_SetRegister (LoadDetectTimeout、1、1);


//永久失败
//永久故障/深度放电- 0x92C8 = 1500mV
BQ769x2_SetRegister (CUDEPThreshold、1500、2);
//永久性故障/深度放电- 0x92CA = 5秒
BQ769x2_SetRegister (CUDEPTLEY、5、1);

// SUV - 0x92CB = 22000mV
BQ769x2_SetRegister (SUVThreshold、2200、2);
// SUV 延迟- 0x92CD = 5秒
BQ769x2_SetRegister (SUVDelay、5、1);

// SOV - 0x92CE = 4000mV
BQ769x2_SetRegister (SOVThreshold、4000、2);
// SOV 延迟- 0x92D0 = 5秒
BQ769x2_SetRegister (SOVDelay、5、1);

// TOS - 0x92D1 = 500mV
BQ769x2_SetRegister (TOSSThreshold、500、2);
// TOS 延迟- 0x92D3 = 10秒
BQ769x2_SetRegister (SOVDelay、10、1);

// SOCC 0x92D4 = 12500mA *10mA
BQ769x2_SetRegister (SOCCThreshold、12500、2);
// SOCC 延迟- 0x92D6 = 5秒
BQ769x2_SetRegister (SOCCDelay、5、1);

// SOCD 0x92D7 =-11000mA *10mA
BQ769x2_SetRegister (SOCDThreshold、-11000、2);
// SOCD 延迟- 0x92D9 = 5秒
BQ769x2_SetRegister (SOCDDelay、5、1);

// SOT 0x92DA = 65度
BQ769x2_SetRegister (SOTThreshold、65、1);
// SOT 延迟- 0x92DB = 5秒
BQ769x2_SetRegister (SOTDelay、5、1);

// SOTF 0x92DC = 85度
BQ769x2_SetRegister (SOTFThreshold、85、1);
// SOTF 延迟- 0x92DD = 5秒
BQ769x2_SetRegister (SOTFDelay、5、1);


//永久失败检查电压0x92DE = 3500mV
BQ769x2_SetRegister (VIMRCheckVoltage、3500、2);

//永久失败检查电流0x92E0 = 3500mV
BQ769x2_SetRegister (VIMRMaxRelaxCurrent、10、2);

//永久故障 VIMR 0x92E2 = 500mV
BQ769x2_SetRegister (VIMRThreshold、500、2);

//永久故障 VIMR 延迟0x92E4 = 5
BQ769x2_SetRegister (VIMRDelay、5、1);


//永久故障 VIMR 放松持续时间0x92E5 = 90秒
BQ769x2_SetRegister (VIMRRelaxMinDuration、90、2);

//永久性故障 VIMA 0x92E7 = 3700
BQ769x2_SetRegister (VIMRDelay、3700、2);

//永久故障 VIMA 最小有效电流0x92E9 = 50mA
BQ769x2_SetRegister (VIMAMinActiveCurrent、50、2);

//永久性故障 VIMA 0x92EB = 200mV
BQ769x2_SetRegister (VIMAThreshold、200、2);

//永久故障 VIMA 延迟0x92ED = 5秒
BQ769x2_SetRegister (VIMADelay、5、1);


//永久故障 CFET 关闭0X92EE = 50mA
BQ769x2_SetRegister (CFETFOFFThreshold、50、2);

//永久故障 CFET 关闭延迟0X92F0 = 5秒
BQ769x2_SetRegister (CFETFOFFDelay、5、1);

// DFET 永久故障关闭0X92F1 =-50mA
BQ769x2_SetRegister (DFETFOFFThreshold、-50、2);

//永久故障 DFET 关闭延迟0X92F3 = 5秒
BQ769x2_SetRegister (DFETFOFFDelay、5、1);

//永久故障 VSSF 0X92F4 = 100
BQ769x2_SetRegister (VSSFFailThreshold、100、2);

//永久故障 VSSF 延迟0X92F6 = 5秒
BQ769x2_SetRegister (VSSFDelay、5、1);

//退出 configupdate 模式-子命令0x0092
CommandSubcommands (EXIT_CFGUPDATE);

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

    您好 Ramesh、

    有关创建 BQ76952原理图的视频可能会有所帮助: https://training.ti.com/creating-schematic-bq769x2-battery-monitors 

    还有一个使用低侧 FET 的参考设计、请访问 :https://www.ti.com/tool/TIDA-010216 

    如果 REG18不是1.8V、这意味着器件已损坏或可能处于关断模式。 我注意到原理图中有几个问题、但我不知道这些问题是否单独导致了您所看到的问题。 我在寄存器设置中看不到任何明显的问题。

    • PACK 和 LD 引脚上的电阻应为10k (而非1k)。  
    • 应使用 FET 驱动器 IC 通过 DCHG 和 DDSG 引脚驱动低侧 FET。 这些不能通过高侧 FET 控制引脚(使用电荷泵)进行控制。 此外、在您的寄存器设置中、电荷泵被禁用。 请参阅此处的低侧 FET 应用手册 :https://www.ti.com/lit/pdf/sluaa84

    此致、

    Matt

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

    您好、Matt、

    感谢您的建议,我们将实施所有。

    只要连接充电器和电池充电、电池1和电池16电压将增加到300mV、我们在电路板上就会面临另一个问题。

    实际电池电压为3.3V ,但板载/电容感应增加,已禁用电池平衡

    情况  

    (1)电池正在放电--- 电池1到电池16的电压正常

    (2)连接充电器、无电流流动-电芯1至电芯16电压正常

    (3)充电器已连接且电池正在充电-然后电池1和电池16的电压高达~200mV。

    我 正在为您的 review.e2e.ti.com/.../TelecomBMS.zip 共享 Gerber 文件

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

    您好 Ramesh、

    您似乎必须在充电器路径中具有电阻。 我在原理图中看不到充电器连接-您能显示它在哪里吗? 此外、如果未启用 FET、如何进行充电?

    此致、

    Matt

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

    请检查图像  

    (2) 请检查组件的价值并提出建议

    我能否从这里移除二极管。

    因为我在将 电池组+和电池组-连接到电池电压端子时遇到问题,所以在外部平衡 MOSFET 中使用的栅极驱动电阻 R237-1K 加热  

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

    您好 Ramesh、

    对于电池平衡 FET、您可能应该使用100欧姆电池输入电阻器(R236、R246等)、以便 Vgs 足够高、使 FET 能够启用它们。 电池平衡应用报告是一份很好的文档、其中展示了示例和注意事项。

    Matt

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

    您好、Matt、

    请 分享以下内容

    (1)用于电池平衡的 PMOS 额定值

    (2)齐纳二极管是否需要

    (3)用于外部电池平衡的栅极驱动电阻值(我们使用的是1K)

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

    您好 Ramesh、

    1) PMOS 应具有较低的 Vgs 导通电压、以便100 Ω 电池输入电阻器上的 IR 压降足以使其启用(请参阅电池平衡应用报告以了解如何根据电池电压计算此电压的示例。

    2) 2)建议使用齐纳二极管来保护 PMOS -大多数晶体管在栅极电压上的绝对最大额定值都很低、因此在发生较大瞬变时保护组件非常重要。

    3) 3) 1K 应该正常。

    此致、

    Matt