|
一:LPC介绍 低功耗电压?较器(Low Power Compare,后简称 LPC)将乘以所选?例系数的输?电压与参考电压进??较, 并输出?较结果。LPC主要用作以下用途 1. 信号检测 监测外部传感器(如光电、霍尔、电容式传感器等)的模拟信号电压,并转换为逻辑电平,提供MCU 处理。 例如,用于检测电池电压、电流、电机状态等。 2. 欠压或过压保护 低功耗电压比较器可以实时监测电源电压、电池电压,若电压低于或高于设定值,可触发 MCU进入低功耗模式或进行保护措施。 3. 低功耗唤醒 当 MCU 处于睡眠模式时,低功耗比较器可以用于监测外部事件(如按键按下、电压变化等),从而唤醒 MCU,减少功耗。 4. 过流/过温保护 通过监测外部电流或温度传感器的输出信号,当超过阈值时触发保护机制,比如关闭负载或报警。 5. PWM 或调制解调 在一些低成本控制系统中,电压比较器可用于模拟 PWM 信号调制或解调,从而减少对 MCU 资源的需求。 6. 振荡器/波形生成 结合 RC 电路,电压比较器可以用于产生方波信号或简易振荡器,作为时钟源或触发信号。 7. 过零检测
在交流电检测或电机控制中,可用于过零检测,以便进行同步控制或相位控制。 二:工作原理LPC 需要将 32K RC 时钟源?作?较器时钟。?较结果如下: 1.如果 [输?电压 * 缩放?例] 的值?于参考电压,则输出将为低(“ 0”)。 2.如果 [输?电压 * 缩放?例] 的值?于参考电压,则输出将为?(“ 1”)。 3.如果 [输?电压 * 缩放?例] 的值等于参考电压,或选择输?通道为 float,则输出将不确定。 三:源码void user_init(void) { gpio_function_en(LED1); // 使能 LED1 的 GPIO 功能 gpio_output_en(LED1); // 使能 LED1 为输出模式 gpio_input_dis(LED1); // 禁用 LED1 的输入功能 #if defined(MCU_CORE_TL751X) lpc_set_input_chn(LPC_INPUT_PG1); // 若为 TL751X 内核,设置低功耗比较器(LPC)的输入通道为 PG1 #else lpc_set_input_chn(LPC_INPUT_PB1); // 其他情况,设置 LPC 的输入通道为PB1 #endif // 当芯片处于低功耗模式时,参考电压只能由 UVLO 提供,或从 PB0 和 PB3 提供 lpc_set_input_ref(LPC_NORMAL, LPC_REF_872MV); // 设置 LPC 的参考电压为 872mV(普通模式) lpc_set_scaling_coeff(LPC_SCALING_PER50); // 设置 LPC 的缩放系数为 50% // 必须最后开启 LPC 电源 lpc_power_on(); // LPC 采样时钟源为 RC 32K,在开启LPC 电源后,必须等待两个采样周期才能获取采样值 delay_us(64); } void main_loop(void) { printf("result = %d\r\n", lpc_get_result()); // 读取并打印 LPC 采样结果 gpio_toggle(LED1); // 切换 LED1 状态 delay_ms(200); // 延时 200 毫秒 } 目前手里没有可调电源,就不上图片了~~~
|