icfans

50如何单独控制每一路ISINK

0
阅读(1286)

Solution:

pmu6250_bl_init()函数末尾添加:

pmu_set_isink(ISINK0,ISINK_MODE, ISINK_REGISTER_CTRL_MODE);

pmu_set_isink(ISINK1,ISINK_MODE, ISINK_REGISTER_CTRL_MODE);

pmu_set_isink(ISINK2,ISINK_MODE, ISINK_REGISTER_CTRL_MODE);

pmu_set_isink(ISINK3,ISINK_MODE, ISINK_REGISTER_CTRL_MODE);

每一路isink都参考custom_isink0_control写一个API,不必再调用custom_cfg_gpio_set_level

这样就可以分别控制它们开关及电流设定了

custom_isink0_control(kal_bool open)

{

PMU_CTRL_ISINK_SET_EN isink_en;

PMU_CTRL_ISINK_SET_STEP isink_step;

PMU_CTRL_ISINK_SET_STP_EN isink_stp_en;

PMU_CTRL_ISINK_SET_STEP_MODE isink_step_mode;

DCL_HANDLE handle;

DCL_UINT16 val;

handle = DclPMU_Open(DCL_PMU, FLAGS_NONE);

if (open ==KAL_TRUE) //开

{

isink_en.enable = DCL_TRUE;

isink_step.isink = ISINK0;

pmu_set_isink((PMU_ISINK_LIST_ENUM)isink_step.isink,ISINK_EN,(DCL_UINT32)isink_en.ena

ble);

val=PMU_Parameter_to_Value(ENC(ISINK_SET_STEP, ALLMOD), ISINK_STEP_24_MA);

isink_step.isink = ISINK0;

isink_step.step = ISINK_STEP;

pmu_set_isink(isink_step.isink, ISINK_STEP, val);

}

else//关

{

isink_en.enable = DCL_FALSE;

isink_step.isink = ISINK0;

pmu_set_isink((PMU_ISINK_LIST_ENUM)isink_step.isink,ISINK_EN,(DCL_UINT32)isink_en.ena

ble); }

}

来自半导体社区