1、方案名稱:
基于GD32F207ZE的5x5 RGBW矩陣燈DMX512控制闆
2、方案介紹設計思路:
1. 設計思路:采用高時鍾頻率的MCU的内部定時器産生中斷,使用計數的方式生成(chéng)8位分辨率的PWM,IO口使用映射表的方式,可以在裡(lǐ)面(miàn)任意設置IO對(duì)應的DMX512數據位置,100個IO分成(chéng)10組,每中斷一次對(duì)一組IO進(jìn)行狀态更新,最終可以生成(chéng)400HZ左右的8位PWM,送RGBW燈的驅動電路,進(jìn)行調光。串口設置成(chéng)9位數據接收,250Kbps波特率,1位停止位,通過(guò)MAX485轉換芯片,接收燈光控制台送來的DMX512數據,保存在緩沖區,PWM生成(chéng)程序可以從緩沖區裡(lǐ)即時更新PWM占空比數據。
2. 主控芯片采用GD32F207ZET6,IO口超過(guò)110個,100個作爲PWM輸出的IO,1個串口(PD5、PD6) + IO用于DMX512信号(P4D)使用,4個IO接編碼開(kāi)關用于設置地址(PA8-PA11),2個IO作爲操作按鍵(PA0,PA1),1個IO連接LED作爲工作狀态指示燈(PA12),上面(miàn)用掉的IO從PWM映射表裡(lǐ)去掉就好(hǎo)了。原理圖很簡單就不畫了,闆上IO沒(méi)有全部引出,簡單搭電路做了6路PWM,闆上3個LED,杜邦線連接一組RGB燈測試功能(néng)。
3、方案結構框圖:
4、設計應用描述及心得總結:
1. 本案例的核心在于軟件PWM的生成(chéng),100路8分辨率PWM輸出對(duì)于普通單片機來說還(hái)是有一定的壓力,還(hái)要同時處理DMX512數據的接收,得益于GD32F207的120M運行速度,可以在短時間内處理更多的指令,將(jiāng)100路PWM計數變量分成(chéng)10組,通過(guò)輪流的方式更新每一組IO的計數變量,同時更新IO的狀态,有效的減少中斷處理的數據量,縮短處理時間,本案例中實現了8位分辨率400Hz以上的PWM輸出,用來控制調光燈,完全不會出現閃爍的情況。串口中斷方式接收DMX512數據幀,即時保存在DMX512的緩沖區中,按DMX512數據每秒40幀的更新速度,最多在第2幀數據到來時可以把當前狀态更新到所控制的燈上。
2. 本案例控制IO輸出采用了數據表映射的方式,可以任意修改IO所對(duì)應DMX512數據字節,操作時讀取數據表裡(lǐ)的映射數據,直接操作GPIO控制寄存器,也有效的減少操作指令,提高了操作效率。
3. 采用高頻率的單片機模拟多路PWM的方式,取代市場上現有的使用FPGA的方案,在滿足性能(néng)的同時有效的降低了産品的設計複雜程度和産品成(chéng)本。
5、作品實物圖: