原创 【富芮坤物联网开发板评测】LDO output输出测试

2020-4-14 19:30 2491 7 7 分类: MCU/ 嵌入式
FR80xH芯片内有1个数字线性输出,输出范围如下:

参考用户手册,调用如下接口:

void pmu_set_aldo_voltage(enum pmu_aldo_work_mode_t mode, uint8_t value)

进行设置;

以下是一部分参考代码:

uint16_t LDO_value=0;

static int LDO_task_func(os_event_t *param)

{

    switch(param->event_id)

    {

        case USER_EVT_BUTTON:

            {

                struct button_msg_t *button_msg;

                const char *button_type_str[] = {

                                                    "BUTTON_PRESSED",

                                                    "BUTTON_RELEASED",

                                                    "BUTTON_SHORT_PRESSED",

                                                    "BUTTON_MULTI_PRESSED",

                                                    "BUTTON_LONG_PRESSED",

                                                    "BUTTON_LONG_PRESSING",

                                                    "BUTTON_LONG_RELEASED",

                                                    "BUTTON_LONG_LONG_PRESSED",

                                                    "BUTTON_LONG_LONG_RELEASED",

                                                    "BUTTON_COMB_PRESSED",

                                                    "BUTTON_COMB_RELEASED",

                                                    "BUTTON_COMB_SHORT_PRESSED",

                                                    "BUTTON_COMB_LONG_PRESSED",

                                                    "BUTTON_COMB_LONG_PRESSING",

                                                    "BUTTON_COMB_LONG_RELEASED",

                                                    "BUTTON_COMB_LONG_LONG_PRESSED",

                                                    "BUTTON_COMB_LONG_LONG_RELEASED",

                                                };

                button_msg = (struct button_msg_t *)param->param;

                co_printf("KEY 0x%08x, TYPE %s.\r\n", button_msg->button_index, button_type_str[button_msg->button_type]);

                //ALDO out是由寄存器的高4bit控制输出,即在调用“pmu_set_aldo_voltage”函数时,

                //参数1配置PMU_ALDO_MODE_NORMAL,参数2配置0x10-0xf0,分别对应1.8-3.5v左右的电压配置,

                //其中0x10-0x70是0.05v左右的步进,0x70-0x80是0.1v,0x80-0xf0是0.2v的步进。

if(button_msg->button_type == BUTTON_SHORT_PRESSED){//短按

                    if(button_msg->button_index == GPIO_PD6 ){//Key2

                        LDO_value -=0x10;

                    }else if(button_msg->button_index == GPIO_PC5){//KEY1  工作模式切换

                        LDO_value +=0x10;

                    }

                    if(LDO_value>0xf0){

                        LDO_value = 0xf0;

                    }else if(LDO_value<0x10){

                        LDO_value = 0x10;

                    }

                    co_printf("LDO Change:%02x\r\n", LDO_value);

                    pmu_set_aldo_voltage(PMU_ALDO_MODE_NORMAL, LDO_value);                        

}else if(button_msg->button_type == BUTTON_LONG_PRESSED){//按键长按

if(button_msg->button_index == GPIO_PC5 ){

co_printf("K1 long Pressed\r\n");

//tft_write_pic_data_to_flash();

}

}

            }

            break;

    }


    return EVT_CONSUMED;

}


作者: evanwalker, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3902443.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条