资讯详情

驱动RGB灯带MCU阐述

驱动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{ 
        }
  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灯带灯条单边出线连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台