dsPIC33AKxxxMPSxxx的多個PWM之間觸發(fā)輸出關(guān)系簡介
掃描二維碼
隨時隨地手機看文章
每個PWM 發(fā)生器必須接收一個周期起始(SOC) 觸發(fā)信號才能開始一個PWM 周期。觸發(fā)信號可以由PWM 發(fā)生器本身(自觸發(fā))或其他外部觸發(fā)源提供。SOC 觸發(fā)信號可由以下三個來源產(chǎn)生:
?內(nèi)部觸發(fā)源,其時鐘源由SOCS[3:0] 位選擇(PGxCON[19:16])
?外部觸發(fā)源,由PWM 控制輸入(PCI) 同步模塊選擇
?軟件觸發(fā)請求,寫入TRSET (PGxSTAT[7]) ,
任何PWM 發(fā)生器都可以充當“主機”,為其他PWM 發(fā)生器提供觸發(fā)信號。可以實現(xiàn)多種觸發(fā)配置,包括:
?多個具有獨立周期的PWM 輸出(PWM 發(fā)生器之間無需同步)
?多個具有同步周期的PWM 輸出(同步操作)
?多個具有偏移相位關(guān)系的PWM 輸出(觸發(fā)操作)
通過將一個從PWM 發(fā)生器的SOCSx 位設(shè)置為另一個主PWM 發(fā)生器,并將主機的PGTRGSEL[2:0] 位(PGxEVT1[18:16]) 設(shè)置為000,即可實現(xiàn)同步操作。
這將選擇主PWM的EOC 作為從PWM的SOC 觸發(fā)器。當使用PGxTRIGy 對PWM 發(fā)生器進行相位偏移時,會出現(xiàn)最多5 個pwm_master_clk 的同步延遲。如果TRIG 值為0,仍會存在偏移。TRIGy 值可能需要根據(jù)應(yīng)用進行補償。
觸發(fā)操作的實現(xiàn)方式類似,但需要設(shè)置主PWM的PGTRGSEL[2:0] 位(PGxEVT1[18:16]) 來選擇其中一個PGxTRIGy 計數(shù)器(y = A 至F)。主PWM的TRIGy 寄存器中指定的值定義了從機與主機SOC 的觸發(fā)偏移量。
SOCS[3:0] 控制位有兩個特殊選擇。當SOCS[3:0] = 0000 時,PWM 發(fā)生器由內(nèi)部觸發(fā)。
當SOSC[3:0] = 1111 時,未選擇觸發(fā)源。當PWM 發(fā)生器僅由軟件觸發(fā)(使用TRSET 位)或連接到PCI 同步模塊的源觸發(fā)時,此選項非常有用。在此模式下,下一個PWM 周期直到收到另一個觸發(fā)信號才會啟動。
PCI 同步模塊可用的信號源包括外部信號,例如比較器事件和設(shè)備I/O 引腳等。PCI 同步模塊的重要功能之一是將外部輸入信號同步到PWM 發(fā)生器的時鐘域。有關(guān)PCI 模塊的更多信息,請參閱PWM 控制輸入(PCI) 邏輯模塊。只要模塊處于啟用狀態(tài),PCI 同步模塊就可以與任何其他周期起始輸入(SOCS[3:0])進行“或”運算。另一個PWM 發(fā)生器的觸發(fā)輸出也可用作SOC 事件。有關(guān)配置選項,請參閱事件選擇模塊。
針對上述的規(guī)格書中的觸發(fā)關(guān)系,簡單測試了PWM1觸發(fā)PWM2,同時用PWM1觸發(fā)PWM5進行驗證,PWM1的觸發(fā)信號為EOC信號,自身為自觸發(fā)。
CH1-PWM1H-CH2-PWM2H-CH3-PWM5H
從上述波形可知,PWM1H和PWM2H之間的相位基本一致,PWM1H和PWM5H之間有一定延時,但不超過5nS,相對較小,可以忽略。
從上述波形可知,PWM1H和PWM2H之間的相位基本一致,PWM1H和PWM5H之間有一定延時,但不超過5nS,相對較小,可以忽略。
這里和dsPIC33AKxxxMPSxxx規(guī)格書中描述,會出現(xiàn)最多5 個pwm_master_clk 的同步延遲的說法也較為一致,這里PWM的分辨率為78pS,而pwm_master_clk設(shè)置為了800MHz,5個周期即為5.25nS左右。





