50如何单独控制每一路ISINK
0赞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); }
}
来自半导体社区