驱动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{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中生动显示,因此我也对RGB有特殊的喜好,因此将来我将使用此RGB灯。一个是照明,另一个是大气。通过自动链接,可以极大地丰富房屋中的颜色〜RGB(红色,绿色和蓝色)通过将三种颜色按比例混合来显示不断变化的颜色。RGBW具有比RGB更多的白光,并且RGBWW具有比RGBW(冷和暖光)更多的色温调节。我设计的板应该准确地称为RGB驱动器板,但是Xbao上可用的RGB驱动器板基本上是三向RGB,并且家用照明最常见的应用场景仍然是白光。RGB可以通过三个颜色已满,并且调整了白光,但是亮度不够。W可使亮度增加一级。WW可以在高亮度下调节色温。那些使用过iPhone的人必须知道iOS的原始彩色显示。可以根据外部光线调节屏幕。不同的色温可使眼睛适应各种环境,以恢复色彩并改善阅读体验;在家里,我特别喜欢温暖的光线的温暖感觉,因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。W可使亮度增加一级。WW可以在高亮度下调节色温。那些使用过iPhone的人必须知道iOS的原始彩色显示。可以根据外部光线调节屏幕。不同的色温可使眼睛适应各种环境,以恢复色彩并改善阅读体验;在家里,我特别喜欢温暖的光线的温暖感觉,因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。W可使亮度增加一级。WW可以在高亮度下调节色温。那些使用过iPhone的人必须知道iOS的原始彩色显示。可以根据外部光线调节屏幕。不同的色温可使眼睛适应各种环境,以恢复色彩并改善阅读体验;在家里,我特别喜欢温暖的光线的温暖感觉,因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。WW可以在高亮度下调节色温。那些使用过iPhone的人必须知道iOS的原始彩色显示。可以根据外部光线调节屏幕。不同的色温可使眼睛适应各种环境,以恢复色彩并改善阅读体验;在家里,我特别喜欢暖光的温暖感觉,因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。WW可以在高亮度下调节色温。那些使用过iPhone的人必须知道iOS的原始彩色显示。可以根据外部光线调节屏幕。不同的色温可使眼睛适应各种环境,以恢复色彩并改善阅读体验;在家里,我特别喜欢温暖的光线的温暖感觉,因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。可以根据外部光线调节屏幕。不同的色温可使眼睛适应各种环境,以恢复色彩并改善阅读体验;在家里,我特别喜欢暖光的温暖感觉,因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。可以根据外部光线调节屏幕。不同的色温可使眼睛适应各种环境,以恢复色彩并改善阅读体验;在家里,我特别喜欢温暖的光线的温暖感觉,因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。因此RGBWW是必不可少的。将来,我还将与环境传感器配合使用,以达到与iPhone相同的调光效果,并根据不同的照明条件调整室内照明的色温。当然,这种五向板完全向后兼容,并且基本上采用了市场上的所有灯条。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值