基于FPGA的可編程PWM電路設(shè)計(jì)
3 PWM編程
PWM的工作模式由外部引腳與內(nèi)部控制字寄存器決定。
3.1PWM芯片的工作模式
PWM芯片的工作模式可由PWMh_b來(lái)設(shè)定:
當(dāng)其為1時(shí),為全局使能輸出,此時(shí)為正常工作模式,但各Channel工作模式可取決于其PWMEN位的值;而當(dāng)PWMh_b為0時(shí),全局禁止輸出,此時(shí)整個(gè)芯片不工作,芯片進(jìn)入低功耗模式,同時(shí)時(shí)鐘被禁止輸入到內(nèi)部通道模塊。
3.2 PWM芯片的控制字寄存器
對(duì)于控制字寄存器ControlReg[7:0]:在其地址[A1,A0]=00的情況時(shí),其操作格式如表1所列。
由于控制字寄存器僅有一個(gè),但實(shí)際各通道都有一個(gè)備份的控制字寄存器來(lái)控制對(duì)應(yīng)的通道。因此并不會(huì)由于對(duì)某通道控制字的操作而影響其它無(wú)關(guān)的通道。本格式中的各位定義如下:
PWMEN:當(dāng)芯片全局使能輸出時(shí),此位可決定各通道PWM的輸出使能,當(dāng)PWMh_b為1時(shí),各通道的輸出正常,為0時(shí),則通道禁止輸出;
Channel2Cs:選通Channel2。使能對(duì)Channel2模塊的操作,并將控制字信息存儲(chǔ)到通道2的備份控制字;
ChannellCs:選通Channell。使能對(duì)Channell模塊的操作,并將控制字信息存儲(chǔ)到通道1的備份控制字;
Channel0Cs:選通Channel0。使能對(duì)Channel0模塊的操作,并將控制字信息存儲(chǔ)到通道0的備份控制字;
[B2,B1,B0]:內(nèi)部寄存器片選譯碼。每個(gè)通道的PWM內(nèi)部都有8個(gè)寄存器地址。通過(guò)ChannelX的選通結(jié)合[B2,B1,B0]的譯碼,可產(chǎn)生內(nèi)部通道Regs的片選信號(hào)。
3.3 PWM編程
PWM芯片的引腳排列如圖4所示,當(dāng)其在上電加載時(shí)鐘后,所有通道都禁止輸出。系統(tǒng)通過(guò)采樣DataWidth來(lái)確定外圍數(shù)據(jù)接口的寬度,如果采用16bits傳輸(DataWidth=1),則Data[15:0]都使用;如果采用8bits傳輸(DataWidth=0),則僅使用Data[7:0],而將高8bits接地。
復(fù)位(Reset_b)結(jié)束后,在片選(Cs_b)有效的情況下,可以對(duì)芯片進(jìn)行讀寫操作。對(duì)通道的一次完整的讀寫包括寫控制字與讀寫通道寄存器兩個(gè)過(guò)程,寫控制字選中通道內(nèi)寄存器,讀寫通道寄存器則可獲取通道寄存器信息,只有當(dāng)合理的數(shù)據(jù)寫入后,且在PWMH-_b有效(PWMH_b=1)時(shí),PWM內(nèi)部通道才使能輸出信號(hào)。一般情況下,各通道的輸出使能由各通道的控制字寄存器的PWM_EN位決定。
采用控制字自動(dòng)備份的方式可使控制字的編程更加靈活。它既可以使同一個(gè)類型的寄存器(不同通道)一起寫控制字,亦可對(duì)同一個(gè)通道一塊操作。但是所有控制字命令都可以在PWM的控制字命令列表中查詢。
4 PWM的仿真及驗(yàn)證
PWM的仿真是PWM功能驗(yàn)證的必要環(huán)節(jié)??梢訫odelsim結(jié)合腳本文件進(jìn)行仿真,并采用89C51結(jié)合FPGA驗(yàn)證板對(duì)整個(gè)設(shè)計(jì)進(jìn)行驗(yàn)證。
評(píng)論