一、实验目的:
1.1了解STM32F103ZET6单片机的SPI接口及其配置方法。
1.2掌握WS2812B灯带的控制原理及其通信协议。
1.3通过SPI接口实现与WS2812B灯带的通信,控制灯珠显示不同颜色及效果。
二、SPI工作原理
2.1SPI介绍
SPI,是Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。
SPI通信中可作为从机也可以作为主机,这取决于硬件设计和软件设置:当器件作为主机时,使用一个IO引脚拉低相应从机的选择引脚(NSS),传输的起始由主机发送数据来启动,时钟(SCK)信号由主机产生。通过MOSI发送数据,同时通过MISO引脚接收从机发出的数据;当器件作为从机时,传输在从机选择引脚(NSS)被主机拉低后开始,接收主机输出的时钟信号,在读取主机数据的同时通过MISO引脚输出数据。
2.2SPI框图
2.3SPI通信原理
如图所示,通常,SPI通过4个引脚与外部器件相连:
● MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。
● MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。
● SCK: 串口时钟,作为主设备的输出,从设备的输入。
● NSS: 从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从设备的NSS引脚可以由主设备的一个标准I/O引脚来驱动。
2.4SPI内部结构图
2.5 SPI数据时钟时序图
2.6SPI中断
三、WS2812B简介
WS2812B是一种集成了控制电路和RGB LED的智能灯珠,通过单线协议进行控制。每个灯珠都有自己的控制单元,可以通过串行数据控制其颜色和亮度。控制信号由一系列高低电平的脉冲组成,每个脉冲代表一个位,数据以24位(8位红色,8位绿色,8位蓝色)的形式传输。
3.1引脚介绍
引脚功能:
- 当然,在使用的过程中,我们往往会使用不止一个LED灯,会将多个灯级联成灯带或者灯板,我们这次使用的就是灯板。
3.2灯板级联方式
其中DIN作为数据的输入端,每个LED需要24位数据控制,多出的数据会通过DOUT引脚传递给下一个LED,以此类推,当WS2812接收到280us以上的低电平时,数据被写入