方案介紹設(shè)計(jì)思路
1. 設(shè)計(jì)思路:采用高時(shí)鐘頻率的MCU的內(nèi)部定時(shí)器產(chǎn)生中斷,使用計(jì)數(shù)的方式生成8位分辨率的PWM,IO口使用映射表的方式,可以在里面任意設(shè)置IO對(duì)應(yīng)的DMX512數(shù)據(jù)位置,100個(gè)IO分成10組,每中斷一次對(duì)一組IO進(jìn)行狀態(tài)更新,最終可以生成400HZ左右的8位PWM,送RGBW燈的驅(qū)動(dòng)電路,進(jìn)行調(diào)光。串口設(shè)置成9位數(shù)據(jù)接收,250Kbps波特率,1位停止位,通過MAX485轉(zhuǎn)換芯片,接收燈光控制臺(tái)送來的DMX512數(shù)據(jù),保存在緩沖區(qū),PWM生成程序可以從緩沖區(qū)里即時(shí)更新PWM占空比數(shù)據(jù)。
2. 主控芯片采用GD32F207ZET6,IO口超過110個(gè),100個(gè)作為PWM輸出的IO,1個(gè)串口(PD5、PD6) + IO用于DMX512信號(hào)(P4D)使用,4個(gè)IO接編碼開關(guān)用于設(shè)置地址(PA8-PA11),2個(gè)IO作為操作按鍵(PA0,PA1),1個(gè)IO連接LED作為工作狀態(tài)指示燈(PA12),上面用掉的IO從PWM映射表里去掉就好了。原理圖很簡單就不畫了,板上IO沒有全部引出,簡單搭電路做了6路PWM,板上3個(gè)LED,杜邦線連接一組RGB燈測(cè)試功能。
3方案結(jié)構(gòu)框圖
4設(shè)計(jì)應(yīng)用描述及心得總結(jié)
1. 本案例的核心在于軟件PWM的生成,100路8分辨率PWM輸出對(duì)于普通單片機(jī)來說還是有一定的壓力,還要同時(shí)處理DMX512數(shù)據(jù)的接收,得益于GD32F207的120M運(yùn)行速度,可以在短時(shí)間內(nèi)處理更多的指令,將100路PWM計(jì)數(shù)變量分成10組,通過輪流的方式更新每一組IO的計(jì)數(shù)變量,同時(shí)更新IO的狀態(tài),有效的減少中斷處理的數(shù)據(jù)量,縮短處理時(shí)間,本案例中實(shí)現(xiàn)了8位分辨率400Hz以上的PWM輸出,用來控制調(diào)光燈,完全不會(huì)出現(xiàn)閃爍的情況。串口中斷方式接收DMX512數(shù)據(jù)幀,即時(shí)保存在DMX512的緩沖區(qū)中,按DMX512數(shù)據(jù)每秒40幀的更新速度,最多在第2幀數(shù)據(jù)到來時(shí)可以把當(dāng)前狀態(tài)更新到所控制的燈上。
2. 本案例控制IO輸出采用了數(shù)據(jù)表映射的方式,可以任意修改IO所對(duì)應(yīng)DMX512數(shù)據(jù)字節(jié),操作時(shí)讀取數(shù)據(jù)表里的映射數(shù)據(jù),直接操作GPIO控制寄存器,也有效的減少操作指令,提高了操作效率。
3. 采用高頻率的單片機(jī)模擬多路PWM的方式,取代市場(chǎng)上現(xiàn)有的使用FPGA的方案,在滿足性能的同時(shí)有效的降低了產(chǎn)品的設(shè)計(jì)復(fù)雜程度和產(chǎn)品成本。
5作品實(shí)物圖+視頻
-
控制器
+關(guān)注
關(guān)注
112文章
16111瀏覽量
177091 -
寄存器
+關(guān)注
關(guān)注
31文章
5295瀏覽量
119839 -
控制板
+關(guān)注
關(guān)注
5文章
250瀏覽量
31139
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論