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