BES平台笔记6——ntc温度监控功能

BES平台温度监控功能原理

BES默认设计是通过定时器去定期采集温度,当所采集的温度超出范围时,切断充电即可。

硬件设计

默认代码中检测的是芯片内部温度,代码不能知道电池温度,所以需要外籍电路来实现ntc电池温控。
电路参考:
GPIO-01只需要接一个1.8V高电平即可。
在这里插入图片描述

软件设计

代码部分贴出接口即可龚开发者参考即可,以免设计侵犯厂家版权。

void ntc_capture_irqhandler(uint16_t irq_val, HAL_GPADC_MV_T volt);//
int ntc_capture_open(void)
{

    ntc_capture_measure.currvolt = 0;
    ntc_capture_measure.index = 0;
    ntc_capture_measure.temperature = 0;
    ntc_capture_measure.cb = NULL;

    pmu_ntc_capture_enable();
    hal_gpadc_open(HAL_GPADC_CHAN_0, HAL_GPADC_ATP_ONESHOT, ntc_capture_irqhandler);
    return 0;
}

int ntc_capture_start(void)
{
    pmu_ntc_capture_enable();
    hal_gpadc_open(HAL_GPADC_CHAN_0, HAL_GPADC_ATP_ONESHOT, ntc_capture_irqhandler);
    return 0;
}

软件方面代码已经集成,调用接口开启定时器采集温度即可。

另外还需要注意,调用的时候要先配置通道,硬件编号跟软件编号要对应上需要 +2,硬件的 ADC1,软件读的是 CH3,ADC0,软件读的是CH2,电池电压软件读的是CH1。

温度高关机与切断充电

NTC温控功能逻辑1:
(1)耳机电池温控超出范围。
(2)调用system_shutdown()关机;
(3)(打开宏ACON_CAUSE_POWER_UP)耳机掉5V出盒开机

NTC温控功能逻辑2:
(1)耳机电池温控超出范围
(2)拉高HAL_IOMUX_PIN_P2_4切断充电(部分芯片设计有通过拉高引脚来实现切断充电的目的。)

测试与验证

验证效果的时候要注意,电压有虚高情况,测试是否切断充电时,测试电流不要测试电压。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值