一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 5864|回复: 49
收起左侧

[avr] 另一个《小改M8V7数控电源》

[复制链接]
发表于 2021-8-25 23:49 | 显示全部楼层 |阅读模式
本帖最后由 cdhigh 于 2023-1-12 20:10 编辑

GandF前辈的M8V7电源用了一段时间,确实不错,精度很高,稳定性也可以。
用着用着就想折腾,继续做点什么修改,然后就研究原理图和代码,
并借鉴(抄袭)坛友 @sln.1550 的工作 <小改M8数控电源>
<https://www.yleee.com.cn/thread-54174-1-1.html>

给M8V7增加了几个功能:  
1. 温度显示,支持LM35/LM19温度传感器。  
2. 散热器风扇自动开关,大于45度开,小于40度关。 (平时没有风扇噪音,不积尘)  
3. 温度保护,温度超过90度直接停机,避免烧调整管。  
4. 软关机,锁定状态下长按电压按键开机和关机。  
5. 短路保护,可选关闭/仅声音提示/打嗝保护。  
6. 输出电量,对电池充电时可以简单了解电池容量。  
7. 修正原版V7.20固件对"两定位一脉冲"编码器的兼容性问题。(故障现象是编码器按键时灵时不灵,可能需要按多次才能开始调电压电流)

使用此固件的条件(重要的事情写在前面):
此固件使用M8的三个管脚:
1. ADC0(23脚): 测温,原版电路就没用此管脚。
2. PD1(3脚) [贴片封装则为31脚]: 风扇开关,原版电路的此管脚用作串口输出。
3. PC5(28脚): 蜂鸣器,原版电路此管脚连接液晶的RW,但是代码中未使用。
    如果你不想温度显示,不想自动风扇,不需要蜂鸣器,
    则直接断开PC5(28脚)到液晶的连线,然后液晶模块的第5脚直接连接到液晶模块的第1脚即可。  



以下是逐个功能解释:

1. 温度显示  
   GandF的原M8V7的ADC0(23脚)没有使用,所以我就使用此管脚接入温度传感器,   考虑热电偶的温度曲线为非线性,计算量大或温度表大,而且热电偶的B值有很多种,不校准则温度不够准确,也较难适配。
   所以综合考虑最终使用输出电压为线性的温度IC,我手上刚好有一个LM19,不过我也随手写了代码支持更常见的LM35,你可以选择任意一个。
   LM35/LM19一般为TO92类似三极管封装,   1脚接5V,2脚接M8的23脚,3脚接地。
LM35.png

   然后将LM35使用适当的方法固定在散热器上即可。

   1602屏:温度显示在第二屏第二行左侧,和输出电量交替显示。
   1604屏:温度显示在第四行左侧,和输出电量交替显示。
   2004屏:温度固定显示在最后一行最右侧。

1602第二屏显示效果(GIF):  
1602-第二屏切换效果.gif

1604屏显示效果(GIF):  
1604切换效果.gif

2004屏显示效果:  
2004-正常.png


2. 散热器风扇开关  
   因此固件取消了RS232输出,所以风扇开关使用PD1(3脚),最简单的方式是直接接一个超小型的5V继电器(我曾经测试过一个超小型的5V继电器,电流小于20mA),但是可能不好找。
   或者使用三极管缓冲。因为我的风扇使用其他电源,不希望和控制板共地,所以我做了一块光耦隔离小洞洞板。
   以下几个控制电路看情况任选一个即可。
风扇控制小板1.png
风扇控制小板2.png

风扇控制小板3.png

风扇控制小板4.png

3. 温度保护  
   温度超过90度后直接屏幕显示 HIGH TEMP! 然后关掉输出,风扇继续运行进行降温,需要重启电源才能恢复。
high_temp.png   
  
4. 软关机  
   在锁定状态下长按电压编码器按键2秒则弹出屏幕提示:Power off?,使用电压编码器选择 YES 并按下按键后关机。
   关机状态也是长按电压编码器弹出提示:Power on?
   1602/1604屏幕软关机后在输出电流的位置上交替显示输出电流和“OFF”。
   2004屏幕则在第一行最右侧显示 OFF(平时显示ON)。

提示关机:  
2004-确认是否关机.png

1602软关机后显示效果:  
1602-软关机切换效果.gif


2004软关机后显示:  
2004-已关机.png

注:软关机后还有0.09V电压是由 R81/R82 从输入电压中传递过来的,原电路中使用此两个电阻分压来检测输入电压。

5. 短路保护  
   此功能可以搭配蜂鸣器使用。
   断开M8的PC5(28脚)和液晶的连线,液晶的RW(液晶模块的第5脚)直接接地(液晶模块的第1脚)。
   然后使用PC5(28脚)接一个有源蜂鸣器到地(如果你不放心,可以接一个三极管缓冲),可以串接一个小电阻来调整为合适的音量,避免太吵。

   如果不需要蜂鸣器,也可以一个LED串电阻做发光提示,
   如果声光提示都不想要,M8的28脚悬空即可(还需要断开和液晶的连线)。
   使用方法:
   按住电压按键开机进入校准菜单,选择"short protect",有三个选项:
   1. off,默认值,M8V7原始的功能,短路后输出你设定的电流。
   2. beep,检测到短路仅蜂鸣器声音提示。
   3. hiccup,打嗝式保护,检测到短路后关掉输出,并且声音提示,1秒后打开输出,检测到短路继续关闭,如此反复。
adjust_short_pure1.png
adjust_short_pure2.png


6. 输出电量  
   单位为 Ah,因为我觉得Ah更直观一些,如果需要Wh自己乘以电压即可。   此功能在充电时比较有用,尽管充入的电量不等于电池的实际电量,但是对于锂电池来说这两个值比较接近,对于其他电池也可以作为参考。
   1602屏:电量显示在第二屏的第二行左侧,和温度交替显示。
   1604屏:电量显示在第四行左侧,和温度交替显示。
   2004屏:电量固定显示在第四行左侧。

   用法:
   要充电时接好电池,在锁定状态下长按电流编码器按键2秒则屏幕提示:Clear Ah?,使用电压编码器选择 YES 并按下按键则清零。
   输出电流大于20mA才累积到输出电量。
2004-确认是否清零.png


附:2004屏幕显示说明(界面布局抄袭于sln.1550):
2004-正常.png

PS1: 我研究了很久,找不到比较好的办法给我的电源安装LCD2004,空间不够,螺丝位也难办,所以我自己的电源还是使用LCD1602,不过已经够用了,功能都支持。
PS2: 我发现M8的一个额外用途,在软关机情况下,M8电源可以当作比较准确的电压表使用(和三位半一样的精度),比如测试电池电压什么的,注意正负极即可。

此固件将各种显示屏的支持代码分开了,为了方便,自己写了一个小脚本,自动编译出多个HEX。
附件固件压缩包里面有 50V/30V - 10A/5A - LCD1602/1604/2004 - nosensor/LM35/LM19 这几个变量的排列组合共36个 HEX,按照您的要求选用即可。
注意请同时刷HEX和EEP,因为EEPROM的内容和GandF原版的有所不同。

熔丝位:低位0x3f,高位0xd7,扩展位0x00
M8V7_V726.rar (287.01 KB, 下载次数: 119)


我的固件和sln.1550的固件最大的区别是我的固件保留GandF设计的操作习惯,

短按电压编码器调电压,短按电流编码器调电流,

增加的操作为:

长按电压编码器开关机,长按电流编码器清零输出电量。

另一个区别是sln.1550的固件测温使用热电偶,我使用测温IC。

和M8V7原GandF固件还有一个操作变化是校准过程中最后询问是否保存校准数据,原固件是长按确认,我修改为点按确认。

当然,能这么好玩是因为GandF的无私开源,谢谢GandF。










评分

参与人数 2一乐金币 +200 收起 理由
banguangan + 100 赞一个!
Joe_Black + 100 很给力!

查看全部评分

发表于 2021-8-27 08:42 | 显示全部楼层
老大,我的m8v7电源,出现个奇怪的故障,开机没有输出,Vo显示为0,但是在输出端接入一个电压然后,一切都变得正常了。
初步检测了电路,坏了一个电压跟随板上4148二极管,更换后故障依旧。
请问大佬能否帮忙分析下哪里出问题了。

点评

感谢 两位帮忙。但是没有解决问题  详情 回复 发表于 2021-8-28 20:33
电压跟随压差要大于3v,也就是说,上电后至少要输出3v,查一下电压跟随板的分压电阻或tl431(如果有的话)  详情 回复 发表于 2021-8-27 17:17
先不要 电压跟随 的电路,试试是否正常吧  详情 回复 发表于 2021-8-27 09:41
发表于 2021-8-27 09:41 | 显示全部楼层
sisihean 发表于 2021-8-27 08:42
老大,我的m8v7电源,出现个奇怪的故障,开机没有输出,Vo显示为0,但是在输出端接入一个电压然后,一切都 ...

先不要 电压跟随 的电路,试试是否正常吧
发表于 2021-8-27 15:53 | 显示全部楼层
太牛叉了,感谢!不用温度检测的话,程序会不会出错?

点评

可以不要温度,压缩包里面有 nosensor 的就是, 不过还是要断开液晶屏rw的连线,然后rw接地  详情 回复 发表于 2021-8-27 17:58
 楼主| 发表于 2021-8-27 17:17 来自手机 | 显示全部楼层
sisihean 发表于 2021-8-27 08:42
老大,我的m8v7电源,出现个奇怪的故障,开机没有输出,Vo显示为0,但是在输出端接入一个电压然后,一切都 ...

电压跟随压差要大于3v,也就是说,上电后至少要输出3v,查一下电压跟随板的分压电阻或tl431(如果有的话)

点评

感谢帮助。现在问题解决了,但是还没有搞明白为什么。我重新校准了一下VI,把设置值设得比实际输入电压高了3V,结果就好了。  详情 回复 发表于 2021-8-29 16:18
 楼主| 发表于 2021-8-27 17:58 来自手机 | 显示全部楼层
banguangan 发表于 2021-8-27 15:53
太牛叉了,感谢!不用温度检测的话,程序会不会出错?

可以不要温度,压缩包里面有 nosensor 的就是,
不过还是要断开液晶屏rw的连线,然后rw接地
发表于 2021-8-28 13:47 | 显示全部楼层
真了不起!抽个时间也把我的那个M8电源改一下,谢谢分享。
发表于 2021-8-28 20:33 | 显示全部楼层
sisihean 发表于 2021-8-27 08:42
老大,我的m8v7电源,出现个奇怪的故障,开机没有输出,Vo显示为0,但是在输出端接入一个电压然后,一切都 ...

感谢 两位帮忙。但是没有解决问题
发表于 2021-8-28 21:17 | 显示全部楼层
感谢分享,回头我也试着改一下!!!!
发表于 2021-8-29 16:18 | 显示全部楼层
cdhigh 发表于 2021-8-27 17:17
电压跟随压差要大于3v,也就是说,上电后至少要输出3v,查一下电压跟随板的分压电阻或tl431(如果有的话 ...

感谢帮助。现在问题解决了,但是还没有搞明白为什么。我重新校准了一下VI,把设置值设得比实际输入电压高了3V,结果就好了。

点评

软件内判断输入电压大于3v才打开输出,所以可能输入电压检测部分有问题,检查R81/R82。  详情 回复 发表于 2021-8-29 18:13

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-26 00:03 , Processed in 0.143797 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表