你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 HAL库使用SPI+DMA驱动WS2812优化方案

[复制链接]
STMCU小助手 发布时间:2022-1-6 22:00
效果虽然不错,可以节省不少MCU资源,但用一个byte的SPI数据代替WS2812一个bit,很浪费RAM资源,而且生成像素的效率也很慢。


仔细一看发现 WS2812一个bit 周期是:
         TH+TL=1250ns (±600ns), Min=650ns,Max=1850ns
如果把SPI提速到4Mbits/S 的时候,SPI一个bit的周期是250ns,刚好和符合WS2812 T0H或T1L 400ns ±150ns范围。SPI 4个bit的周期刚好1000ns,刚好可以满足WS2812的时序需求。
SPI=0x8 等于 WS2812的 0
SPI=0xE 等于  WS2812的 1
也就变成一个SPI的byte,可以表示2个Ws2812的2个bit。一RGB像素颜色只需要 24bit/2bit = 12byte


SPI速度及极性配置:



SPI只需要配置主机只发模式,这样可以节省一个IO口


驱动整盘WS2812都很轻松
   

驱动库说明:
例子使用Stm32CubMx 4.23,STM32L151C8T6,IAR/MDK工程
程序移植了Adafruit NeoPixel库函数,
采用HAL库驱动方式(struct),可以方便移植到其他STM32芯片上,
只需要分配多个struct变量,硬件稍微改下,就能分时复用,控制多串灯珠。


收藏 评论0 发布时间:2022-1-6 22:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版