最简WS2812类似RGB灯条驱动方法
本帖最后由 FCMSZ 于 2023-6-19 15:03 编辑目前RGB彩灯用途非常广泛,从玩具类、键鼠的背光、绿化景观到大厦外墙灯光等,都有应用。RGB彩灯内部由一颗驱动芯片+RGB LED构成,再由这样的彩灯串联构成灯条,由更多的灯条组成矩阵,从而由点至线再至面,达成各种绚丽的效果。
https://bbs.21ic.com/data/attachment/forum/202306/17/105445x44awrzpp0n8e6in.png.thumb.jpgLED灯的驱动IC一般采用单线、归零码协议。其数据格式的基础是0码、1码和RESET码,如下图所示:
https://bbs.21ic.com/data/attachment/forum/202306/17/105453cvof3kw74ztzrrrw.png.thumb.jpg驱动IC接收以上述格式码组成的RGB数据,用来驱动LED灯以及进行转发。
https://bbs.21ic.com/data/attachment/forum/202306/17/105504ivftjfgk2v00jtt8.png.thumb.jpgMCU在驱动此种类型的灯条时,一般采用以下三种方式:
优劣
MCU+CPLD
CPLD并行处理,支持更多的灯条条数
成本高
PWM
成本低
* 软件复杂* ROM占用大
SPI成本低
* 软件复杂* ROM占用大* MCU的SPI资源紧张
注:ROM占用大的原因是RGB的1位,在MCU使用PWM或SPI时,至少占用4bit以上的空间。由上表可见,三种方式都不是最优。
为了提高MCU驱动RGB灯条的效率、降低成本,闪芯微自主设计了RGB灯条驱动接口(LLSI),其主要特征如下:
[*]7个LLSI通道(可驱动7个LED灯条),带空闲极性控制
[*]每个LLSI通道包含4级深度的发送FIFO
[*]可配置的数据周期和编码
[*]可配置的复位宽度
[*]可配置的空间电平
[*]支持RGB、GRB、RGBW、GRBW数据格式
[*]支持自由数据格式(可兼容未来任何协议!)
[*]支持自动发送附加数据(例如增益控制等)
[*]支持DMA
[*]节省FLASH空间
有了上述特点的加持,使得闪芯微的MCU在不增加外部器件的情况下,轻松驱动最多2048*7=14K个RGB LED!并且软件的开发极其简单,也不加重MCU的程序负担。
需要了解哪些MCU集成了LLSI接口,以及各型号MCU的资源情况,可至闪芯微官网:http://www.flashchip.com.cn/fcm32f0xx.html 。目前这一系列新的FCM32 MCU已可提供样片,可联系闪芯微索取。
带这个接口的几个型号,官网貌似还没有datasheet、例程、开发板放出来? Diyer123 发表于 2023-6-19 23:23
带这个接口的几个型号,官网貌似还没有datasheet、例程、开发板放出来?
从F072开始带LLSI,都有放规格,除了F096。
(F096因为带HUB原因,暂时不开放规格,可申请。)
IC在7月份会批量上市,即可提供开发板。
现在也可以申请测试版的开发板。 灯数不多、刷新不很快的,普通MCU就可以了。
我用2812做得最多的是音乐电平指示,2x72灯(因为买的一串灯调144个灯)。 coody 发表于 2023-6-21 10:51
灯数不多、刷新不很快的,普通MCU就可以了。
我用2812做得最多的是音乐电平指示,2x72灯(因为买的一串灯调 ...
没错,简单点的,肯定普通MCU能直接驱动,否则没有这个接口之前类似的灯条是怎么用起来的?
这个专用接口主要有2个好处:
驱动更多数目的灯条
提高效率,减轻MCU负担
就像SPI、IIC、UART等,IO也可以模拟,但不如硬件接口方便。 最简单的就是IO驱动。我做了大量的音频电平条,就用2812. 好吧,大哥,感觉我俩对“简单”的理解不一样。
您大概指的是硬件的简单吧,只用IO口,确实什么MCU都具备这个条件。如果从这个维度来说,SPI、IIC、UART等也都是软件可以实现的,甚至在AVR上,连USB都实现了,但我们不能凭软件实现USB,就说明比硬件USB来得简单,对吧?
页:
[1]