基于博流BL606P音视频开发板实现RGB点灯

描述

编辑语:

芯片开放社区(OCC)面向广大开发者推出应用实战系列内容,通过分享开发者实战开发案例,总结应用开发经验,梳理开发中的常见问题及解决方案,为后续参与的开发者提供更多参考与借鉴。

本文是关于开发者 kit7828 基于BL606P-DVK开发板实战开发的系列文章中的第二篇,主要介绍了BL606P实现RGB点灯,后面还会持续更新该开发者的测评内容,敬请期待!

BL606P开发板中有一颗RGB灯,以及4颗LED灯,其中LED是用BL702芯片控制的,因此,BL606P只能控制RGB三色灯,分别为GPIO17、18、19,对应R、G、B,输出高电平点亮。

01 硬件及连接

BL606P开发板中有一颗RGB灯,以及4颗LED灯,硬件连接原理图分别如下

1.1 RGB灯的连接

开发板

IO引脚控制NMOS管点亮RGB灯,GPIO17、18、19分别对应R、G、B,输出高电平点亮,同时需要设置跳线帽JP6-8

跳线帽要插在RGB灯的远端。

1.2 LED的连接

开发板

分别采用BL702的GPIO23、17、14、9控制D9-D12,输出低电平点亮。

就BL606P来说,只能控制RGB灯了。

02 软件实现

控制BL606P的GPIO,参考官网提供的例程

开发板

 新建了led.c文件

具体代码如下:

 

/* 头文件包含 */
#include 
#include 
#include "app_main.h"

void gpio_output_set(int port, int val)
{

    /* GPIO 推挽输出模式设置 */
    gpio_dev_t gpio = { 0, OUTPUT_PUSH_PULL, NULL };

    /* 设置 pin 脚,与管脚复用设置一致 */
    gpio.port = port;

    /* GPIO 初始化, 配置为输出模式 */
    int ret = hal_gpio_init(&gpio);

    if (ret == 0) {
        if (val) {
            /* IO 输出高电平 */
            ret = hal_gpio_output_high(&gpio);
        } else {
            /* IO 输出低电平 */
            ret = hal_gpio_output_low(&gpio);
        }
    }

    /* GPIO 去初始化 */
    hal_gpio_finalize(&gpio);

}

 

在board_yoc_init函数中,设定GPIO引脚功能

开发板

main函数中,采用预定义

 

#define R_On()gpio_output_set(GPIO_PIN_17,1)
#define R_Off()gpio_output_set(GPIO_PIN_17,0)

#define G_On()gpio_output_set(GPIO_PIN_18,1)
#define G_Off()gpio_output_set(GPIO_PIN_18,0)

#define B_On()gpio_output_set(GPIO_PIN_19,1)
#define B_Off()gpio_output_set(GPIO_PIN_19,0)

 

然后,实现RGB的三色转换

 

while(1){
R_On();
aos_msleep(500);
R_Off();
G_On();
aos_msleep(500);
G_Off();
B_On();
aos_msleep(500);
B_Off();
}

 

03 总结

板子上RGB灯,应该出现了硬件问题,在拔掉跳线帽的情况下依然是点亮的,颜色应该是灰度级别的半亮度

开发板

由此初步判断RGB灯坏了,测量N-MOS的D极电压,都有0.8V,而RGB的阴极管教端,约有1.3v左右的电压

跳线帽合上后,可以看到R、G、B灯色的变化,但是不明显,因此也不传视频了。

由于手头没有热风枪,以及必要的器件,无法替换RGB灯。

整体来说,BL606P的开发板,硬件上感觉存在较大的不稳定,或许也是测评的因素之一吧。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分