第三代测试机编程手册  1.0
载入中...
搜索中...
未找到
example_pmu.c

该实例介绍了如何使用PMU模块进行电流与电压的输出, 以及读取电流电压

1
6#include "lpxsdk.h"
7
8//PMU模块使用的一般流程
9void example_pmu(void)
10{
11 //配置PMU输出端口
12 PMU_SetOutputPort(PMU_PORT_EXT);
13 //输出值
14 PMU_SetOut(PMU_MODE_FVCI, 0, PMU_RNGV_5V, PMU_RNGI_20MA); //使用该函数内部自动使用 PMU_Enable() 所以无需手动调用
15 PMU_SetClamp(-1, 1); //该函数和 PMU_SetOut 的调用前后顺序无关. 如果钳位不变,可以只设置一次.
16
17 //读电压
18 // PMU_ReadVoltmeter 和 PMU_ReadAmmeterStatic 都是读取电压值
19 // PMU_ReadVoltmeter内部无延时,但是电压稳定可能慢一点.
20 // PMU_ReadAmmeterStatic内部有延时,但是电压稳定可能快一点.可以只使用该函数
21 float vol = PMU_ReadVoltmeter(VUNIT_MV); // 读取一个单位为mV的电压值
22 float vol_static = PMU_ReadVoltmeterStatic(VUNIT_MV); // 读取一个单位为mV的电压值
23
24 //读电流
25 // PMU_ReadAmmeter 和 PMU_ReadAmmeterStatic 都是读取电流值
26 // PMU_ReadAmmeter内部无延时,但是电流稳定可能慢一点.
27 // PMU_ReadAmmeterStatic内部有延时,但是电流稳定可能快一点.可以只使用该函数
28 float cur = PMU_ReadAmmeter(IUNIT_UA); // 读取一个单位为uA的电流值
29 float cur_static = PMU_ReadAmmeterStatic(IUNIT_UA); // 读取一个单位为uA的电流值
30
31 //断开PMU
32 PMU_Disable(); //使PMU输出脚浮空, 内部3ms延时, 会使PMU切换到FVCI模
33 PMU_SetFloat(); //仅设置PMU为浮空, 通过将PMU切换到内部端口, 并且将所有的TIO连接PMU的开关断开实现
34}
void PMU_Disable(void)
设置PMU输出引脚浮空, 并且将PMU的输出电压设置为0V
void PMU_SetClamp(float clamplRatio, float clamphRatio)
设置钳位. 该函数设置比例之后,根据输出模式和档位自动设置钳位值.
void PMU_SetFloat(void)
设置PMU的输出引脚浮空, 会进行下面的自动操作!!!!
void PMU_SetOutputPort(uint8_t outport)
设置PMU输出端口. 内置500us延时
float PMU_ReadVoltmeter(uint8_t unit)
读取测量电压
float PMU_ReadVoltmeterStatic(uint8_t unit)
精度更高的方式读取PMU的电压值, 内置750us延时
void PMU_SetOut(uint8_t mode, float set_mv_ua, uint8_t rangeV, uint8_t rangeI)
PMU输出.使用该函数自动 Enable PMU
float PMU_ReadAmmeter(uint8_t unit)
读取测量电流
float PMU_ReadAmmeterStatic(uint8_t unit)
精度更高的方式读取PMU的电流值, 内置750us延时