版本协议

GPL 3.0

标签
标准版
#第五届立创电子#线性预稳压/DCDC双模切换两象限电源

创建时间:4年前

项目主题:直流可调电源设计

视频

  • test0005 [最优化的质量和大小].mp4

  • test2_0005 [HEVC 720p] [最优化的质量和大小].mp4

  • VID_20200909_230519 [最优化的质量和大小].mp4

  • 负载模式.mp4

  • 校准功能.mp4

描述

<h1>1、自我介绍</h1> <p>本人是在校学生,STM32稍微入门的水平,想学习多一种单片机,GD32或许是个不错选择。</p> <h1>2、项目简介</h1> <p>想要做一个功能尽可能全都要的电源,见识过IMAXB6充电器,发现了几个缺点,于是在他的基础上进行改造。</p> <h1>3、项目描述</h1> <p>作为数控电源,首先要分成4大模块:<strong>功率,数模,模数,人机交互</strong>。</p> <p>授人以鱼不如授人以渔。</p> <p>我认为硬件开源的项目,比起只是把图丢出来,秀秀功能,发个HEX。还不如把原理讲清,让别人吃透你的设计,才算分享。</p> <h2>硬件细节</h2> <p>说到电源,首先从功率部分讲起</p> <p><strong>功率回路:</strong></p> <p>输入-->xl4501(我以前开源的升降压拓扑,点我个人主页查看)-->LM317(进一步稳压)-->ACS712(霍尔电流采样)-->输出 <img src="//image.lceda.cn/pullimage/Dddsu0rE7pqJj0dvOW8xP3c3Ky3YyeAzVZVdgPvH.png" alt="image.png"></p> <p><strong>假负载回路:</strong></p> <p>输出端电流反向流入-->ACS712(霍尔电流采样)-->IRF1404(低导通电阻MOS管)-->R12(取样电阻)-->GND</p> <p><img src="//image.lceda.cn/pullimage/6cjYtFcyfq97wU13xtUAr8NKAxlXyiLdsmZ127b6.png" alt="image.png"></p> <p><strong>外设电压产生:</strong></p> <p>首先是中间电压:</p> <p><img src="//image.lceda.cn/pullimage/H0W9HYovQHpGYyGZhCQCieZGO8A41keABe5I1wcW.png" alt="image.png"></p> <p>功率5V供电:</p> <p><img src="//image.lceda.cn/pullimage/hw6K0fTjqddP0cyvkDw0GkGIoXBQN0QfbD0Uzb1t.png" alt="image.png"></p> <p>-5V产生:</p> <p><img src="//image.lceda.cn/pullimage/vp2B5mcP3jhQv9WSYcEOupPCV7pXYlskuBCUFTKn.png" alt="image.png"></p> <p>其实降压拓扑的ic都是可以用来产生负压的(包括同步整流的ic),</p> <p>而现在新的PDF一般不会写出来。你百度出来的图基本都是MC34063,这个芯片很全能,但效率上不去。</p> <p>话虽如此,但里面的拓扑很值得学习。</p> <p><strong>简单的电源滤波电路:</strong></p> <p>RC滤波后,经过三极管放大,从而抑制纹波。</p> <p><img src="//image.lceda.cn/pullimage/u7TD6WCW9EUeKZXVGXyr2K2EG64DGAHzfQX2lDZd.png" alt="image.png"></p> <p><img src="//image.lceda.cn/pullimage/nfrbf4oQHs9GwcoGVAifHcMmkxS4VlhECFQk2ZY8.png" alt="image.png"></p> <h5>关于电源这图的线性降压为什么不用1117-5,而是用7805呢?</h5> <p>这要从纹波抑制这个参数说起。</p> <p>下面这图是1117的,作为低压差稳压块(LDO)来说,由于用P管作调整管,这曲线符合预期。</p> <p><img src="//image.lceda.cn/pullimage/xk7tQ70zLMaPu0xEkeTL8uhnXhmNCbaN4H5xIgfc.png" alt="image.png"></p> <p>下图是7805的,由于采用N管调整,对输入的干扰不是敏感,所以高频的纹波抑制上去的。</p> <p>这对于DCDC再线性稳压给精密部分是有好处的。</p> <p>(功率部分线性稳压采用LM317同理,大电流低压降的型号有LM1084)</p> <p><img src="//image.lceda.cn/pullimage/UBLuBxIDeg9dowN7z8bGUOPeKkZbspPWAS0rqQhu.png" alt="image.png"></p> <p><strong>反馈调节部分:</strong></p> <p><strong>预稳压跟随:</strong></p> <p>LM317的电压经过R6,R7分压,输入进Q3(PMOS),当Q3的GS电压到达导通阀值时,Q3导通,FB拉高,</p> <p>使得XL4051输出变低,不通过单片机控制便能电压跟随,按照图上的参数,实测LM317两端电压为3V。</p> <p>而且R10的下方并不是接GND的,而是接到其中一个DAC的输出,这样便可以0V起调了。</p> <p>【假设:忽略Q3,DCDC_CTRL的电压为1.25V(FB的内部参考电压也是1.25V),则输出电压也稳定在1.25V,</p> <p>如果DCDC_CTRL电压比1.25V高,则输出会比1.25V低(前提是带负载,如果空载,电流会从反馈电阻流到输出)。好比一个反相比例放大电路】</p> <p><img src="//image.lceda.cn/pullimage/AKg1nZMOhea3sgMctjJS0RJQBSUjC5D7pf7Z8Ozc.png" alt="image.png"></p> <p><strong>DAC驱动放大:</strong></p> <p>第一个运放组成巴特沃斯滤波器,用作滤波和增加输入电阻</p> <p>第二个运放组成反相比例放大器,使DAC动态范围在运放电源轨内任意调节,充分发挥DAC位数。</p> <p><img src="//image.lceda.cn/pullimage/vIsI1p1uk11wRWfhZvQTMVa4AehXS5liFyJA3J8P.png" alt="image.png"></p> <p><strong>单端转差分电路:</strong></p> <p>由于想把ADC的分辨率用起来,所以用GS8592(性价比很高的精密轨对轨运放),做了单端转差分电路, 但目前的情况是电流读数不是很稳定,不确定这个电路是可靠的,等排查了问题修改了电路再重新编辑。</p> <p><img src="//image.lceda.cn/pullimage/Hm0EwKI0WMtw6zJMOCVFyLfRSOXCtDu3beo4EQOq.png" alt="image.png"></p> <p><strong>人机交互的IO复用:</strong></p> <p>LCD1602是EN下降沿才加载数据,其他时候数据脚是可以做其他用途的,</p> <p>这里我引出一个按键使能端,置低后,便能读取按键状态了</p> <p><img src="//image.lceda.cn/pullimage/mF59USSWnPo8xWxAPtgWn4Wp8tZpXC2P11eBmLJ6.png" alt="LCD.png"></p> <h1>软件细节</h1> <p>这是温度采样的原理图,通过三极管电流镜电路产生4mA的恒定电流流过NTC电阻</p> <p><img src="//image.lceda.cn/pullimage/vx3Gy7kSaWLlKyDQV1puR4t9NgoaSEBxipT3O8rG.png" alt="NTC.png"></p> <p>这是从pdf里复制出的电阻表,经过excel的计算转换,导出数组,推荐大家也这么操作</p> <p>(末尾给出腾讯文档链接,可以学习下对应函数)</p> <p><img src="//image.lceda.cn/pullimage/gkMxa4ie0NxKMpV7VnuLCnv6L4v2H07lXPuNSZDQ.png" alt="NTCE.png"></p> <p>经过二分查表法,便能将adc电压转成对于温度,代码如下:</p> <pre><code class="language-language">//输出16~99度 uint8_t ntc_decode(uint16_t dat)//以降序排序的二分法查表 { uint8_t min=0; uint8_t max=83;//限制最大显示99度 uint8_t temp; uint8_t i; for(i=0;i=ntc_code[temp]) max=temp; else min=temp; } for(i=min;i=ntc_code[i]) break; } return i+16; } </code></pre> <p>CGRAM作模拟条显示的代码,具体效果看下面视频</p> <p>通过这个模拟条,节省了1602本来不多的屏幕空间</p> <p>通过实际值与目标值的百分比,让使用者知道当前是恒流还是恒压模式,预估当前设定的值,</p> <p>便于查看更快的变化(万用表刷新的速度一般是4HZ,我这里的字符刷新是5HZ,模拟条是10HZ)</p> <pre><code class="language-language"> void lcd_write(uint8_t dat,uint8_t cmd);//1602写数据,cmd为0为命令,1为数据 void LCD_analog(uint8_t add,uint8_t dat)//模拟条CGRAM加载 { uint8_t temp; lcd_write(0x40+(add</code></pre>

文档

子PCB

主PCB

主控图纸

功率图纸

模数图纸

数模图纸

BOM

暂无

附件

暂无

评论(22)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>两象限电源!这个好像还没发现谁用来参赛,早日做出来,争取取得一个好成绩!</p>
jixin001 回复
<p>啥是两象限电源?求科普。</p>
画板当吃生菜 回复
<p>将电压和电流画成十字坐标系,电压为横坐标,电流为纵坐标,</p><br/><p>第一象限就是平常用的电源:+电压,+电流。第四象限就是负载:+电压,-电流。</p><br/><p>其他象限如此类推。</p><br/><p>该项目说白就是既是数控电源,也是数控负载</p>
立创电赛 回复
<p><span class="colour" style="color: rgb(85, 85, 85);">“GD32杯”第五届立创电子设计大赛【网络人气TOP榜单】更新中,入榜TOP10将获得1000-5000元奖励,详见:</span><a href="https://diy.szlcsc.com/posts/77584d2f66a34eed97ebf5ae488004fb" target="_blank">https://diy.szlcsc.com/posts/77584d2f66a34eed97ebf5ae488004fb</a></p>
kn4869 回复
<p>来学习了</p>
RENO 回复
<p>点赞,写的很详细</p>
ccc54893e 回复
<p>写的很不错,来学习一下<br/>关于CS1237这种高精度运放的使用 可以去B站看“唐老师讲电赛”的视频<br/>他有做过分析CERN开源的八位半电压表的设计缺陷与解决方案视频</p>
meidun 回复
<p>很赞,电路原理都讲明白了。什么时候有源码妮</p>
画板当吃生菜 回复
<p>部分代码复用到下一届参赛的焊台工程里,焊台工程里是开源代码了</p>
deng0794 回复
<p>你好,请问JRC4558D(U10.1)  MCU_VOUT      单片机是什么方式   控制  电源输出  大小?</p>
画板当吃生菜 回复
<p>推挽输出,让反馈电压拉高。使电源不输出</p>
deng0794 回复
<p>是   PWM  模式输出吗?</p>
画板当吃生菜 回复
<p>我搞错了,这个是ADC输入,项目大了网络容易乱</p>
deng0794 回复
<p>哦,那么   控制  电源    0-30V   是那个芯片<br><br/>我一直以为      <span style="color:rgb(51,51,51);">JRC4558D(U10.1)  MCU_VOUT     是PWM   控制  </span></p>
画板当吃生菜 回复
<p>8211 DAC输出的模拟量经过后面4558放大</p>
deng0794 回复
<p>明白</p>
coalbot 回复
<p>请问,-5V生成电路里使用的是什么原理,没看到常用的电感-二极管-电容回路,没看懂怎么生成的</p>
coalbot 回复
<p>还有那个三极管组成的电子滤波器,实际使用中,输出端相对于5V的输入,压降有多少</p>
wjdzahz 回复
<p>电源设计的不错,但是满足不了我的日常需求,怎么扩流呢,改完硬件,程序还需要改吗</p>
画板当吃生菜 回复
<p>放弃了,运放没选择高压摆率的。环路不稳,然后音频DAC不够线性,不如PWM加低通来的好</p>
画板当吃生菜 回复
<p>唯一满意就那个预稳压电路</p>
fupingyi 回复
<p>大佬,怎么没有看到程序文件~</p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow