主题:BQSTUDIO 中讨论的其他器件
工具/软件:
尊敬的技术专家:
希望您度过美好的一天。
我目前正在将 BQ7695202 AFE 与 NXP MCU 配合使用、并已成功读取电芯电压和内部温度。 但是、我在读取外部温度时会遇到问题、因为我的温度读数始终为 0。
我正在使用 10kΩ 温度传感器。
如果您能提供任何有助于从外部温度传感器读取数据的示例代码、我将不胜感激。 这种援助对我的工作将是无价的。
这是温度传感器的原理图部分。

这是我的初始化部分代码:
void BQ769x2_Init ()
{
//配置器件 RAM 中的所有参数
//进入 configupdate 模式(子命令 0x0090)-它需要处于 CONFIG_UPDATE 模式才能对器件 RAM 设置进行编程
//有关 CONFIG_UPDATE 模式的完整说明、请参阅 TRM
CommandSubcommands (SET_CFGUPDATE);
//进入 CONFIG_UPDATE 模式后、可以对 RAM 寄存器进行编程。 对 RAM 进行编程时、校验和与长度也必须相同
//已编程以使更改生效。 BQ769x2 TRM 中详细介绍了所有 RAM 寄存器。
//更简单的方法是在 BQStudio 数据存储器屏幕中找到描述。 当您将鼠标移到寄存器名称上时、
//屏幕上将弹出寄存器和位的完整说明。
//“电源配置“- 0x9234 = 0x2D80
//设置 DSLP_LDO 位将使 LDO 在器件进入深度睡眠模式时保持运行状态
//将唤醒速度位设置为 00 以获得出色性能
BQ769x2_SetRegister (PowerConfig、0x2D80、2);
//'re G0 Config'-设置 REG0_EN 位以启用前置稳压器
BQ769x2_SetRegister (REG0Config、0x01、1);
//'REG12 配置'-启用具有 3.3V 输出的 REG1 (0x0D 用于 3.3V、0x0F 用于 5V)
BQ769x2_SetRegister (REG12Config、0x0D、1);
// BQ769x2_SetRegister (CFETOFFPinConfig、0x00、1);
//将 DFETOFF 引脚设置为控制 CHG 和 DSG FET - 0x92FB = 0x42(设置为 0x00 以禁用)
BQ769x2_SetRegister (DFFETOFFPinConfig、0x00、1);
//设置 ALERT 引脚 — 0x92FC = 0x2A
//这会将 ALERT 引脚配置为在启用时驱动为高电平(REG1 电压)。
//当触发了保护或有新的测量可用时、ALERT 引脚可用作 MCU 的中断
BQ769x2_SetRegister (ALERTPinConfig、0x2A、1);
//设置 TS1 以测量电芯温度 — 0x92FD = 0x07
BQ769x2_SetRegister (TS1Config、0x07、1);
//设置 TS3 以测量 FET 温度 — 0x92FF = 0x0F
BQ769x2_SetRegister (TS3Config、0x07、1);
//设置 HDQ 以测量电芯温度 — 0x9300 = 0x07
BQ769x2_SetRegister (HDQPinConfig、0x0B、1);// EVM HDQ 引脚上未安装热敏电阻、因此设置为 0x00
//设置 HDQ 以测量电芯温度 — 0x9300 = 0x07
BQ769x2_SetRegister (CFETOFFPinConfig、0x03、1);// EVM HDQ 引脚上未安装热敏电阻、因此设置为 0x00
//设置 HDQ 以测量电芯温度 — 0x9300 = 0x07
BQ769x2_SetRegister (DCHGPinConfig、0x0B、1);// EVM HDQ 引脚上未安装热敏电阻、因此设置为 0x00
//设置 HDQ 以测量电芯温度 — 0x9300 = 0x07
BQ769x2_SetRegister (DDSGPinConfig、0x0B、1);// EVM HDQ 引脚上未安装热敏电阻、因此设置为 0x00
//'VCell Mode'-启用 16 个电芯 — 0x9304 = 0x0000;写入 0x0000 会设置 16 个电芯的默认值
BQ769x2_SetRegister (VCellMode、0x0000、2);
//在“Enabled Protections A“中启用保护 0x9261 = 0xBC
//启用 SCD(短路)、OCD1(放电过流)、OCC(充电过流)、
// COV(过压)、CUV(欠压)
BQ769x2_SetRegister (EnabledProtectionsA、0xBC、1);
//启用“Enabled Protections B“中的所有保护功能 0x9262 = 0xF7
//启用 OTF(过热 FET)、OTINT(内部过热)、OTD(放电过热)、
// OTC(充电过热)、UTINT(内部欠温)、UTD(放电欠温)、UTC(充电欠温)
BQ769x2_SetRegister (EnabledProtectionsB、0xF7、1);
//“Default Alarm Mask“- 0x..82 启用 FullScan 和 ADSCAN 位、默认值= 0xF800
BQ769x2_SetRegister (DefaultAlarmMask、0xF882、2);
//设置电芯均衡配置 — 0x9335 = 0x03 — 在 RELAX 或 CHARGE 模式下自动均衡
//另请参阅 TI.com 上的“使用 BQ769x2 电池监控器实现电芯均衡“文档
BQ769x2_SetRegister (BalancingConfiguration、0x03、1);
BQ769x2_SetRegister (CCGain、0xF2416F41、4);// 0x416f41f2 = F2416F41
//设置 CUV(欠压)阈值 — 0x9275 = 0x31 (2479mV)
// CUV Threshold 是该值乘以 50.6mV
//写入 0x31 十进制 49 阈值电压= 49 × 50.6mV = 2479.4mV
BQ769x2_SetRegister (CUVThreshold、0x31、1);
//设置 COV(过压)阈值 — 0x9278 = 0x55 (4301mV)
// COV Threshold 是该值乘以 50.6mV
BQ769x2_SetRegister (COVThreshold、0x55、1);
//以 2mV 为单位设置 OCC(充电过流)阈值 — 0x9280 = 0x05 (1m Ω 检测电阻上的 10mV = 10A) 单元
BQ769x2_SetRegister (OCCThreshold、0x05、1);
//设置 OCD1 阈值 — 0x9282 = 0x0A (1m Ω 检测电阻上的 20mV = 20A) 单位为 2mV
BQ769x2_SetRegister (OCD1Threshold、0x0A、1);
//设置 SCD 阈值 — 0x9286 = 0x05 (1m Ω 检测电阻上 100mV = 100A) 0x05=100mV
BQ769x2_SetRegister (SCDThreshold、0x05、1);
//设置 SCD 延迟 — 0x9287 = 0x03 (30us) 启用、延迟为(值 — 1)* 15µs;最小值为 1
BQ769x2_SetRegister (SCDDelay、0x03、1);
//将 SCDL 锁存限制设置为 1、以便仅在移除负载 0x9295 = 0x01 的情况下设置 SCD 恢复
//如果未设置此值、则 SCD 将根据时间恢复(SCD 恢复时间参数)。
BQ769x2_SetRegister (SCDLLatchLimit、0x01、1);
//退出 configupdate 模式 — 子命令 0x0092
CommandSubcommands (EXIT_CFGUPDATE);
}
感谢您的支持。 如果您需要任何其他信息,请告诉我。
此致、
Janakiraman S.