找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1103|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

請教一個WS2812ELD數(shù)據(jù)傳輸問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:891876 發(fā)表于 2024-11-17 13:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
很多控制ws2812的程序是spi+DMA實現(xiàn)的,請問不使用DMA功能實現(xiàn)ws2812的控制有什么區(qū)別呢?
謝謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:161164 發(fā)表于 2024-11-17 22:08 | 只看該作者
DMA可以釋放芯片的算力
一顆WS2812 24位元的數(shù)據(jù)耗時1.3us X 24 = 31.2us
如果數(shù)量少不用DMA也可以
但如果數(shù)量一多起來
耗時很久,嚴(yán)重堵塞芯片運行
回復(fù)

使用道具 舉報

板凳
ID:69038 發(fā)表于 2024-11-18 21:53 | 只看該作者
DMA可是好東西!
DMA,是“直接內(nèi)存訪問”的E文縮寫,即“Direct Memory Access”的首字連起來的。。
在大規(guī)模的數(shù)據(jù)搬運時,都會采用這種方式,除非你用的MCU沒有這個功能。
常見的有3種數(shù)據(jù)傳輸模式:外設(shè)到內(nèi)存,內(nèi)存到外設(shè),內(nèi)存到內(nèi)存。
樓主控制WS2812,可選用“內(nèi)存到外設(shè)”,即把數(shù)據(jù)準(zhǔn)備好,就可以激發(fā)DMA,開始自動通過SPIx往外發(fā)送數(shù)據(jù)。
燈串有200個LED燈珠,每珠24bit,按2812的時序,每珠約耗時30us,200珠需約6ms...
因為2812的數(shù)據(jù)傳輸時不能被打斷,所以在這6ms的時間內(nèi)什么事都做不了,只能等數(shù)據(jù)完全發(fā)完。。
用上DMA,你只要開一個600byte的緩存區(qū),數(shù)據(jù)準(zhǔn)備好后,激發(fā)DMA就OK了,DMA發(fā)完數(shù)據(jù)會給你一個中斷...
其間你還可以檢測按健、做ADC動作....

如樓上所說,DMA在傳輸數(shù)據(jù)時,數(shù)據(jù)量越大,效果越明顯,少量數(shù)據(jù)的話,用不用DMA沒啥區(qū)別。


https://m.bilibili.com/video/BV18CUxYJEnw?buvid=XU41BF74046114B601AC24A729FB5CAC6AF03(1.54和2.0的4線SPI屏)

前50次沒有用DMA,后50次用上了DMA,效果天差地別。。
這個示例與樓主這個沒多大關(guān)系,但DMA確實好用










回復(fù)

使用道具 舉報

地板
ID:401564 發(fā)表于 2024-11-18 22:39 | 只看該作者
WS2812時序并不是特別的嚴(yán)格,但卻不能被中斷打斷,不然,燈的著色很容易是一個古怪的,并不是你想的著色
所以,在寫稿時,要先關(guān)閉中斷,中斷本身就是為"意外"準(zhǔn)備的,如果你關(guān)閉了,就有可能會丟失某個意外
而且,寫入也是要時間的,如果你有幾百個燈的話,就能明顯的感覺到單片機卡了
但如果用了DMA就不同了,我就不百度DMA是什么了,反正沒有上面的缺點就是了
回復(fù)

使用道具 舉報

5#
ID:891876 發(fā)表于 2024-11-19 07:14 | 只看該作者
zhuls 發(fā)表于 2024-11-18 21:53
DMA可是好東西!
DMA,是“直接內(nèi)存訪問”的E文縮寫,即“Direct Memory Access”的首字連起來的。。
在 ...

謝謝解答,是RGB-3字節(jié)X200==600byte吧?只是現(xiàn)在不知道怎樣準(zhǔn)備數(shù)據(jù)!看了視頻效果不錯!�。�
回復(fù)

使用道具 舉報

6#
ID:1034262 發(fā)表于 2024-11-19 10:36 | 只看該作者
比如控制1000個燈,耗時30ms,如果不用DMA,則驅(qū)動時MCU全部或大部分時間都耗在輸出驅(qū)動上了,而DMA可以省去這個時間。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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