驱动RGB灯带MCU推荐

本文仅分享个人工作中积累的经验,无任何商业行为,若有更好的方案欢迎交流共同进步。


一、RGB灯带驱动IC简介

市面上存在多种RGB驱动IC,比如:WS2812,YX1903B,TC1903, SM16703P等;除此之外还有一种RGBW驱动IC,其相比上述驱动IC多了一个w驱动通道,工作方式大同小异。最近各家MCU急缺的情况下,各位在选型时一定要注意选取IC的归零码脉宽时间(一般是宽脉宽时间为900ns,短脉宽时间为300ns,参数允许波动范围可能会因IC存在一定差异),这样能够保证最快的速度更换IC。

二、MCU推荐

1.模拟时序驱动

本人使用赛元,新塘,沁恒微等国产51已模拟方式实现驱动RGB灯带。需要注意的地方是在发送一帧数据时关闭总中断,避免模拟数据脉宽时间被干扰。一般选择主频可达24M以上,同时需要根据驱动RGB灯带长度选取RAM资源大小。模拟实现核心代码如下所示:

#define  cBIT1 {P26=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();P26=0;}
#define  cBIT0 {P26=1;_nop_();P26=0;_nop_();_nop_();}
UINT8 bdata LED_DATA;
sbit DAT_bit0 = LED_DATA^7;
sbit DAT_bit1 = LED_DATA^6;
sbit DAT_bit2 = LED_DATA^5;
sbit DAT_bit3 = LED_DATA^4;
sbit DAT_bit4 = LED_DATA^3;
sbit DAT_bit5 = LED_DATA^2;
sbit DAT_bit6 = LED_DATA^1;
sbit DAT_bit7 = LED_DATA^0;
void sRGBSend(unsigned char dat)
{LED_DATA = dat;if(DAT_bit0){cBIT1}else{cBIT0}if(DAT_bit1){cBIT1}else{cBIT0}if(DAT_bit2){cBIT1}else{cBIT0}if(DAT_bit3){cBIT1}else{cBIT0}if(DAT_bit4){cBIT1}else{cBIT0}if(DAT_bit5){cBIT1}else{cBIT0}if(DAT_bit6){cBIT1}else{cBIT0}if(DAT_bit7){cBIT1}else{cBIT0}
}

上述关于BIT0和BIT1使用NOP个数因MCU不同可能会存在差异,需使用示波器自行测试验证。

2.硬件外设实现

对于STM32等32位强大类型的MCU,则可通过SPI,PWM功能实现驱动,但是对于低成本的产品此类MCU成本较高,这里不再赘述。锦锐科技的CA51F5系列MCU,CA51F5系列MCU自带两路级联LED驱动通道(比较可惜是此系列MCU无ADC功能,据说后期开发)。CA51F5系列初始化以及数据发送代码如下:

void sRGBInit(void)
{//级联驱动RGB初始化PWM2DIVH = 0; PWM2DIVL = 20;      //周期配置寄存器PWM2DUTH = 0; PWM2DUTL = 5;     //设置0码时间LEDUTH = 0; LEDUTL = 14;      //设置1码时间 PWM2CON = 0x3A;PWM2CKD = 0;              //PWM2工作不分频       LEDWTMH = 0;LEDWTML = 5;        //设置暂停时间PWMEN = 4;             //PWM2使能EA = 1;} void sRGBSendData(u8 *pRGBDataBuff,u16 wBufferLen)
{u16 wTemp;for(wTemp = 0;wTemp <wBufferLen;wTemp++ ){while(LEFLG & 0x40);LEDAT1 = *(pRGBDataBuff+bTemp);}
}

三、总结

驱动此类IC其实很简单,我们只需要研究透彻其工作原理即可。分享给大家一些驱动思路供大家进行学习,快速找到适合自己产品的开发方案,希望我们可以一起共同学习进步(可私信加V)。

驱动RGB灯带MCU阐述相关推荐

  1. FPGA驱动RGB灯带WS2812B

    记录一下短学期做的东西 -- FPGA驱动RGB灯带WS2812B 设计目标 1.有多种模式,按键调节模式等参数: 2.模式1:红绿蓝白四色循环显示,速度.亮度可调: 3.模式2:7彩虹+白色,闪烁, ...

  2. JL690X(2)驱动RGB灯带

    AC690X驱动WS2812(SM16703P)点亮RGB灯带 在使用AC690X系列蓝牙时,需要设计驱动几十个RGB灯带的程序,经一段时间学习后成功驱动,现在把实现过程分享给大家共同学习. 1.芯片 ...

  3. PWM+DMA驱动SK6812MINI灯带

    SK6812MINI是一款常见的RGB灯带,它的工作状态稳定,驱动简单,通过简单的代码即可实现流动彩虹灯的功能.下面让我们来看一下它的具体实现流程吧! 1.硬件配置 PWM配置: 选择对应IO口的TI ...

  4. esp32 micropython 控制ws2812 RGB灯带

    ws2812RGB灯带 ==注意:==灯带需要三个线头都接好,然后程序输出控制后才能亮,只是正负极插好不会亮的 连接走线: esp32 RGB灯带 5v引脚 母头电源处 gnd 母头gnd D12引脚 ...

  5. 基于arduino uno + WS2812b RGB灯带控制程序三

    基于arduino uno + WS2812b RGB灯带控制程序三 下面这个函数,中的NEO_GRB + NEO_RGB参数搭配不一样,显示的效果和变换的样式就有差异,自由组合测试看效果. Adaf ...

  6. 51单片机-RGB灯带

    这个实验是灯带上有30颗RGB灯,每颗芯片控制3颗RGB灯,要使这30颗灯全亮蓝色. 这个DIN就是输入口,它输出高电平或者低电平,然后将高低电平分配给OUTR(红),OUTG(绿),OUTB(蓝), ...

  7. RGB灯带简单案例 - 玛克君arduino

    #include <Adafruit_NeoPixel.h> //128盏灯 信号口7 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(128, ...

  8. STM32F103ZE开发板WS2812B RGB灯带调试

    调试时采用5颗灯珠的灯带. WS2812B每一颗灯都由24位控制,分为8位G,8为位R,8位B.从0到0xFF,数值越大那一种颜色越亮.发送的信号根据高低电平的时间分为1,0,和RES信号.103开发 ...

  9. ws2812/6810 RGB灯带在高通芯片上的控制

    前段时间开发ws2812驱动.网上有一些参考,但是全部是在单片机上用pwm实现,估计是考虑实时性和时间高精度要求. 而我的项目的架构中,就只有一个高通的8939,并且只有一路pwm,还被红外ir给霸占 ...

最新文章

  1. 【blender教程】从头到尾全流程创建一辆吉普车
  2. Prewitt 边缘检测
  3. 【转载】知乎答案----孙志岗----Google 发布了程序员养成指南,国内互联网巨头是否也有类似的指南和课程推荐...
  4. java 堆内存不释放_Java可以写入/读取已释放的堆内存吗?
  5. 在Java错误产生之前对其进行处理的新方法
  6. 文件的删除和文件信息的读取
  7. 对运算符重载的函数2
  8. 驱动加载工具(InstDrv - V1.3中文版)
  9. 贝叶斯网络是神经网络吗,贝叶斯网络和神经网络
  10. balenaEtcher-1.5.70可能是最好用的镜像写U盘工具 img to usb dmg to usb支持多种格式内附截图介绍多平台均有
  11. 企业如何布局数字化营销,打造私域运营闭环实现增长?
  12. 纵列式双旋翼直升机飞行控制律建模
  13. google服务框架 闪退_华为的谷歌服务打不开怎么办?
  14. mac网络设置_如何在Mac上设置和使用网络位置
  15. 矩阵快速幂: 网易2017实习生编程题 魔力手环
  16. KEIL 不使用microlib 报错__stdin __stdout重复定义
  17. 使用线性回归,岭回归,Lasso回归预测鲍鱼年龄
  18. php srs api,srs 身份认证
  19. obsidian和zotero联动无法跳转zotero
  20. 3D游戏开发可视化渲染调试工具-KylinsGraphicsDebugger

热门文章

  1. 【例题 8-4 UVA - 11134】Fabled Rooks
  2. 喜欢林肯公园(likin park)
  3. 计算机通识必修课程学什么内容,计算机公共必修课《大学计算机基础》课程教学大纲...
  4. Disney Springs - 迪士尼之泉
  5. ubantu查看设备序列号
  6. 关于Linux系统中文件名中带有空格问题分析
  7. 启动Intel TV-x设置
  8. 某电子计算机有400个终端,(第四章)大数定率与中心极限定理习题.doc
  9. 转载 | 在阿里做了3年多程序员,我究竟学到了什么?
  10. android u盘怎么打开文件夹图标不显示不出来了,如何解决U盘图标不显示但资源管理器中还能看到U盘...