【嵌入式应用】WS2813-Mini应用踏坑记

本文详细讲述了WS2813-MiniLED灯珠在封装选择、原理图设计、电平匹配以及驱动程序设计中的注意事项,特别强调了不同型号的区别、接口兼容性及高速时序处理的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

WS2813-Mini是一种可控发光的LED灯珠,可以单独也可以串连使用,用来做氛围灯或者点阵显示。整理来说还是很不错,不过有几个点需要注意一下,不然真的会哀叹是个坑啊。


提示:以下是本篇文章正文内容,下面案例可供参考

一、关于封装

很多的同学会用嘉立创的封装来进行设计,但是需要注意的是,嘉立创上WS2813-Mini的正负极丝印是反着的。这样子在SMT的时候,嘉立创的工程师通常会按照丝印的方向进行摆放。然后你就会发现点不亮,欲哭无泪。
在这里插入图片描述

WS2813-Mini 还有一个版本是WS2813B-Mini。从引脚的定义和电气的特性上都有一些区别,如果用错的话也是点不亮的。但是很不幸的是,嘉立创上目前可能会存在一些混料,完全按照WS2813的手册设计的话,有可能会出现问题。这个就很难受,因此设计的时候最好是兼容设计。

二、原理图设计

WS2813B-MINI
WS2813-MINI
这里可以看到主要的区别就是1角,WS2813的一脚是VCC,手册上说串一个保护电阻到VDD,有可能是可以调节电流的。但是WS2813B是一个备用的IO输出。
如果芯片用错,可能会影响输入的I/O状态。

最好就是将1脚空余,这样无论是哪种IC,都可以正常使用。
在这里插入图片描述

三、电平匹配

WS2813-Mini的供电范围是+3.7~+5.3V,其I/O的高低电平判断会随VDD进行变化,高电平需要大于0.7VDD,低电平需要小于0.3VDD。现在的ARM芯片的管脚一般是3.3V,如果IO直驱且要保证状态识别正常的话,供电电压最好不要超过4.7V。如果你直接使用5V供电的话,那么有可能出现LED显示状态异常的情况,很有可能就是电平匹配的问题。
建议是串一个二极管,或者直接提供合适的DC源。二极管的选择,可以选择管压降大一点的,如1N4007这种的。

四、驱动程序设计

驱动程序的设计上,一开始也是没注意,看手册发现其要求的时序还是非常的快的。
在这里插入图片描述
基本都是在几百个ns的范围上。而像是STM32单片机,其I/O的实际翻转速度应该最大10MHz,也就是100个ns左右。而且这么高的翻转速度是不是要考虑线长的一些因素?
实测约半米的线长,还是能够实现驱动的。
另外就是程序的编写,基于STM32F103来写的话,内核的速度在72MHz,单指令大约在14ns左右,驱动的话肯定不能封装到函数中去,因为一个函数的调用还有入栈出栈的操作,就要耗费十几个周期,就没办法可控了。借鉴网上的做法使用NOP的方式。具体其翻转的时间还需要借用示波器或者逻辑分析仪抓取后调整。

//晶振72M,1/72≈0.014us=14ns
#define delay_14ns()      __nop()

#define delay_56ns()      delay_14ns();delay_14ns();delay_14ns();delay_14ns()
#define delay_224ns()      delay_56ns();delay_56ns();delay_56ns();delay_56ns()
#define delay_896ns()      delay_224ns();delay_224ns();delay_224ns();delay_224ns()

此外在FreeRTOS这种操作系统内使用的话,执行LED驱动的时候,还要使用临界区保护来防止任务切换打断IO的时序。


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的Lunzi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值