NXP MCU 技术论坛
直播中

张鹏

7年用户 1139经验值
私信 关注
[问答]

S32K146和S32K148低电压检测问题求解

我们有 S32K146 和 S32K148,我们想让我们的客户知道我们的 MCU 的电源电压何时过低或过高。  
我已经在参考手册中了解了 LVD 系统,我有一些疑问/问题,希望得到您的支持。

1. 当我提供 V lvd 阈值 2.7 和 3.0 伏之间的 MCU 电源电压时,我读取 PMC_LVDSC1[LVDF],当检测到低电压事件时它为 1,当我提供高于 V lvd 时,我再次读取 0,所以它按我的预期工作。但是我也可以配置这个阈值吗?例如让它在 2.7 和 3.2 之间?


2. 关于低电压警告,无论提供什么电源电压,我总是读取 PMC_LVDSC2[LVWF] = 1,我尝试提供 2.7 到 5 伏之间所有值的电压,它总是返回 1。
根据 S32K1xx 数据表,V lvw 的阈值水平在 4.19 和 4.5 之间。
那么为什么即使我的内部电源高于跳变点我总是得到 1?也许我错过了什么?
我也知道我应该承认 LVWACK 以便清除 LVWF。


void lvd_check(void)
{
    if(PMC->LVDSC1 & PMC_LVDSC1_LVDF_MASK)
    {
        LED_GREEN_ON;
        PMC->LVDSC1 |= PMC_LVDSC1_LVDACK(1);  // ACK event, clear LVDF when the power supply returns above the trip point.
        send_error_code(LOW_VOLTAGE_DETECTED);
    }
    else{
        LED_GREEN_OFF;
    }
   
    if(PMC->LVDSC2 & PMC_LVDSC2_LVWF_MASK)
    {
        LED_RED_ON;
        PMC->LVDSC2 |= PMC_LVDSC2_LVWACK(1);  // ACK event, clear LVWF when the power supply returns above the trip point.
        //send_error_code(HIGH_VOLTAGE_DETECTED);
    }
    else{
        LED_RED_OFF;
    }

}

更多回帖

发帖
×
20
完善资料,
赚取积分