找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 10146|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)(12MHz@12T)驅(qū)動(dòng)WS2812B

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 xxd0708 于 2021-2-24 21:43 編輯

本實(shí)驗(yàn)創(chuàng)新點(diǎn):RC電路產(chǎn)生非uS整數(shù)值的延時(shí),使得單片機(jī)可以產(chǎn)生小于脈寬小于1uS的高電平

附件說明:
/*
*程序功能:驗(yàn)證低速率單片機(jī)(51單片機(jī)在12MHZ晶振@12T)驅(qū)動(dòng)WS2812B燈帶的可行性
*
*作者:xxd0708
*發(fā)布網(wǎng)址:www.torrancerestoration.com
*程序版本:V1.00
*編寫時(shí)間 20210224
*聲明:本程序只供學(xué)習(xí)使用,未經(jīng)作者許可,不得用于其它任何用途
*
*硬件說明
*CPU:AT89S52 16K bytes flash ROM, 256 bytes data RAM
*程序版本:V1.00
*晶振頻率:12MHz @12T
*
*以AT89S52為例
*連接方式:
*     單片機(jī)           WS2812B燈帶
*     +5V
*      |         
*     VCC——————|—————————— VCC
*              |
*       1K5電阻*
*              |
*     P00——————|———————————DIN
*              |
*           102電容*
*              |
*     GND——————|———————————GND
*
*原理:?jiǎn)纹瑱C(jī)與燈帶之間接入RC電路,P00工作在開漏工作方式,
*輸出1即上升沿由RC產(chǎn)生延時(shí),數(shù)值由RC參數(shù)決定,而在輸出0下降沿?zé)o延時(shí)
*這樣就有可能產(chǎn)生小于1uS的高電位脈沖
*對(duì)WS2812而言,高電平時(shí)間小于0.45uS為邏輯0,大于時(shí)為邏輯1
*多次調(diào)整RC值使延時(shí)量符合要求(本程序要求上升沿延時(shí)在1.5~1.8us之間)
*
*調(diào)整經(jīng)驗(yàn):
*下載本程序后,根據(jù)發(fā)光情況調(diào)整,發(fā)白時(shí)說明WS2812識(shí)別為全1,延時(shí)量過小,需加大R或C;
*反之,不發(fā)光時(shí)說明識(shí)別為全0,延時(shí)量過小,需減小R或C;
*有彩光發(fā)出時(shí)再精確調(diào)整至合適值時(shí),直到發(fā)光正常(實(shí)測(cè)RC值約為1.5uS,供參考)
*調(diào)試要有耐心,祝好運(yùn) :-)
*
*/

AT89S52_WS2812.zip

23.55 KB, 下載次數(shù): 207, 下載積分: 黑幣 -5

keil工程文件

評(píng)分

參與人數(shù) 1黑幣 +15 收起 理由
lkc8210 + 15 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏23 分享淘帖 頂4 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:885138 發(fā)表于 2021-2-24 21:07 | 只看該作者
第一次上傳附件

AT89S52_WS2812.zip

23.55 KB, 下載次數(shù): 56, 下載積分: 黑幣 -5

keil uv4工程文件

回復(fù)

使用道具 舉報(bào)

板凳
ID:885138 發(fā)表于 2021-2-25 07:04 來自觸屏版 | 只看該作者
我實(shí)驗(yàn)時(shí)RC調(diào)節(jié)過程:
回復(fù)

使用道具 舉報(bào)

地板
ID:885138 發(fā)表于 2021-2-25 07:19 | 只看該作者
我實(shí)驗(yàn)時(shí)RC調(diào)整用了四次(R是上拉電阻,接在vcc與P00之間,C接在P00與GND之間):
1.R取302(3K),C取102(0.001uF),燈全不亮。說明延時(shí)太大,高電平寬度不足,需減小R或C,為方便固定C調(diào)整R;
2.R改102(1K),全亮發(fā)白。說明延時(shí)太小,高電平過寬,0被識(shí)別成1,需加大R;
3.R取222(2K2),燈不亮。需減R;
4.R取152(1K5),發(fā)光正常。(此值供參考,根據(jù)PCB實(shí)際情況調(diào)整)
調(diào)節(jié)后經(jīng)一晚上的運(yùn)行,顯示正常,小馬拉大車實(shí)驗(yàn)初告成功!

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:885138 發(fā)表于 2021-2-25 10:14 來自觸屏版 | 只看該作者
基本原理:
程序中發(fā)位0時(shí)為2uS高電平,發(fā)位1時(shí)為3uS高電平。
由于P00是開漏囗,下拉能力強(qiáng)而上拉能力由外部上拉電阻提供。所以對(duì)端口實(shí)際電壓而言,當(dāng)P00上拉電阻下拉電容時(shí),由0上升到1為較慢的充電過程,而由1到0為快速放電過程(時(shí)間可忽略)。
另一方面,WS2812B輸入帶整形電路,由0轉(zhuǎn)1電壓門限為0.7Vcc,由1轉(zhuǎn)0電壓門限為0.3Vcc。如選擇并調(diào)整好R與C,使C上電壓充至0.7Vcc的時(shí)間大于1.55uS,則單片機(jī)發(fā)位0時(shí),WS2812B實(shí)際收到的高電平時(shí)間小于2-1.55=0.45uS,發(fā)送位1時(shí),多1uS必然大于0.45uS,從而滿足了驅(qū)動(dòng)要求。
原理分析可行后,實(shí)際驗(yàn)證按“先估算、后調(diào)整”的思想進(jìn)行。
由RC充放電原理知,從0到0.7倍電壓的時(shí)間約為1.2倍時(shí)間常數(shù),我們需要大于1.55uS并小于2uS,取1.8uS為宜,故RC約為1.8/1.2=1.5uS。我選取了C為0.001uF的電容(102),R應(yīng)選1.5uS/0.001uF=1.5k的電阻(152)。
為實(shí)驗(yàn)驗(yàn)證,并考慮電器元件的誤差及PCB的附加電容的影響,選2倍及2/3倍為上下限電阻(3k與1k),用二分法逼近,最終運(yùn)行正常為1.5K,與理論值相符。(應(yīng)實(shí)際工作電壓或電路器件不同,允許一定偏差)
附手繪的電平轉(zhuǎn)換原理圖一張:

Screenshot_20210225_094151.jpg (436.73 KB, 下載次數(shù): 207)

Screenshot_20210225_094151.jpg

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:69115 發(fā)表于 2021-3-3 23:11 | 只看該作者
樓主,你真聰明.
回復(fù)

使用道具 舉報(bào)

7#
ID:654946 發(fā)表于 2021-12-11 15:08 | 只看該作者
xxd0708 發(fā)表于 2021-2-25 07:19
我實(shí)驗(yàn)時(shí)RC調(diào)整用了四次(R是上拉電阻,接在vcc與P00之間,C接在P00與GND之間):
1.R取302(3K),C取102 ...

能提供一下電路圖嗎
回復(fù)

使用道具 舉報(bào)

8#
ID:998804 發(fā)表于 2022-1-2 17:21 | 只看該作者
第一次看到樓主這個(gè)方法,真是聰明!
我用1T單片機(jī),再加上你的電路,沒有用你的程序,可以成功驅(qū)動(dòng)。
但用A89S52的單片機(jī)無法成功,晶振是11.0592Mhz的。
回復(fù)

使用道具 舉報(bào)

9#
ID:290373 發(fā)表于 2022-1-4 13:18 | 只看該作者
很巧妙的方法2812真的要被玩壞了
回復(fù)

使用道具 舉報(bào)

10#
ID:71233 發(fā)表于 2022-5-1 19:41 | 只看該作者
太厲害了,電子玩得太嫻熟了,居然想到用RC充電原理來實(shí)現(xiàn)對(duì)2812的驅(qū)動(dòng)。
回復(fù)

使用道具 舉報(bào)

11#
ID:514317 發(fā)表于 2022-5-3 00:16 | 只看該作者
厲害   技術(shù)強(qiáng)貼    我遇到這個(gè)問題   直接換1T 40M的單片機(jī)
回復(fù)

使用道具 舉報(bào)

12#
ID:832644 發(fā)表于 2022-7-15 17:36 | 只看該作者

樓主,你真聰明.
回復(fù)

使用道具 舉報(bào)

13#
ID:825397 發(fā)表于 2022-7-22 14:14 | 只看該作者
在stc89c52上成功,比較創(chuàng)新的方法,感謝樓主分享
回復(fù)

使用道具 舉報(bào)

14#
ID:482083 發(fā)表于 2022-7-27 18:26 | 只看該作者
lzzasd 發(fā)表于 2022-5-3 00:16
厲害   技術(shù)強(qiáng)貼    我遇到這個(gè)問題   直接換1T 40M的單片機(jī)

哈哈哈,我也是
回復(fù)

使用道具 舉報(bào)

15#
ID:603024 發(fā)表于 2022-8-17 14:15 | 只看該作者
牛人,感謝分享
回復(fù)

使用道具 舉報(bào)

16#
ID:46750 發(fā)表于 2023-5-10 10:41 | 只看該作者
厲害,技術(shù)好貼,可以用3毛錢的單片機(jī)控制了
回復(fù)

使用道具 舉報(bào)

17#
ID:324780 發(fā)表于 2023-12-1 21:26 | 只看該作者
厲害,這就是所謂的突破與創(chuàng)新�。。。�!
回復(fù)

使用道具 舉報(bào)

18#
ID:85743 發(fā)表于 2024-2-2 11:22 | 只看該作者
xxd0708 發(fā)表于 2021-2-25 10:14
基本原理:
程序中發(fā)位0時(shí)為2uS高電平,發(fā)位1時(shí)為3uS高電平。
由于P00是開漏囗,下拉能力強(qiáng)而上拉能力由外 ...

意思就是:用了這個(gè)RC,程序里面的I/O就是一般的高\(yùn)低電平了?
回復(fù)

使用道具 舉報(bào)

19#
ID:433219 發(fā)表于 2024-2-2 19:44 | 只看該作者
d^_^b  低速mcu上ws2812高速玩的思路???
回復(fù)

使用道具 舉報(bào)

20#
ID:253767 發(fā)表于 2024-2-3 07:52 | 只看該作者
厲害,突破創(chuàng)新!
謝謝分享!!!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表