1. <big id="fytn0"><span id="fytn0"><ol id="fytn0"></ol></span></big>

        <track id="fytn0"></track>
        <table id="fytn0"><option id="fytn0"></option></table>
        <pre id="fytn0"></pre>
        wkhn
        認證:優質創作者
        作者動態
        一種采用CAN總線方式升級F28035芯片Flash的方法(三)
        05-13 15:31
        一種采用CAN總線方式升級F28035芯片Flash的方法(二)
        05-13 15:31
        一種采用CAN總線方式升級F28035芯片Flash的方法(一)
        05-13 15:31
        STM32G4系列MCU——數字電源入門(4)
        2023-03-14 10:46
        STM32G4系列MCU——數字電源入門(3)
        2023-03-13 20:05

        STM32G4系列MCU——數字電源入門(1)

             前段時間在學習STM32G4系列的MCU的過程中,想找個實際的項目來練練手,所以就用筆者上一篇文章中提到的2KW交錯并聯+同步整流DC-DC的主板,加上STM32G474VE的MCU做主控芯片操練了一下,也有了一些心得,想與大家分享一下。

             筆者初次使用ST平臺的產品,如有理解不對的地方,還請讀者賜教!

              STM32G4系列的產品是ST公司最近推出主流的面向數字電源、電機控制應用的MCU。最高支持170MHz的主頻,PWM最高分辨率184ps,12路PWM輸出。DAC帶斜率補償輸出,5個ADC,可以成對采樣,帶有豐富的ADC觸發模式,ADC最高采樣速度4MSPS。7個比較器,最低19ns的輸出延時,為功率電路提供更快的保護。具體參數就不再詳述了,可以去自行搜索。  

        先介紹STM32平臺的搭建:

        下載STM32CubeIDE和STM32CubeMX,安裝好。其中STM32CubeIDE是集成開發環境,STM32CubeMX是芯片的圖形配置開發包和代碼生成器。筆者用的集成開發環境是ST官方的,當然也可以選擇第三方的產品。還要說一句,安裝好STM32CubeMX后,最好也裝上MX中的數字電源插件(X-CUBE-DPower)。這個插件中有許多值得仔細閱讀的例程代碼,而且配合ST官方的開發板B-G474-DPOW1,能進行數字電源的開發工作。筆者本項目中的許多代碼就從這些例程代碼中移植而來。

        如果環境搭建和IDE使用過程中有什么問題,請自行搜索。

        筆者用的仿真器是ST-LINK/V2,在網上可以很方便的買到,但最好買隔離版本的。

              筆者用的是STM32G474VE這枚芯片,現將該練手的數字電源主要輸入輸出參數列出來:

        輸入電壓:38VDC——58VDC

        輸出電壓:26VDC±0.5VDC

        輸出電流:77A

        功率電路拓普:兩相交錯并聯+同步整流BUCK電路。

        控制環路模式:峰值電流型全數字控制環路,恒壓恒流輸出。

        功率電路的框圖如下:

        下面介紹STM32G474VE外設資源的分配:

        PWM輸出:     TA1——PWM1A

                                TA2——PWM1B

                                TB1——PWM2A

                                TB2——PWM2B

        ADC采樣:       輸出電壓采樣Vout_FB——ADC3的IN11通道

                                輸出電流采樣Iout_FB——ADC1的IN3通道

        比較器:           輸入電流互感器信號CS1+——COMP1+

                                輸入電流互感器信號CS2+——COMP3+

        DMA:            連接ADC3的IN11通道,傳送輸出電壓采樣值。

        串口:              USART2

        FMAC(濾波計算加速器):用硬件來做環路算法,只提供了一個。分配給穩壓環路計算,穩流環路就只能用軟件計算了。

        外設中斷:     FMAC中斷(計算電壓環路)、ADC1采樣中斷(計算電流環路)、串口中斷。

        系統中斷:       系統tick定時器中斷,用來產生1ms的系統定時心跳。默認優先級最低,為了不被其它的中斷干擾,將其改為0(最高)優先級。

        DAC:              DAC1——COMP1-(帶斜率補償)

                                DAC3——COMP3-(帶斜率補償)

        下圖就是芯片外設的配置及互連框圖:

        接下來,在MX中先配置系統時鐘。

        本例中,用的是外接12MHz的晶振,所以這樣配置:

        再選擇編程接口,筆者用的是Serial Wire接口。

        選擇系統外接晶振選項:

        接下來,詳細說明外設的配置過程。

        1)PWM輸出

              在STM32G474VE中PWM輸出是由HRTIM(高精度定時器)來完成的。HRTIM又包含多個定時器子模塊:MasterTimer、TimerA至TimerF,總共7個獨立定時器,其中MasterTimer不能輸出PWM,其它的TimerA至TimerF每個定時器都能輸出一組(兩路)PWM。筆者用到的是TimerA(TA1和TA2)、TimerB(TB1和TB2)共四路PWM輸出。TA1和TA2互補,TB1和TB2互補。因為TA和TB交錯180°,所以要用MasterTimer同步TA和TB的相位。下圖是PWM產生的原理。

        本例中每路PWM的工作頻率為150KHz。先配置MasterTimer

        周期寄存器的計算公式:

        MasterTimer中的Compare1寄存器的值為周期寄存器的1/2,設為18133。

        然后開始配置TA和TB。

        TA

        然后是TA1輸出高電平或低電平的條件:

        設置TA1和TA2之間的死區時間:

        死區時間的計算公式(設死區時間為200ns):

        TB

        TB1輸出的高低電平的配置與TA1相似,主要區別是TB1高電平是由MasterTimer的Compare1事件觸發的,以實現與TA1交錯180°相位差。

        TB1和TB2的死區:

        說明一下:在前面的配置中周期寄存器和Compare1寄存器本應設定一個具體的數值,但為了以后修改方便,筆者將這些寄存器的內容在程序文件中用#define XXX   XXX的形式表示出來,這樣就可以通過修改預定義的值來達到修改寄存器內容的目地,會方便很多。

        且該寄存器內容的選項中要勾選“No check”,否則MX會認為該寄存器內容格式錯誤。

        然后就可以生成代碼了。

        生成的代碼是基于ST官方的HAL庫。因為G474VE芯片不再支持以前的標準庫函數了,只支持ST的HAL庫和LL庫。至于HAL庫函數的優缺點網上有詳細的說明,這里不再展開。

        生成的代碼目錄結構如下:

        *.ioc文件就是MX的圖形配置文件,直接雙擊就可以進入MX,進行配置的修改。

        Drivers目錄中是HAL庫相關的驅動文件,包含了大量的功能函數,并進行了多次的封裝。這些文件不需要修改,也不能修改,否則系統將無法正常工作。

        Core目錄就是用戶添加功能代碼的地方。

        生成的PWM配置,還需要用戶添加相應的啟動代碼后,才能開始工作。

        完成上述代碼后,PWM就可以輸出波形了。

        下圖是控制板,原理圖在附件可以下載。

        聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
        本篇所含全部資料,點擊此處留下郵箱我會發給你
        資料明細:S2301s1.rar
        覺得內容不錯的朋友,別忘了一鍵三連哦!
        贊 10
        收藏 18
        關注 455
        成為作者 賺取收益
        全部留言
        0/200
        • 老師,能不能發我一下資料,謝謝! 10****@****.com
          回復 1條回復
        • 天安大樹 05-09 21:04
          老師,能不能發我一下資料,謝謝! 15****@****.com
          回復 1條回復
        • dy-ynl7vm2a 05-04 19:10
          老師,能不能發我一下資料,謝謝! 82****@****.com
          回復 1條回復
        • dy-DJRYP28P 04-24 11:15
          老師,能不能發我一下資料,謝謝! xc****@****.com
          回復 1條回復
        • Yangdx 04-20 10:42
          老師,能不能發我一下資料,謝謝! 38****@****.com
          回復 1條回復
        • 無雙葉子 04-13 09:28
          老師,能不能發我一下資料,謝謝! 84****@****.com
          回復
        • 無雙葉子 03-11 09:57
          老師,能不能發我一下資料,謝謝! 84****@****.com
          回復 1條回復
        • dy-XhiiUS1Z 02-23 23:09
          老師,能不能發我一下資料,謝謝! 30****@****.com
          回復 1條回復
        • dy-sh2zv67r 02-03 09:55
          老師,能不能發我一下資料,謝謝! el****@****.com
          回復 1條回復
        • dy-iGugTBNk 01-30 10:43
          老師,能不能發我一下資料,謝謝! pe****@****.com
          回復 1條回復
        • 楊曉華6688 01-27 16:15
          老師,能不能發我一下資料,謝謝! 53****@****.com
          回復 1條回復
        • Free election pair 01-26 16:40
          老師,能不能發我一下資料,謝謝! 15****@****.com
          回復 1條回復
        • dy-XHeGgAvl 01-05 11:36
          老師,能不能發我一下資料,謝謝! go****@****.com
          回復 1條回復
        • dy-fr7bqalt 01-04 14:58
          老師,能不能發我一下資料,謝謝! da****@****.com
          回復 1條回復
        • jyxu053 2023-12-08 13:44
          老師,能不能發我一下資料,謝謝!
          回復
        • jyxu053 2023-12-08 13:43
          老師,能不能發我一下資料,謝謝! xu****@****.com
          回復 1條回復
        • funny_2017 2023-12-04 16:34
          老師,能不能發我一下資料,謝謝! 71****@****.com
          回復 1條回復
        • funny_2017 2023-12-04 16:34
          老師,能不能發我一下資料,謝謝! 71****@****.com
          回復 1條回復
        • dy-ZTCluVnv 2023-12-02 15:16
          老師,能不能發我一下資料,謝謝! 99****@****.com
          回復 1條回復
        • xjj2215738 2023-11-24 22:08
          老師,能不能發我一下資料,謝謝! 44****@****.com
          回復 1條回復
        欧美大片免费AA级动作片,久久精品国产99精品亚洲,亚洲色大成WWW亚洲女子,俄罗斯雏妓的BBB孩交
          1. <big id="fytn0"><span id="fytn0"><ol id="fytn0"></ol></span></big>

              <track id="fytn0"></track>
              <table id="fytn0"><option id="fytn0"></option></table>
              <pre id="fytn0"></pre>