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

STM32 HAL库使用SPI+DMA驱动WS2812优化方案  

[复制链接]
waiman-156411 发布时间:2018-2-6 15:03
本帖最后由 waiman-156411 于 2018-2-6 17:57 编辑

看到zoomdy 的驱动例子启发 https://www.stmcu.org.cn/module/forum/thread-610279-1-1.html
效果虽然不错,可以节省不少MCU资源,但用一个byte的SPI数据代替WS2812一个bit,很浪费RAM资源,而且生成像素的效率也很慢。
2017-01-21 09_12_30的屏幕截图.png

仔细一看发现 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速度及极性配置:
捕获.PNG


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

驱动整盘WS2812都很轻松
微信图片_20180206141317.jpg    微信图片_20180206135738.jpg

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


SPI_DMA_WS281X.rar

下载

584.49 KB, 下载次数: 1085

驱动库

评分

参与人数 4 ST金币 +16 收起 理由
yogolu + 5 赞一个!
hacker + 2 赞一个!
g921002 + 4 很给力!
Inc_brza + 5 赞一个!

查看全部评分

1 收藏 28 评论77 发布时间:2018-2-6 15:03

举报

77个回答
toofree 回答时间:2018-2-6 15:43:14
这个思路很有想法,应该加精
waiman-156411 回答时间:2018-2-6 17:56:19
楼上代码有个BUG,回去修改后再放上
waiman-156411 回答时间:2018-2-6 21:28:57
修补改BUG后的代码:
SPI_DMA_WS281X.rar (584.8 KB, 下载次数: 836)
onev 回答时间:2018-2-8 11:17:30
我只想知道楼主图中的代码显示是MDK的还是其他文本编辑器的,如果是MDK的话配置高亮的配置文件是否可以发我一份?如果是文本编辑器看起来不像是vs code  更不是sublime text。
zero99 回答时间:2018-2-12 14:16:58
感谢分享,已汇总到2月技术原创  https://www.stmcu.org.cn/module/forum/thread-614799-1-1.html
waiman-156411 回答时间:2018-2-13 01:05:25
onev 发表于 2018-2-8 11:17
我只想知道楼主图中的代码显示是MDK的还是其他文本编辑器的,如果是MDK的话配置高亮的配置文件是否可以发我 ...

mdk的,论坛里有人分享过了,你可以搜一下
hacker 回答时间:2018-2-26 14:32:08
非常棒的想法,赞一个
jjbboox 回答时间:2018-2-26 15:14:01
厉害,这个帖子要收藏起来的。
好方法。
板子粉丝 回答时间:2018-2-28 09:36:53
先看看

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

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