開關電源的典型拓撲—SEPIC拓撲原理及用PIC16F1779控制的PWM驅動配置編程方法和注意事項

        本文今天要講的SEPIC拓撲結構,中文全稱為單端初級電感變換器。這種混合式直流/直流DC-DC轉換器架構,在針對汽車應用的LED驅動器解決方案中有特殊優勢。因SEPIC可在輸入電壓低於/高於輸出電壓的情況下,保持輸出電壓的穩定可靠,同時還能提供一個非反向輸出,即其參考與輸入相同的接地電位,故此解決方案具有極強的吸引力。例如汽車工況出現蓄電池電源在汽車冷啟動時電壓被拉低至LED電壓以下,或是在負載空降時電壓猛升高至LED電壓以上,用SEPIC架構則可穩定地維LED電流恆定輸出,從而確保LED的照明亮度穩定。另外在太陽能充電器應用中,也能靈活適應太陽能電池輸出電壓的較大範圍波動。SEPIC拓撲電源 系統架構圖如下:

                  


SEPIC轉換器

        SEPIC拓撲電路中使用的兩個電感L1和L2,可以繞在同一個磁芯上,因在整個開關周期內加在兩個電感上的電壓相同。採用一個耦合電感與兩個獨立的電感相比較,可節省較多PCB空間以及降低產品成本。功率傳輸電路圖如下圖1:



                                      


        SEPIC拓撲電路的工作過程,相比於經典的BUCK、BOOST電路,其理解難度會稍大一些,其主要難點在於電能傳遞電容Cs的電流變換過程,這一點至少是作者本人的難點之一,因此將其用兩個分解圖進行分別說明,分為主開關Q1的關斷和開通兩個階段,圖示分別如下兩個。

 

主開關關斷時電流流向原理,如下圖2


                                     


主開關閉合時電流流向原理,如下圖3:


                                     
             

          下面我們將針對採用8位混合數字電源控制MCU PIC16F1779進行SEPIC電路的PWM驅動外設的配置代碼開發的相關步驟和注意事項進行說明。

        首先明確產品規格定義,我們MCHP 的PIC16F1779的PWM是10bit/16bit ,所設計的SEPIC拓撲LED調光頻率20KHz, SEPIC電源主開關頻率333.3KHz,其控制的各燈組--尾燈/前大燈/流水轉向燈的PWM頻率均相同(如前述設置參數)。電源主PWM的占空比為81%。 但調光亮度占空比略有不同,亮度參數(占空比)一般固定不變,初始化配置好,有15%、12%、20%,根據廠家規格而定。

        其次進行MCU主頻率配置,即MCU時鐘源配置:FOSC=16MHz ,用內部振盪器。

        第三步,確認TIMER2時鐘源:FOSC/4,預分頻比CKPS = 1:1,則T4時鐘頻率為:4MHz,輸出後分頻比OUTPS =1:1,T2溢出周期11+1=12個時鐘,即fp=333.3KHz,T2的輸出作為電源高頻PWM3/4時鐘源。

 

        第四步,確認TIMER4時鐘源:FOSC/4,預分頻比CKPS = 1:4,則T4時鐘頻率為:1MHz,輸出後分頻比OUTPS =1:1,T4溢出周期49+1=50個時鐘,即fd=20KHz,T4的輸出作為調光低頻PWM9/10時鐘源。

 

        第五步,確認電源主頻率:fp=333.3KHz,其驅動PWM信號分別為PWM3(10bit PWM),PWM4(10bit PWM),PWM11,PWM12。T2輸出作電源高頻PWM3/4時鐘源,fp=333.3KHz。對於PWM11/PWM12,16bit PWM,則是16MHz主頻輸入,無預分頻,PWM周期配置計數PWMxPRH/L: 0x0030=0*256+3*16=48,時鐘計數周期48個時鐘,即fd=16MHz/48=333.3KHz, PWM11/PWM12之占空比設置同周期值,

PWMxDCH/L:0x0027=0*256+2*16+7=39。

        同時程序算法中有軟啟動:電源占空比逐漸增大到上限為初始化配置占空比值,39/48=81.25%。

 

        第六步,確認調光頻率:fd=20KHz。其驅動PWM信號分別為PWM9(10bit PWM),PWM10(10bit PWM),PWM5,PWM6。T4輸出作調光低頻PWM9/10時鐘源,fd=20KHz,設置T4PR = 0x31;

        程序算法中uint16_t PWMPR = (uint16_t)T4PR<

        //  =00 1100 0111=0xC7=12*16+7=199,

        PWM9_LoadDutyValue((uint32_t)dim * PWMPR / 100);

        //將PWMx的周期值分為100份, 再用給定的 dim(1~100))來調節PWM占空比0~100%,

         再裝載到PWM10DCH/L組成的10bit占空比寄存器中。

        PWM10頻率配置同PWM9,占空比配置同PWM9。

        對於PWM5:是16MHz主頻輸入,無預分頻。

        PWM5周期配置計數PWMxPRH/L: 0x031F=3*256+1*16+15=799,時鐘溢出周期799+1=800個時鐘,即fd=16MHz/800=20KHz,

        PWM5之占空比設置同周期值,PWMxDCH/L:0x031F=3*256+31=799,

        //程序算法中PWMx_DutyCycleSet((uint32_t)dim * PWMPR / 100);

         將PWMx的周期值分為100份, 再用給定的 dim(1~100))來調節PWM占空比0~100%,

        亮度參數(占空比)一般固定不變,初始化配置好,例如15%,12%,20%,根據廠家規格而定.

        PWM6頻率配置同PWM5,占空比配置同PWM5。

 

        第七步,對各燈組調光驅動PWM參數寄存器進行配置,代碼如下:

//**********************************遠近光:PWM9-10bit:

         // T4PR 49;

        T4PR = 0x31;//PWM周期值,0x0000 0000,TIMER4的相關寄存器,當T2PR/T4PR/T6PR/T8PR為255 時,最大PWM解析度為10 位。解析度是T2PR/T4PR/T6PR/T8PR寄存器值的函數,

        PWMPR = (uint16_t)T4PR<

        PWM9_LoadDutyValue((uint32_t)dim * PWMPR / 100);//占空比設置,

        PWM9占空比初始化為如下:

         // DC 49;

        PWM9DCH = 0x31;  

        // DC 3;

        PWM9DCL = 0xC0; 

 //**********************************日行燈:PWM10-10bit:

         // T4PR 49;

         T4PR = 0x31;//

        PWMPR = (uint16_t)T4PR<

        PWM10_LoadDutyValue((uint32_t)dim * PWMPR / 100);//占空比設置,

         // DC 49;

          PWM10DCH = 0x31;  

         // DC 3;

          PWM10DCL = 0xC0;

 

//**********************************位置燈:PWM5-16bit:

 

         //PWM5PRH 3;

        PWM5PRH = 0x03;

        //PWM5PRL 31;

        PWM5PRL = 0x1F;

         //PWM5DCH 3;

        PWM5DCH = 0x03;

 

         //PWM5DCL 31;

        PWM5DCL = 0x1F;

 

//**********************************轉向燈:PWM6-16bit:

 

        //PWM6PRH 3;

        PWM6PRH = 0x03;

         //PWM6PRL 31;

        PWM6PRL = 0x1F;

        //PWM6DCH 3;

        PWM6DCH = 0x03;

         //PWM6DCL 31;

        PWM6DCL = 0x1F;

        第八步,進行內部CIP組件配置。所使用的工具是MPLAB X IDE及插件MCC。分別是TYPE-II補償環路、斜率補償組件、峰值電流保護組件、過電壓保護組件、平均電流過流保護組件等,進行內部運放、比較器、DAC、固定電壓參考FVR、互補信號發生器COG、數據信號調製器DSM、可編程斜率補償器PRG、定時器TIMER、PWM信號發生器等智能部件的有機組合配對,形成功能完善的獨立於內核CPU的外設集群,從而實現電源環路的高效運行。

        最後生成驅動代碼,再配合主控函數中的狀態機流程控制、故障檢測保護等,就能實現硬體與軟體的融合運行,實現電源按設計要求輸出工作。

        後續我們將對開關電源的其它拓撲設計進行分別解說,敬請期待。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論