无线电爱好网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

无线电爱好网 首页 技术应用 初学入门 查看内容

中科蓝讯 AB5301A 驱动 RGB 灯示例

2022-8-2 10:53| 发布者: 闪电| 查看: 1| 评论: 0

摘要: 这次我将和大家分享如何使用中科蓝讯 AB5301A 驱动 RGB 灯。我将从 RGB灯的原理出发,接着介绍驱动程序,最后使用 RGB 灯实现呼吸灯效。一、RGB灯工作原理1、RGB 灯概述 示例的 GBH6812 RGB灯有四个引脚,DIN 端与 ...

这次我将和大家分享如何使用中科蓝讯 AB5301A 驱动 RGB 灯。我将从 RGB灯的原理出发,接着介绍驱动程序,最后使用 RGB 灯实现呼吸灯效。


一、RGB 灯工作原理

1、RGB 灯概述

       示例的 GBH6812 RGB灯有四个引脚,DIN 端与蓝牙芯片信号 IO 脚连接,DOUT 为信号输出脚,本示例没有用到,VDD、GND 为供电脚。GBH6812 是一个集控制电路与发光电路于一体的智能外控 LED光源。其外型与一个 5050LED 灯珠相同,每个元件即为一个像素点。每个像素点的三基色颜色可实现 256 级亮度显示,完成 16777216 种颜色的全真色彩显示。

2、RGB 灯电气规格

 

    注意,RGB 灯的工作电压要大于 4V;推动电流为 12mA 左右,所以应把 IO输出驱动配置为32 mA。

3、RGB 灯编码

T0H:300ns     T0L:600ns

T1H:600ns     T1L:300ns(容错20%)

Trst > 80us

       当 IO 输出 300ns 高电平,600ns 低电平,DIN 端将识别为 0 码,1 码与之相反;当 IO 输出大于 80us 的低电平,DIN 端将识别为 RESET 码。如果 DIN 端输入信号为 RESET 信号,RGB 灯将接收到的数据送显示,并将在该信号结束后重新接收数据。

4、24Bits 数据发送顺序:高位先发,即 R7 先发



二、驱动程序

1、定义一个数组存放 RGB 灯呼吸灯效值


2
、RGB 灯控制脚初始化函数

     RGB 灯需要 12mA 的驱动电流。GPIOEDRV |= BIT(4);这句是把 IO输出驱动配置为32 mA;IO 输出驱动电流默认为 8mA。


3
、写入 0 或 1 码函数

     AT(.text.led_disp)

     void RGB_Write0(void)       //输入码0

    {

          GPIOESET = BIT(4);

          asm("nop");

          ……..(省略了 23 句 asm("nop");)

          GPIOECLR = BIT(4);

          asm("nop");

           ………(省略了 23 句 asm("nop");)

    }

/**************************************************************/

     AT(.text.led_disp)


     void RGB_Write1(void)   // 输入码1

     {

             u8 cnt2 = 1;

             GPIOESET = BIT(4);

             asm("nop");  

              ……..(省略了 47 句 asm("nop");)

             GPIOECLR = BIT(4);

             while(cnt2--) //00ns

             asm("nop");

             ……..(省略了 6 句 asm("nop");)

      }

 

    写 0 或 1 函数需要把系统时钟配置为 80M:

    若要 RGB 灯识别为 0 码,IO 输出 300ns 高电平,600ns 低电平;若要RGB 灯识别为 1 码,IO输出 600ns 高电平,300ns 低电平,这两个函数使用示波器测量过,满足 20% 的误差要求。

4、复位函数

      每发送完 24 位数据给 RGB 灯后,都需要使控制脚清零 80us,这样才能发送下一个灯效数据。

5、发送灯效数据给 RGB 灯的函数

 

      RGB 灯的颜色控制共需三个字节,每个字节控制一种颜色,依照 RGB 灯的控制原理,高位先写入。

6、呼吸灯效函数

    这里只做了一种颜色的呼吸灯效,涉及到的 sys_cb 结构体变量自行定义即可。若要多种颜色交替实现呼吸灯效,只需增加一个代表不同颜色的呼吸灯效的变量即可。

 

三、呼吸灯效实现

1、RGB 控制 IO 初始化


2、增加一个 30ms 的队列信息



3、30ms 的队列信息跑呼吸灯效函数

    30ms 改变一次灯效的亮度。

    好了,使用中科蓝讯 AB5301A 驱动 RGB 灯的内容介绍到这里,欢迎大家批评指正。如果大家还有什么其他的问题或者功能想要询问,亦可以在评论区中提出,可以共同探讨,一起进步。

 

 

参考文档:

1、中科蓝讯蓝皮书

2、AB5301A DataSheet

3、5050 幻彩灯规格书

技术文档

类型标题档案
硬件RGB Program


路过

雷人

握手

鲜花

鸡蛋

QQ|关于本站|小黑屋|Archiver|手机版|无线电爱好网 ( 粤ICP备15040352号 ) 无线电爱好技术交流5 无线电爱好技术交流1无线电爱好技术交流9开关电源讨论群LED照明应用、电源无线电爱好技术交流4无线电爱好技术交流8无线电爱好技术交流10无线电爱好技术交流11

粤公网安备 44030702001224号

GMT+8, 2022-8-2 10:53 , Processed in 0.140400 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

返回顶部