瑞萨RA0单片机连载之SPI驱动WB2812B

嵌入式系统   作者:lulugl 时间:2025-07-15来源:EEPW

1   前言

WS2812B是一种数字可编程LED灯条,也被称为NeoPixel。它由RGB(红、绿、蓝)三种颜色的LED组成,并集成了控制电路和信号处理功能。每个WS2812B LED 都有一个唯一的地址,并可以通过单个数据线进行串联连接。

WS2812B具有以下特点:

高度可编程性:每个LED可以独立地设置颜色和亮度,因此可以实现各种动态效果和彩色变化。

简单的控制接口:WS2812B使用单个数据线进行通信,通过发送特定的序列来控制每个LED的颜色和亮度。

低功耗:WS2812B采用高效的LED驱动技术,具有较低的功耗,适合电池供电的应用。

灵活的应用:WS2812B可广泛应用于室内装饰、灯光艺术、电子产品原型设计等领域,具有丰富的创意空间和应用场景。

24bit数据结构


G7 G6 G5 G4 G3 G2 G1 G0 R7 R6 R5 R4 R3 R2 R1 R0 B7 B6 B5 B4 B3 B2 B1 B0


注:高位先发,按照GRB 的顺序发送数据。

2   引脚图

1752577683199524.png

引脚功能

序号
符号
管脚名

功能描述

1
VDD
电源
供电管脚
2
DOUT
数据输出
控制数据信号输出
3
VSS

信号接地和电源接地
4
DIN
数据输入
控制数据信号输入


当然,在使用的过程中,我们往往会使用不止一个LED灯,会将多个灯级联成灯带或者灯板,我们这次使用的就是灯板。

具体级联方式如下:

典型应用数据:外围电路不需要加滤波电容

1752577967649450.png

其中DIN作为数据的输入端,每个LED需要24位数据控制,多出的数据会通过DOUT 引脚传递给下一个LED,以此类推,当WS2812 接收到280us 以上的低电平时,数据被写入LED,灯的颜色改变。

以下是数据的表示方法:

数据传输时间

T0H
0码,高电平时间
220ns~380ns
T1H
1码,高电平时间
580ns~1μs
T0L
0码,低电平时间
580ns~1μs
T1L
1码,低电平时间
580ns~1μs
RES
帧单位,低电平时间
280μs以上

时序波形图

输入码型:

image.png

连接方法:

1752578307315603.png

此次我采用SPI 的方式来驱动。SPI的时钟调整为8MHz,发送一字节正好是1.25us,给ws2812 发送0即通过SPI 总线发送11000000b,发送1 即通过SPI 总线发送11111100b,非常巧妙的一种方式。

根据以上原理,我先配置SPI的stack如下:

1752578342755780.png

经查看原理图,配置SPI 的MOSI 为P101。

生成工程后,编写代码ws2812b.c 如下:

image.png

image.png

1753082066985773.png

1753081795203005.png

image.png

ws18b20c.h:

1753082140772342.png

在主函数中添加测测试代码如下:

image.png

image.png

代码的主要思路是,将写入buff先清零,然后向数据中写信指定个数的RGB 数据,最后刷新到SPI 总线之中。

(本文来源于《EEPW》202507)

关键词: 202507 瑞萨 RA0单片机 MCU

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版