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

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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版