by:湖北民族大学 智能科学与工程学院 龙子鸣
2023.3.5
转载以及运用请注明出处!!!
摘要:
本文介绍了一种基于LM2596和ESP32的数控直流电源设计。该电源采用LM2596为主要电源芯片,ESP32作为控制芯片,实现对电源输出电压的精确控制。题目要求如下:
一:电源芯片选型以及理论分析
1.1电源芯片选型
在ESP32数控电源设计中,电源芯片的选型是非常重要的环节。常见的电源芯片有线性稳压芯片和开关稳压芯片两种类型。在线性稳压芯片中,LM317是一种较为常见的芯片,而在开关稳压芯片中,LM2596是一种较为常用的芯片。
LM317是一种可调线性稳压器,具有简单的电路结构、稳定的输出电压和较高的精度,适用于低功率应用。但是,LM317的效率较低,在高负载情况下容易发热,需要散热器等额外的电路设计,且电流输出能力较弱,无法满足要求。
相比之下,LM2596是一种开关稳压芯片,具有高效率、低压降和较好的负载能力等优点,适用于中高功率应用。它可以通过外部电路进行调节和控制,可以实现对输出电压的精确控制,同时还具有多种保护功能,如过压保护、过流保护和短路保护等。
1.2理论分析
在此特别感谢这篇文档的博主,本文设计思路均来源于: (28条消息) 关于用LM2596做的DC-DC数控电源_lm2596数控电源_想吃&想胖的博客-CSDN博客
最主要起到反馈作用的是FB反馈端,我也就是通过调整FB反馈端电压值从而达到电压可调的目的。
此电路在原作者的基础上,有所修改:
原博主在DAC输入部分采用了一级运算放大器同向放大电路用于将单片机输出的DAC电压提升十倍(可自行百度搜索:同向放大电路),公式为:Vo = (1+R2/R1)Vi。修改的地方是:将下图中的9KΩ换为了10Ω,放大倍数相当于1.001倍,相当于没有放大,在实测的过程中,并不需要放大。
原博主在反馈端采用的分压电阻为15kΩ.为达到在12V内可调,实测在6.2KΩ是输出电压最大为:13V,满足要求,故修改R2为6.2K欧姆。
原博主在采样电阻部分使用 是5mR的金属采样电阻,在实际运用中,由于电阻的阻值太小,在弱电流的工作环境下,电流检测放大倍数需要足够大,所以,选择200mR的金属采样电阻。
新增电流测量以及电流不测量挡位,可使用2.54 1*2P跳线帽进行选择。
新增一级LC滤波电路,滤除相应纹波。
关键的理论如下图所示:
根据以上叙述最后画出以下电路:
特别注意,运算放大器的输入电压应该大于5V,我采用的是12V供电,理论输出最大电压为12V.
二:单片机选型以及模块选型
2.1单片机选型分析
在数控电源中,选择单片机的关键因素包括性能、功耗、内存和外设接口等。以下是ESP32与其他单片机的对比分析。
首先,我考虑了Atmel公司的ATmega328P单片机,它是一个流行的低成本微控制器,用于许多开源硬件项目。ATmega328P的性能相对较低,具有8位处理器和20 MHz时钟频率。它只支持UART、SPI、I2C等有限的外设接口,并且没有内置的Wi-Fi和蓝牙模块。虽然ATmega328P是一种可靠的选择,但它的性能和功能限制了它在数控电源中的应用。
其次,我考虑了ST公司的STM32F103C8T6单片机,它是一种基于Cortex-M3内核的高性能微控制器。STM32F103C8T6具有72 MHz的时钟频率和64 KB的闪存内存,支持多种外设接口,如UART、SPI、I2C、USB等。虽然STM32F103C8T6的性能比ATmega328P更高,但它仍然没有内置的Wi-Fi和蓝牙模块。此外,STM32F103C8T6的功耗较高,适用于功率要求较高的应用。
最后,我考虑了ESP32芯片,它是一种性能和功耗平衡的解决方案。ESP32具有双核64位处理器,最高240 MHz的时钟频率和520 KB的SRAM内存。它还内置了2.4 GHz Wi-Fi和蓝牙4.2双模支持,以及丰富的外设接口,如UART、SPI、I2C、ADC等。ESP32还支持多种睡眠模式,可以实现低功耗应用。在数控电源中,我需要使用Wi-Fi和蓝牙模块与其他设备进行通信,并需要高性能来实现快速响应和精确控制。因此,我选择ESP32作为数控电源的单片机。
2.2模块选型分析
2.2.1 ADC采样模块
ESP32的ADC采样准确性与其工作条件和外部环境有关。在理想情况下,ESP32的ADC可以实现12位分辨率,即可以将电压转换为数字值,范围在0到4095之间。这意味着,如果使用3.3V参考电压,每个数字单位相当于3.3V/4096 ≈ 0.0008V,即0.8mV。因此,ESP32的ADC在理论上可以实现相对较高的准确性。
但是,实际上,ESP32的ADC采样精度可能会受到多种因素的影响。例如,ESP32的ADC可能受到温度变化、供电噪声、输入信号噪声等因素的干扰。此外,ESP32的ADC还具有非线性误差和漂移误差,可能会导致测量误差。因此,为了确保ESP32的ADC采样精度,需要在设计和应用中考虑这些因素,并采取适当的措施。
因此,为满足采样精准度,我们ADC采样采用了模块模块来达到目的,最常用的ADC模块---ADS1115.
某宝的售价在10-20不等,分为进口原装和国产替代两个版本。
参照datasheet中的描述,我们采用的5V供电,便可实现-0.3 ~ 5.3的ADC电压输入检测。我们的输入电压为0~12V,经过分压之后输入ADC的电压范围为:0~1.2V故,采用ADS1115 12位ADC采样芯片满足要求,具体的实现过程可以参考优信电子(电子人都熟悉的某宝商铺,哈哈~)这篇博客:(28条消息) Arduino UNO驱动ADS1115模数转换模块_arduino uno 可以数模转换吗_优信电子的博客-CSDN博客
2.2.2 DAC模块
DAC 模块的用途也就是用来改变LM2596-ADJ反馈端的电压值,因此需要较高的精准度,虽然esp32拥有DAC输出口,但是当esp32与服务器交互时,可能会出现DAC电压的下降(参考的某一篇博客),所以选择了单独的模块设计。
的选择非常简单,就是一个偶然间刷到了一篇CSDN的博客,没错又是优信电子的。(28条消息) 51系列、arduino、stm32系列驱动DAC模块TLC5615输出指定电压(可修改为波形输出)_dac驱动指针电压表_优信电子的博客-CSDN博客
2.2.3 OLED模块
这个模块没什么好讲的,既然能够研究到到数控电源的朋友,我相信OLED 一定是个小case,所以OLED在这里就不展开了,具体的可以参考以下博客:
ESP8266--Arduino开发(驱动OLED显示文字和图片)_esp8266驱动oled屏代码_贝勒里恩的博客-CSDN博客
三:功能调试
3.1输出电压调试
在原理部分引用原理博客中,说到:最后的DAC输出电压与LM2596-ADJ的输出电压时一个非线性关系,可能需要用到单片机的补偿,会用到反馈补偿算法,可能是由于原博主没有时间完善以及论证,在我的三版PCB之中,经过数次的理论推导研究,最后得到的关系是一个线性关系,且R²的值可达到0.999978。操作流程如下;
连接好电路;
校准TLC5615的电压,在上面关于TLC5615的博客中说到计算公式为:输入数值=Vout*250(大家可以自行尝试,最后的输出电压一定不是你期待的那个值,多多少少会有偏差);可能这是理想情况下的数值,在实际的测试过程中,这个公式是需要自己拟合的(定义N个输入数值,测得输出电压,最后通过数学工具,Excel or Matlab得到最后的关系式,建议N大于10),最后得到线性关系。
上一步说到的是,TLC5615的输入数值和输出电压的关系拟合,也就是说这时候的TLC5615的输出电压为一个标准值。通过调节TLC5615 的输出(上面已经介绍了-0.3~5.3V可调),然后观察LM2596-ADJ的输出电压的变化并记录数值。记录这一部分可以通过单片机写一个步进值,通过延时改变步进值,读取电压表示数即可。
然后再通过数学工具拟合出TLC5615输出电压关于LM2596-ADJ输出的函数关系式。
两个公式综合以下,就可以得到单片机输入TLC5615的值与LM2596-ADJ的输出关系式,99.999999999999999%是一个线性关系。
最后公式写入代码,便可以达到输出可调的目的。
3.2输出电压检测调试
和之前说的TLC5615一样,通过单片直接读取到的ADC的数值并不是非常准确的数值,有以下两个原因,第一:前级电路采用了分压连接的方式;第二:ADC模块的本身问题。所以在这里也是需要有一个拟合的步骤。
连接好电路
直接输出单片机读取到的ADC数值,同时对LM2596-ADJ的输出电压进行记录,ADC 的值与输出电压做函数关系拟合得到准确的函数关系。
公式写入代码便可实现输出电压检测到目的。
四:总结
为了达到目标电压的准确性很多的工作都会很枯燥,例如数据的记录,数据的拟合等等,可能一个数据测试就会耗上大半天,耐住枯燥;
模块的公式不是绝对的,一定要动手去拟合,不拟合一定出不来精准度高的电压;
芯片购买一定选择正版芯片!
本文所使用的ESP32可以替换为其他单片机,请勿局限,只是为了更好的对接物联网。
在校准各类电压时所用的万用表建议使用高精准度万用表,或者最终演示时的万用表与校准万用表保持一致。
特别注意,转载请注明出处,禁止一切商用目的(包含售卖课程设计方案等),违者必究!!!!交流Q:2691721905文章来源:https://www.toymoban.com/news/detail-813221.html
在此再次感谢上面各位博主的理论提供!!!文章来源地址https://www.toymoban.com/news/detail-813221.html
到了这里,关于基于LM2596和ESP32的数控直流电源的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!