中科蓝汛 NTC 检测

        环境:sdk_bt892xa2_v01x_s4041_20220316(蓝牙芯片 8922E2)

中科蓝汛的NTC检测在SDK内部已经做好了的,并且在配置工具中都可以进行调节阈值。

如下图:

在充电的情况下出现小于阈值时,耳机会出现关机 -> 开机 -> 关机 这样的一系列的循环。所以我们在充电的时候需要配置成耳机不充电,等NTC 恢复正常在进行充电。(在没有充电的状态下小于阈值时就会将耳机进行关机)

通过代码查看耳机会一直检测NTC当前的值,判断有20次出现小于的时候就会进行关机。函数原型如下:

AT(.com_text.ntc)
u8 sys_ntc_check(void)
{
    if (!xcfg_cb.ntc_en) {
        return  0;
    }
    static int n_cnt = 0;
    if(xcfg_cb.ntc_en){
        if (adc_cb.ntc_val <= xcfg_cb.ntc_thd_val) {
            if(n_cnt >= 20){
                sys_cb.ntc_2_pwrdwn_flag = 1;
                return 1;
            } else{
                n_cnt++;
            }
        }else{
            n_cnt = 0;
        }
    }
    return 0;

}

        通过上面的代码可以看出我们也可以添加一个NTC温度下限的阈值。根据个人的习惯或者要求进行是否添加。

这阈值是需要我们自己通过实际测试出来的。

修改充电状态下,要是NTC温度过高就不充电、NTC温度安全就充电。代码如下:

AT(.com_text.ntc)
u8 sys_ntc_check(void)
{
    if (!xcfg_cb.ntc_en) {
        return  0;
    }
    static int n_cnt = 0;
    if(xcfg_cb.ntc_en){
        if (adc_cb.ntc_val <= xcfg_cb.ntc_thd_val) {
            if(n_cnt >= 20){
            	if (sys_cb.charge_sta == 1 && DC_IN()) { //  接触5V并且正在充电
            		bsp_charge_sta(3); // 关闭 led
                    // 关闭充电功能
            		bsp_charge_off();
					RTCCON8 &= ~BIT(6);
					RTCCON8 |= BIT(1);
            		n_cnt = 0;
        		}
        		else if (DC_IN() && sys_cb.charge_sta == 0){ 
                    // 将计数清零,否则在NTC过高或者过低之后恢复,再离开5V就会立马关机
        			n_cnt = 0;
    			}
        		else {
                	sys_cb.ntc_2_pwrdwn_flag = 1;
                }
                printf("==>sys_cb.ntc_2_pwrdwn_flag  = %d n_cnt = %d", sys_cb.ntc_2_pwrdwn_flag, n_cnt );
                return 1;
            } else{
                n_cnt++;
            }
        }else{
            n_cnt = 0;
            if (sys_cb.charge_sta == 0 && DC_IN()) {
        		bsp_charge_sta(1); // 打开 led
                // 打开充电功能
        		RTCCON8 |= BIT(6);
				RTCCON8 &=~BIT(1);
    		}
        }
    }
    return 0;
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值