久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 19140|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

雙向DC-DC變換器設(shè)計(jì) XL4016+XL6019+單片機(jī)實(shí)現(xiàn)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:515632 發(fā)表于 2019-4-18 17:18 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   本設(shè)計(jì)主要由雙向DC-DC變換電路、測控顯示電路、輔助電源三部分構(gòu)成,其中雙向DC-DC變換電路降壓部分采用XL4016開關(guān)降壓型DC-DC轉(zhuǎn)換芯片,最高轉(zhuǎn)換效率可達(dá)93%,升壓部分采用XL6019開關(guān)型升壓/降壓芯片,具有低紋波,輸入范圍廣,轉(zhuǎn)換效率高的特點(diǎn)。恒流部分采用PWM控制原理,形成一個(gè)閉環(huán)回路,控制電流恒定,恒壓部分完全由硬件控制,單片機(jī)輔助控制的方式。以上部分確保系統(tǒng)滿足題目要求,實(shí)現(xiàn)恒流充電,恒壓放電,過壓保護(hù)功能,并且有著較高的轉(zhuǎn)換效率。
在本次設(shè)計(jì)中恒壓部分完全有硬件控制,硬件自身形成一個(gè)閉環(huán)控制回路,對電壓進(jìn)行調(diào)節(jié)使其恒定題目要求的精度范圍。單片機(jī)通過光耦電路的工作與停止,恒流部分由PWM調(diào)節(jié)占空比,使其恒流。

一、系統(tǒng)方案
1、雙向DC-DC變換電路的論證與選擇
    2、測量控制方案和輔助電源的論證與選擇
3、 控制方法的論證與選擇
二、系統(tǒng)理論分析與計(jì)算
三、電路與程序設(shè)計(jì)
1、電路的設(shè)計(jì)
(1)系統(tǒng)總體框圖
2、程序的設(shè)計(jì)
(1)程序功能描述與設(shè)計(jì)思路
(2)程序流程圖
    3、程序流程圖
四、測試儀器與數(shù)據(jù)分析
附錄1:電路原理圖
附錄2:源程序

一、系統(tǒng)方案

本設(shè)計(jì)主要由雙向DC-DC變換電路、測控顯示電路、輔助電源三部分構(gòu)成,其中雙向DC-DC變換電路降壓部分采用XL4016開關(guān)降壓型DC-DC轉(zhuǎn)換芯片,最高轉(zhuǎn)換效率可達(dá)93%,升壓部分采用XL6019開關(guān)型升壓/降壓芯片,具有低紋波,輸入范圍廣,轉(zhuǎn)換效率高的特點(diǎn)。恒流部分采用PWM控制原理,形成一個(gè)閉環(huán)回路,控制電流恒定,恒壓部分完全由硬件控制,單片機(jī)輔助控制的方式。以上部分確保系統(tǒng)滿足題目要求,實(shí)現(xiàn)恒流充電,恒壓放電,過壓保護(hù)功能,并且有著較高的轉(zhuǎn)換效率。

    1雙向DC-DC變換電路的論證與選擇方案1:由降壓斬波變換電路(即Buck變換電路)和升壓斬波變換電路(即Boost電路)組成雙向DC-DC變換電路,分別各使用一個(gè)全控型器件VT(IGBT或MOSFET),對輸入直流電源進(jìn)行斬波控制通過調(diào)整全控型器件VT的控制信號(hào)占空比來調(diào)整輸出電壓。
     方案2:采用XL4016開關(guān)型降壓芯片和XL6019開關(guān)型升壓/降壓芯片構(gòu)成升壓、降壓電路具有低紋波,內(nèi)助功率MOS,具有較高的輸入電壓范圍,內(nèi)置過電流保護(hù)功能與EN引腳邏輯電平關(guān)斷功能。

     綜合以上兩種方案,考慮到時(shí)間的限制,選擇了比較容易實(shí)現(xiàn)的方案2。

2、測量控制方案和輔助電源的論證與選
由于瑞薩單片機(jī)開發(fā)套件數(shù)量有限,所以我們選擇了一款相對便宜,速度快,性價(jià)比較高的STM32103V8T6作為控制器,顯示部分由于收到題目對作品重量的要求,選擇了質(zhì)量輕,分辨率較高的0.96寸OLED屏幕顯示。由于市場上所售開關(guān)電源模塊的,紋波大的因素,所以輔助電源選擇了一個(gè)較小的9V變壓器,進(jìn)行,整流濾波作為輔助電源。
3、控制方法的論證與選
     方案1采用PWM調(diào)節(jié)占空比的方法控制降壓芯片的控制端,達(dá)到控制恒流和控制恒壓的目的,采用PWM調(diào)節(jié)軟件較為復(fù)雜,而且PWM調(diào)節(jié)較為緩慢,軟件控制難度大。
     方案2恒壓部分完全有硬件控制,硬件自身形成一個(gè)閉環(huán)控制回路,對電壓進(jìn)行調(diào)節(jié)使其恒定題目要求的精度范圍。單片機(jī)通過光耦電路的工作與停止,恒流部分由PWM調(diào)節(jié)占空比,使其恒流。
     綜合以上兩種方案,選擇軟件較為簡單,硬件較為復(fù)雜的方案2。

二、系統(tǒng)理論分析與計(jì)算
1、充電電路設(shè)計(jì)分析
   充電電路也就是一個(gè)降壓電路,并且要求是一個(gè)恒流源,本次競賽選取XL4016為核心降壓芯片,其結(jié)構(gòu)如圖所示。
管腳定義如下典型應(yīng)用電路如下
2.2 放電電路設(shè)計(jì)分析

XL6019是一款專為升壓、升降壓設(shè)計(jì)的單片集成電路,可工作在DC5V到40V輸入電壓范圍,低紋波,內(nèi)置功率MOS。XL6019內(nèi)置固定頻率振蕩器與頻率補(bǔ)償電路,簡化了電路設(shè)計(jì)。PWM控制環(huán)路可以調(diào)節(jié)占空比從0~90%之間線性變化。內(nèi)置過電流保護(hù)功能與EN腳邏輯電平關(guān)斷功能。典型應(yīng)用電路如下

2.1 充電電路設(shè)計(jì)分析
充電電路也就是一個(gè)降壓電路,并且要求是一個(gè)恒流源,本次競賽選取XL4016為核心降壓芯片,其結(jié)構(gòu)如圖所示。
XL4016降壓模塊電路圖如下所示
2.2 放電電路設(shè)計(jì)分析

XL6019是一款專為升壓、升降壓設(shè)計(jì)的單片集成電路,可工作在DC5V到40V輸入電壓范圍,低紋波,內(nèi)置功率MOS。XL6019內(nèi)置固定頻率振蕩器與頻率補(bǔ)償電路,簡化了電路設(shè)計(jì)。PWM控制環(huán)路可以調(diào)節(jié)占空比從0~90%之間線性變化。內(nèi)置過電流保護(hù)功

能與EN腳邏輯電平關(guān)斷功能。典型應(yīng)用電路如下

三、電路與程序設(shè)計(jì)1電路的設(shè)計(jì)1系統(tǒng)總體框圖













(圖3-1)

系統(tǒng)總體框圖如圖3-1所示,主要由輔助電源、測控電路、雙向DC-DC變換電路等組成,輔助電源為測控電路供電,測控電路用于檢測和控制雙向DC-DC電路,以及電壓電流的采集與控制。

  • 降壓電路原理
    降壓電路采用XL4016型8A,180KHz,40V,PWM降壓型直流對直流轉(zhuǎn)換器,最大效率可達(dá)96%。輸出1.25V到36V可調(diào),8A恒定輸出電流能力。
    如下圖3-2所示為XL4016降壓部分電路圖,通過對FB引腳的控制,可有效的實(shí)現(xiàn)電流及電壓的控制。該轉(zhuǎn)換器外圍器件少,低紋波,調(diào)節(jié)簡單,內(nèi)置短路保護(hù)功能。PWM占空比0%到100%連續(xù)可調(diào)。
(圖3-2)

3)升壓電路原理圖
   升壓電路使用XL6019型220KHz、60V、5A開關(guān)電流升壓/降壓型DC-DC轉(zhuǎn)換器。可工作在DC5V到40V輸入電壓范圍,低紋波,內(nèi)置功率MOS、XL6019內(nèi)置固定頻率振蕩器與頻率補(bǔ)償電路,簡化了電路設(shè)計(jì)。PWM控制環(huán)路可以調(diào)節(jié)占空比從0~90%之間線性變化。內(nèi)置過流保護(hù)功能與EN腳邏輯電平關(guān)斷功能。使用單片機(jī)控制EN引腳實(shí)現(xiàn)對升壓模塊開啟與關(guān)斷。
(圖3-3)
  • 測控電路電路原理圖
    測控電路如圖3-4所示,通過電阻分壓濾波后,使用單片機(jī)ADC采樣,得到輸入、輸出電壓,以及電流和2.5V基準(zhǔn)電壓,使用TL431產(chǎn)生2.5V基準(zhǔn)電壓用于矯正。恒壓恒流控制使用單片機(jī)輸出PWM,經(jīng)濾波后使用LM358跟隨,增強(qiáng)驅(qū)動(dòng)能力,同時(shí)可減小輸入控制端的能量消耗。使用比較器比較設(shè)定值與輸出值,再控制芯片的工作狀態(tài)。
(圖3-4)電源
   為減小高頻干擾,輔助電源使用220V到9V普通變壓器,經(jīng)整流濾波后使用7812和HT7333分別輸出12V和3.3V電壓為LM358和單片機(jī)小系統(tǒng)板供電。



2程序的設(shè)計(jì)1程序功能描述與設(shè)計(jì)思路

1程序功能描述

根據(jù)題目要求,軟件部分實(shí)現(xiàn)測量顯示,切換模式,充電過壓保護(hù),控制調(diào)節(jié)系統(tǒng)。

  • 程序設(shè)計(jì)思路

     (1)、首先進(jìn)行,按鍵,OLED各個(gè)內(nèi)設(shè)初始化;

     (2)、進(jìn)行按鍵掃描;

(3)、判斷模式;

(4)、進(jìn)行PWM控制電流,讓輸出為橫流模式;

     (5)、掃描按鍵;

     (6)進(jìn)行打開光耦,讓升壓模塊工作;


3程序流程圖

  1、系統(tǒng)總框圖

     Vin/Vout

2、程序流程圖
四、測試儀器與數(shù)據(jù)分析
4.1 測試儀器
5位半數(shù)字萬用表,4位半萬用表

4.2測試數(shù)據(jù)與分析
(1)U2=30V條件下對電池恒流充電,電流I1在1-2A變化過程中測量值如下表:
按按鍵次數(shù)
1
2
3
4
5
6
7
8
9
10
I1測量值(A)
1
0.99
1.01
1.06
1.07
1.10
1.12
1.14
1.16
1.17
(2)設(shè)定I1=2A,使U2在24-36V范圍內(nèi)變化時(shí),測量記錄I1的值。數(shù)據(jù)如下:
U2(V)
24
25
26
27
28
29
30
31
32
36
I1(A)
1.99
1.98
1.98
1.99
1.97
1.98
1.99
1.96
2.01
1.99
(3)設(shè)定I1=2A,在U2=30V,測量U1,I2,計(jì)算效率。數(shù)據(jù)如下:
當(dāng)I1=2A,U2=30V時(shí),測得I2=1.47A,U1=20V,由此計(jì)算效率為97%。
(4)放電模式下,保持U2=30V,計(jì)算效率,數(shù)據(jù)如下:
當(dāng)U2=30V時(shí),I2=1.02A,U1=18.9V,I1=0.63A,由此計(jì)算效率為98%。
(5)使US在32-38V范圍內(nèi)變化時(shí)U2記錄如下:
Us/V
32
33
33
34
35
36
37
U2/V
29.7
29.8
29.8
29.9
29.8
30.3
30.4









以上數(shù)據(jù)可以說明,本次設(shè)計(jì)的雙向DCDC變換器,各項(xiàng)指標(biāo)均在題設(shè)范圍內(nèi),是符合要求的。

1




附錄1:電路原理圖

單片機(jī)源程序如下:

  1. #include<reg52.h>
  2. #include <intrins.h>
  3. #include <I2c.h>
  4. unsigned char ReadADC(unsigned char Chl); //AD采樣,有返回值
  5. void DAC(unsigned char Data);            //DA輸出
  6. void delay(unsigned char j);            //
  7. unsigned int datpro(void);             //電壓采樣數(shù)據(jù)處理
  8. void led(int g,int a);                //數(shù)碼管顯示
  9. void out_AD_led();                   //輸出采樣電壓1
  10. void DA_out();                      //DA輸出控制
  11. sbit key_1 = P3^4;
  12. sbit key_2= P3^5;
  13. sbit duan=P2^6;
  14. sbit wei=P2^7;
  15. sbit in0 = P3^2;

  16. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d ,0x07,0x7f,0x6f,0x00};
  17. unsigned char num=102;  //DA數(shù)模輸出變量初始值
  18. int main()
  19. {
  20.               while(1)
  21.                             {            
  22.                                          
  23.                                           DA_out();
  24.                                           DAC(num);
  25.                                           out_AD_led();
  26.                             }
  27. }
  28. void out_AD_led()                          //
  29. {
  30.               led(1,datpro()/1000);
  31.               led(2,datpro()%1000/100);
  32.               led(3,datpro()%100/10);
  33. }
  34. unsigned char ReadADC(unsigned char Ch)  // 讀取AD模數(shù)轉(zhuǎn)換的值,有返回值
  35. {
  36.                             unsigned char Data;
  37.                             Start();        //寫入芯片地址
  38.                             Send(AddWr);
  39.                             Ack();
  40.                             Send(0x40|Ch);//寫入選擇的通道,本程序只用單端輸入,差分部分需要自行添加
  41.                                               //Ch的值分別為0、1、2、3,分別代表1-4通道
  42.                             Ack();
  43.                             Start();
  44.                             Send(AddRd);    //讀入地址
  45.                             Ack();
  46.                             Data=Read();    //讀數(shù)據(jù)
  47.                             Scl=0;
  48.                             NoAck();
  49.                             Stop();
  50.                             return Data;   //返回值
  51. }
  52. unsigned int datpro(void)                //

  53. {
  54.               unsigned int dianyah,dianyal;
  55.               unsigned int dianya=0;
  56.               unsigned char x;
  57.               for(x=0;x<6;x++)
  58.               {   
  59.                             dianya=ReadADC(1)+dianya;//輸入通道選擇通道
  60.               }
  61.               dianya=dianya/6;
  62.               dianyah=dianya&0xf0;
  63.               dianyah=dianyah>>4;
  64.               dianyal=dianya&0x0f;
  65.               dianya=dianyal*20+dianyah*310;
  66.               return(dianya);
  67. }

  68. void DA_out()                          //
  69. {
  70.               if(key_1 == 0)
  71.                             {  
  72.                                           delay(10);
  73.                                           while(key_1 == 0);
  74.                                           num=num - 1;
  75.                             }                                                            
  76.               if(key_2==0)
  77.                             {  
  78.                                           delay(10);
  79.                                           while(key_2==0);
  80.                                           num=num + 1;
  81.                             }
  82. }
  83. void DAC(unsigned char Data)          //
  84. {
  85.               Start();
  86.               Send(AddWr); //寫入芯片地址
  87.               Ack();
  88.               Send(0x40);  //寫入控制位,使能DAC輸出
  89.               Ack();
  90.               Send(Data);  //寫數(shù)據(jù)
  91.               Ack();
  92.               Stop();
  93. }
  94. void led(int g,int a)              //
  95. {
  96.               if(g==1)
  97.               {
  98.                             P0 = 0Xfe ;
  99.                             wei = 1;
  100.                             wei = 0;
  101.                             P0 = table[a];
  102.                             duan = 1;
  103.                             delay(2);
  104.                             duan = 0;
  105.               }
  106.                             if(g==2)
  107.               {
  108.                             P0 = 0Xfd ;
  109.                             wei = 1;
  110.                             wei = 0;
  111.                             P0 = table[a]|0x80;
  112.                             duan = 1;
  113.                             delay(2);
  114.                             duan = 0;
  115.               }
  116.                             if(g==3)
  117.               {
  118.                             P0 = 0Xfb ;
  119.                             wei = 1;
  120.                             wei = 0;
  121.                             P0 = table[a];
  122.                             duan = 1;
  123.                             delay(2);
  124.                             duan = 0;

  125.               }
  126.                             P0 = 0Xf7 ;
  127.                             wei = 1;
  128.                             wei = 0;
  129.                             P0 = 0x3e;
  130.                             duan = 1;
  131.                             duan = 0;
  132. }
  133. void delay(unsigned char j)       //
  134. {
  135.               unsigned int i;
  136.               for(;j>0;j--)
  137.               for(i=0;i<125;i++);
  138. }


  139. #include <intrins.h>
  140. #define AddWr 0x90    //寫數(shù)據(jù)地址
  141. #define AddRd 0x91   //讀數(shù)據(jù)地址


  142. sbit RST=P2^4;      //關(guān)掉時(shí)鐘芯片輸出
  143. sbit Sda=P2^0;     //定義總線連接端口
  144. sbit Scl=P2^1;    //時(shí)鐘信號(hào)


  145. void Start(void)  //啟動(dòng)IIC總線
  146.   {
  147.    Sda=1;
  148.    _nop_();
  149.    Scl=1;
  150.    _nop_();
  151.    Sda=0;
  152.    _nop_();
  153.    Scl=0;
  154.   }

  155. void Stop(void) //停止IIC總線
  156.   {
  157.    Sda=0;
  158.    _nop_();
  159.    Scl=1;
  160.    _nop_();
  161.    Sda=1;
  162.    _nop_();
  163.    Scl=0;
  164.    }

  165.    void Ack(void)//應(yīng)答IIC總線
  166.    {
  167.     Sda=0;
  168.               _nop_();
  169.               Scl=1;
  170.               _nop_();
  171.               Scl=0;
  172.               _nop_();
  173.               }

  174. void NoAck(void)  // 非應(yīng)答IIC總線
  175.               {
  176.               Sda=1;
  177.               _nop_();
  178.               Scl=1;
  179.               _nop_();
  180.               Scl=0;
  181.               _nop_();
  182.               }

  183. void Send(unsigned char Data) //發(fā)送一個(gè)字節(jié)
  184.               {
  185.                 unsigned char BitCounter=8;
  186.                 unsigned char temp;
  187.                 do
  188.                   {
  189.                             temp=Data;
  190.                             Scl=0;
  191.                             _nop_();
  192.                             if((temp&0x80)==0x80)
  193.                                 Sda=1;
  194.                             else
  195.                                 Sda=0;

  196.                                           Scl=1;
  197.                                           temp=Data<<1;
  198.                                           Data=temp;
  199.                                           BitCounter--;
  200.                               }
  201.                 while(BitCounter);
  202.                     Scl=0;
  203.                 }
  204.             
  205. unsigned char Read(void) // 讀入一個(gè)字節(jié)并返回
  206.               {
  207.                  unsigned char temp=0;
  208.                  unsigned char temp1=0;
  209.                  unsigned char BitCounter=8;

  210.                  Sda=1;
  211.                  do
  212.                    {
  213.                               Scl=0;
  214.           _nop_();
  215.                               Scl=1;
  216.                               _nop_();
  217.                               if(Sda)
  218.                                  temp=temp|0x01;
  219.                               else
  220.                                  temp=temp&0xfe;

  221.                               if(BitCounter-1)
  222.                                  {
  223.                                             temp1=temp<<1;
  224.                                             temp=temp1;
  225.                                             }
  226.                                             BitCounter--;
  227.                                           }
  228.                             while(BitCounter);
  229.                             return(temp);
  230.               }
復(fù)制代碼

完整的Word格式文檔51黑下載地址:
雙向DC-DC變換器.doc (509 KB, 下載次數(shù): 128)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:473159 發(fā)表于 2019-4-19 02:14 | 只看該作者
芯龍芯片有過流嗎?好像比較貴啊,支持國產(chǎn)
回復(fù)

使用道具 舉報(bào)

板凳
ID:439144 發(fā)表于 2019-5-13 12:52 | 只看該作者
電路原理圖看不清
回復(fù)

使用道具 舉報(bào)

地板
ID:312535 發(fā)表于 2019-7-22 14:37 | 只看該作者
這個(gè)圖片好模糊啊
回復(fù)

使用道具 舉報(bào)

5#
ID:472364 發(fā)表于 2019-10-14 17:57 | 只看該作者

電路原理圖看不清
回復(fù)

使用道具 舉報(bào)

6#
ID:592475 發(fā)表于 2020-1-25 10:41 | 只看該作者
#在這里快速回復(fù)# 電路原理圖看不清
回復(fù)

使用道具 舉報(bào)

7#
ID:325624 發(fā)表于 2020-1-27 17:09 | 只看該作者
這個(gè)用來參考制作可調(diào)電源非常不錯(cuò),贊一個(gè)?
回復(fù)

使用道具 舉報(bào)

8#
ID:689942 發(fā)表于 2020-2-4 15:29 來自手機(jī) | 只看該作者
protues上找不到XL6019啊,請問怎么辦
回復(fù)

使用道具 舉報(bào)

9#
ID:97678 發(fā)表于 2023-5-26 14:21 | 只看該作者
請教一下: XL4003 芯片可以設(shè)計(jì) 輸出 正負(fù)電源?
回復(fù)

使用道具 舉報(bào)

10#
ID:56054 發(fā)表于 2023-11-30 16:58 | 只看該作者
沒有實(shí)際意義的資料,單片機(jī)PWM部份和LM358部份電路都沒有
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本视频免费观看 | 亚洲国产成人精品久久久国产成人一区 | 久久久久久久国产精品 | 国产一区二区三区四区五区加勒比 | 欧美高清性xxxxhdvideosex | 一区二区免费 | 欧美性猛交 | 天天综合网7799精品 | 免费久久久 | 成人深夜福利在线观看 | 高清免费在线 | 婷婷激情在线 | 狠狠入ady亚洲精品经典电影 | 日韩欧美亚洲 | 欧美一级二级在线观看 | 午夜精品久久久 | 99精品欧美一区二区三区综合在线 | 欧美一级片a | 亚洲午夜一区二区 | 在线视频第一页 | 午夜免费视频 | 中文字幕在线观看国产 | 日韩一级 | 欧美一区二区综合 | 亚洲男人天堂 | 欧洲视频一区 | 91在线视频网址 | 久久久久久国产精品久久 | 亚洲第1页| 日韩爱爱网站 | 中文字幕国产一区 | 福利网址 | 国产精品国产a | 亚洲黄色av | 亚洲一区二区精品视频在线观看 | 人人鲁人人莫人人爱精品 | 天堂素人约啪 | 华丽的挑战在线观看 | 亚洲免费在线观看 | 久久精品中文字幕 | 日韩在线观看一区 |