一种可驱动多组RGB灯的MCU及其驱动方法技术

技术编号:30180172 阅读:63 留言:0更新日期:2021-09-25 15:42
本发明专利技术公开了一种可驱动多组RGB灯的MCU及其驱动方法,实现在MCU上对多组RGB灯进行灵活驱动,设置消隐定时器和中断,显示驱动周期结束时触发中断,硬件关闭列引脚输出,消隐定时器开始定时,执行中断用软件加载下一行灯效对应的列引脚驱动信号的PWM波数据;消隐周期结束时硬件同步开启所有PWM模块工作,进入下一轮显示驱动周期。在显示驱动周期和消隐周期,PWM波模块与消隐定时器分别轮流接续工作。充分利用消隐周期加载下一行PWM波数据,解决RGB灯各引脚的同步驱动问题,在完全不影响驱动效果的条件下,还可以更加灵活地配置驱动时间和数据到每一轮扫描中,对缓冲区的大小要求极低,硬件电路更加简单,成本更低。成本更低。成本更低。

【技术实现步骤摘要】
一种可驱动多组RGB灯的MCU及其驱动方法


[0001]本专利技术涉及单片机领域,尤其涉及一种可驱动多组RGB灯的MCU及其驱动方法。

技术介绍

[0002]绚丽多彩的灯效不仅带给用户视觉享受,同时会让产品看起来更酷炫、有科技感,所以现在很多电子产品厂家将此作为一个卖点来提升产品档次。多组RGB灯组合被常用来实现灯效,通过对每一个RGB灯中红、绿、蓝三光的调节达到各种色彩明暗的灯光。
[0003]早期通过软件代码驱动多组RGB灯,但这种方式对软件执行时间要求很高,不但要动态改变驱动引脚的PWM占空比,而且要求一个RGB的3端同步驱动,占用CPU资源大,定时间隔也无法保证,导致显示易闪烁且效果差。所以现有常规方式都是由硬件电路实现RGB的扫描驱动功能,但该方法不够灵活,扫描时间固定,需要定义包含全部所有行周期的较大RAM区域来存储扫描数据,通过硬件DMA自动调取数据对应驱动一轮完整的RGB灯,占用空间大、成本高、灵活性差。

技术实现思路

[0004]专利技术目的:为了解决现有技术中,通过硬件方法实现RGB扫描驱动不够灵活,扫描时间固定,存储空间大的问题,本专利技术提供一种在MCU上驱动多组RGB灯的方法。
[0005]本专利技术另一目的是提供一种可驱动多组RGB灯的MCU。
[0006]技术方案:一种在MCU上驱动多组RGB灯的方法,包括以下步骤:步骤一、定义消隐定时器,所述消隐定时器用于对消隐周期定时;步骤二、初始化所有行引脚与列引脚,开启扫描,开启所有PWM模块工作;步骤三、硬件开启所有列引脚输出,PWM模块同步输出三组PWM波驱动列引脚,进入显示驱动周期;步骤四、待三组PWM波周期结束时,触发中断,软件执行中断事件,硬件关闭所有列引脚输出,消隐定时器开始定时,进入消隐周期;所述中断事件为:选择另一个GPIO口作为下一个行引脚;执行软件加载指令,将下一行对应的列引脚的PWM波数据传入PWM模块中,中断返回;步骤五、消隐定时器控制消隐周期结束,开启所有PWM模块工作,返回步骤三。
[0007]进一步地,步骤四中,执行软件加载指令的具体方法为:软件加载指令仅包含将源缓冲区中的PWM波数据读取至内部寄存器;同时PWM模块对数据传输进行监测,当在消隐期间监测到有PWM波数据传输时,自动将PWM波数据送入PWM硬件锁存器中,且源缓冲区指针自动增量。
[0008]进一步地,步骤四中,所述PWM波数据包括控制亮度、红色、绿色、蓝色四组PWM数据,PWM模块用于分别将控制亮度的PWM数据与控制红色、绿色、蓝色的PWM数据逻辑与计算,形成R、G、B三组PWM波并输出。
[0009]进一步地,步骤四中,还包括按键扫描检测,检测行引脚、列引脚上连接的按键是
否被按下。
[0010]一种可驱动多组RGB灯的MCU,包括:至少两个行引脚及行引脚驱动电路;三组且每组至少4个PWM模块、三组且每组至少4个列引脚及三组且每组至少4个列引脚驱动电路,PWM模块与列引脚驱动电路连接;PWM模块用于在显示驱动周期输出PWM波驱动列引脚,在PWM波周期结束时触发中断,并开启消隐定时器定时;消隐定时器,用于消隐周期的定时,并在消隐周期结束时开启所有PWM模块工作;处理器,用于在中断触发时执行中断事件,所述中断事件为:选择另一个GPIO口作为下一个行引脚;执行软件加载指令,将下一行对应的列引脚的PWM波数据传入PWM模块中。
[0011]进一步地,PWM模块包括硬件锁存器,硬件锁存器用于存储PWM波数据。
[0012]进一步地,步骤四中,所述PWM波数据包括控制亮度、红色、绿色、蓝色四组PWM数据,PWM模块用于分别将控制亮度的PWM数据与控制红色、绿色、蓝色的PWM数据叠加,形成R、G、B三组PWM波并输出。
[0013]进一步地,设MCU共有GPIO口n个,n个GPIO口均可作为行引脚。
[0014]一种MCU驱动多组RGB灯的装置,包括上述MCU及至少八个RGB灯,各RGB灯呈矩阵连接,RGB灯包括公共端、R端、G端及B端,各RGB灯的公共端与MCU的行引脚连接,各RGB灯的R端、G端及B端分别与三组列引脚连接。
[0015]本专利技术提供了一种可驱动多组RGB灯的MCU及其驱动方法,相比较现有技术,具有以下有益效果:(1)扫描更加灵活。可以随时更改需扫描的行引脚,MCU的所有GPIO口均可选,可随时对扫描行进行增减、跳过、选择、改变顺序等操作,操作简单便捷。充分利用行引脚切换的消隐时间段,既避免了前后两组显示互相干扰的同时,又将消隐时间用于加载数据、扫描按键等,设置中断触发,用软件加载下一时刻列引脚驱动信号的PWM波数据,用硬件同步开启所有列引脚上的PWM模块工作,解决RGB灯各引脚的同步驱动问题,在完全不影响驱动效果的基础上,实现更加灵活地配置驱动数据到每一轮扫描中。
[0016](2)灵活设置显示周期和消隐周期,可随时改变。在完全不影响驱动效果的基础上,实现更加灵活地配置驱动时间到每一轮扫描中。
[0017](3)数据来源更加灵活。PWM波数据可来源于ROM或RAM,也可随时进行更改。
[0018](4)缓冲区小。因为硬件锁存器每次仅需要加载一行灯效的列引脚数据,在这一行的行引脚有效期间,改变下一行的列引脚数据,并在行引脚切换时再加载下一行灯效的列引脚数据;且数据直接进入PWM模块,外部无需RAM用于DMA,所以对存储区域的大小要求极低,对硬件资源要求更低,成本更低。
[0019](5)实现在MCU上对多组RGB灯进行扫描驱动,优化了数据加载机制,采用软硬结合的方案,执行软件加载指令,由硬件自动保存数据和地址增量,达到纯硬件DMA的速度且保持了源数据的灵活性。
附图说明
[0020]图1为本专利技术硬件部分的流程图;图2为本专利技术软件部分的流程图;
图3为实施例中矩阵式RGB灯的连接情况;图4为驱动芯片的内部结构示意图;图5为一轮完整的扫描周期各引脚输出信号示意图。
具体实施方式
[0021]下面结合附图和具体实施例对本专利技术做进一步解释说明。
[0022]实施例一:驱动128个共阳RGB灯实现彩色变换效果。
[0023]如图3,每个RGB灯有4个引脚,一个公共共阳引脚A端,3个色彩控制引脚分别是R端、G端、B端。将128个RGB灯所有引脚标记为A0

A127、R0

R127、G0

G127、B0

B127。如图2所示128个RGB灯呈矩阵式连接排布,总共需要MCU提供16个行引脚(COM引脚)COM0

COM15和24个列引脚(SEG引脚)SEG0

SEG23。由于是共阳灯,在COMx端还需增加PMOS管。另外,还可以根据应用场景的需要,在MCU的行引脚和列引脚上连接按键,在驱动RGB灯显示的同时,还可以进行按键的扫描检测。
[0024]如图4,MCU内部包括:16个行引脚本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在MCU上驱动多组RGB灯的方法,其特征在于,包括以下步骤:步骤一、定义消隐定时器,所述消隐定时器用于对消隐周期定时;步骤二、初始化所有行引脚与列引脚,开启扫描;步骤三、硬件开启所有PWM模块工作,开启所有列引脚输出,进入显示驱动周期,PWM模块同步输出三组PWM波驱动列引脚;步骤四、待三组PWM波周期结束,硬件关闭所有列引脚输出,消隐定时器开始定时,进入消隐周期,触发中断,软件执行中断事件,所述中断事件为:选择另一个GPIO口作为下一个行引脚,执行软件加载指令,将下一行对应的列引脚的PWM波数据传入PWM模块中,中断返回;步骤五、消隐定时器控制消隐周期结束,返回步骤三。2.根据权利要求1所述的在MCU上驱动多组RGB灯的方法,其特征在于,步骤四中,执行软件加载指令的具体方法为:软件加载指令仅包含将源缓冲区中的PWM波数据读取至内部寄存器;同时PWM模块对数据传输进行监测,当在消隐期间监测到有PWM波数据传输时,自动将PWM波数据送入PWM硬件锁存器中,且源缓冲区指针自动增量。3.根据权利要求1或2所述的在MCU上驱动多组RGB灯的方法,其特征在于,步骤四中,所述PWM波数据包括控制亮度、红色、绿色、蓝色四组PWM数据,PWM模块用于分别将控制亮度的PWM数据与控制红色、绿色、蓝色的PWM数据逻辑与计算,形成R、G、B三组PWM波并输出。4.根据权利要求1或2所述的在MCU上驱动多组RGB灯的方法,其特征在于,步骤四中,还包括按键扫描检测,检测行引脚、列引脚上连接的按键是否被按下。...

【专利技术属性】
技术研发人员:王春华
申请(专利权)人:南京沁恒微电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1