本帖最后由 cdhigh 于 2022-11-12 18:07 编辑
不久前成功让M8V7“用上”12864屏,方法是尽量裁剪和优化代码,然后将部分字库存放在EEPROM中,这样才勉强勉强的霸王硬上弓,将那么多代码塞到M8小小的FLASH里面。 但是我感觉意义不大,将12864退化为1604,没有充分利用12864的点阵优势,就没有继续了。 然后我就开始着手将M8V7移植到Atmega328P上,因为Atmega328P和Atmega8管脚兼容,直接插上即可,不需要更改PCB。 经过几天的努力,终于成功! 工作量不小,要将所有的汇编代码转换回C语言,再逐一确认两个CPU不同寄存器配置的区别,还有工作量比较大的是ICCAVR太简陋了,调试起来不方便,就顺便移植到GCC编译器,使用ATMEL官方IDE Atmel Studio编译,有调试和仿真一体,方便多了。 用M328就是爽,FLASH是M8的4倍,基本不用担心FLASH容量问题,不像M8,每条语句都斟酌一番,要使用最省空间的写法。 除支持LCD12864外,继续兼容1602/1604/2004显示屏。
固件的功能继续延续我之前的工作,管脚分配也是一致的,
如果屏幕还是LCD1602/1604/2004,则功能和之前的 M8V7_V726.HEX 一致。
在这里再做一个V726版本的功能简述: - ADC0(23脚)接入LM35测温
- PD1(3脚)用在自动风扇开关
- PC5(28脚)接蜂鸣器用作提示
- 长按电压按键开关机
- 长按电流按键清零输出电量
M328V7特性(详细请参考发布文件压缩包内的 "M328V7使用手册.pdf"): - 支持Atmega328P/Atmega644P/Atmega128/Atmega64
- 支持12864 (LCD/OLED)
- 支持智能充电器/示波器/信号发生器/红外解码器模式
- 支持电压电流曲线显示
- 支持上电默认输出电压/默认关闭输出/使用上次关机时状态
- 新增运行时间显示(此处应该实现为实时时钟的,但M328管脚不够,只能实现为上电运行时间显示)
- 更多的配置项
- 其他一些改进
12864主屏显示信息更丰富
但我认为最重要新增特性为12864的第二屏(锁定状态下旋转电压编码器进入,和1602的操作一致,类似手机滑动进入第二屏) 第二屏我增加了一个显示电流/电压曲线的功能,可以弥补数字电流表的不足,因为主屏1s仅刷新4次,无法反应瞬间变化的电流,此屏可以最短显示30ms的电流变化。 这也是现在还有不少维修电源继续保留指针表头的原因,在添加了电流曲线功能后,指针表头就可以不用了。 这个电压电流曲线的灵敏度应该不输指针表头,而且更直观,还可以拍照保留分析。
第二屏实拍,一格最小1s(屏幕水平分四格,一格32个点,每点30ms,所以可以分辨最小30ms的电流变化)
第二屏操作方法: - 默认为电流曲线显示,可以在显示第二屏时,长按电流编码器按键切换显示电压曲线还是电流曲线。
- 水平刻度:使用电流编码器旋钮选择,最小为1s/div(每个点30ms,每格32个点),
- 1s/div ~ 45.1s/div (步进0.96s),单位为秒,用于显示短期变化较快的电压电流
- 1.6m/div, 3.2m/div, 6.4m/div, 12.8m/div, 25.6m/div, 51.2m/div 单位为分钟,用于充电或监控设备的工作状态
- 1.7h/div, 3.4h/div, 6.8h/div 单位为小时,用于监控长时间缓慢变化的电压电流
- 垂直刻度,自动适配,电流曲线状态下,输出电流=设置电流则为满刻度,否则输出电压=设置电压为满刻度(可以在菜单里设置一个偏移量)
- 支持HOLD功能,短按电流按键则暂停波形显示,用于观察或拍照
实际测试图片。 下图显示的是一个报废的老手机的启动电流曲线的一部分。
这个曲线功能有什么用呢? - 通过启动时的电流曲线形状诊断各种电器的可能故障部位。
- 水平时基足够长(最长6.8h/div,一屏显示超过24小时),可以监控电池充电曲线或放电曲线。
- 好看,装逼,接一些电器时屏幕像心电图似的,好玩。
下面开始为升级方法: 如果你已经有正常运行的M8V7,换M328P后建议烧写和原来屏幕一致的固件,确认M328P正常运行,然后再换LCD12864屏。 MCU核心修改:
(已删除,请参考固件发布压缩包内的使用说明PDF)
M328P烧录熔丝位: 如果熔丝位不正确,也能正常运行,不过可能容易丢配置,需要时不时重新校准,所以一定要打开BOD 4.2V选项,打开BOD 4.2V选项,BOD 4.2V选项
低位:0xff 高位:0xd7 扩展位:0xfc
LCD12864硬件接线: (已删除,请参考固件发布压缩包内的使用手册)
V7.80
2021-10-20 升级V7.81 (升级不需要重刷EEP文件,不需要重新校准)
1. 增加扣除空载电流选项,在开机菜单中显示为 "I zero offset",设置为空载电流值即可
2. 提高示波器的频率计算精度,做为代价,去掉示波器的1s时基
3. 将蜂鸣器做为可选项,如果不需要蜂鸣器,ADC5可以用做它用
M328V7_V781.rar
(1.32 MB, 下载次数: 84)
2021-10-31 升级V7.82 (升级不需要重刷EEP文件,不需要重新校准)
1. 增加 “红外解码器” 功能,使用和示波器同样的端口接入
2. 示波器模式增加 “单次触发” 功能
M328V7_V782.rar
(6.26 MB, 下载次数: 34)
2021-11-05 升级V7.83 (升级不需要重刷EEP文件,不需要重新校准)
1. 增加 预约自动开机或关机功能,可以同时设置开机关机时间,实现区段供电或充电
2. 单次/短时基触发后可以左右移动波形以便查看更多波形
3. bugfix: 示波器单次触发时如果是长时基,触发后直接切换触发模式导致ADC没有重新启动
M328V7_783.rar
(6.35 MB, 下载次数: 22)
2021-11-07 升级V7.83.1 (升级不需要重刷EEP文件,不需要重新校准)
1. 增加针对ST7565/ST7567/SED1565等兼容的屏幕方向的设置,可以上下左右翻转,可适配不同厂家的屏幕,也可用于屏幕的不同安装方向
M328V7_783.1.rar
(6.38 MB, 下载次数: 39)
2021-11-16 升级V7.83.2 (升级不需要重刷EEP文件,不需要重新校准)
1. 优化PWM微调算法,提高电压输出精度,减小电压尾数跳动
2. 输出电量显示为三位小数
M328V7_V783.2.rar
(6.39 MB, 下载次数: 32)
2021-11-20 升级V7.84 (升级不需要重刷EEP文件,不需要重新校准)
1. 增加 通用智能充电器模式
2. 增加配置项"default mode",可以让电源启动后自动进入某个工作模式
3. 优化短路保护的门限判断,负载电阻小于50毫欧判定为短路
M328V7_784.rar
(6.98 MB, 下载次数: 43)
# 2021-12-05 升级7.85 (EEPROM不兼容前面版本,需要重新校准)
1. [breaking change]电压电流修改为分段式校准,提高输出电压电流精度
2. 支持OLED 12864,当前兼容的控制器:SSD1306/SSD1315/SSD1308/SSD1309
3. 新增周期开关机功能,比如设置"开10s关20s",则电源自动打开输出10s然后关机20s再打开输出10s,如此反复
4. 参考一些商品镍氢充电器的设计,修改充电器模式镍氢脉冲充电的占空比
5. 增加充电器模式的涓流充电阶段
6. 充电器模式支持散热器温度显示
7. bugfix: 负载电阻单位错误,之前版本显示值比实际值缩小了10倍
M328V7_V785.rar
(3.85 MB, 下载次数: 59)
# 2021-12-19 升级7.86 (从V7.85升级过来不需要重刷EEPROM)
1. 增加 信号发生器模式,频率范围:1Hz-360kHz 和单独的500kHz/1MHz档位
2. 有源蜂鸣器改为无源蜂鸣器,更容易找到,还是蜂鸣器串电阻直接连接到ADC5(PC5/28脚)
3. 更换编码器解码算法,提高容错性,避免按键时偶尔错误增加数字
4. 配置菜单"default mode"增加"Ask everytime"选项,选中后每次开机都弹出工作模式选择界面
M328V7_V786.rar
(4.61 MB, 下载次数: 46)
# 2022-02-06 升级V7.87 (从V7.85升级过来不需要重刷EEPROM) 1. 温度传感器新增支持 NTC (B3950)
2. bugfix:在充电器模式下无法保存超过25v的电压
M328V7_V787.rar
(5.8 MB, 下载次数: 21)
# 2022-02-10 升级V7.87.1 (build20220210) (从V7.85升级过来不需要重刷EEPROM) 1. 信号发生器输出端口从PB0修改为PC4,和示波器输出端口一致
2. PB0修改为单独的ON/OFF按钮,可以随时打开关闭电源输出,在充电器模式则启动或停止充电
3. bugfix: 将M328V7当做恒流负载(输入正到输出正之间接入电压源进行恒流放电)时,电流PWM无法更新
M328V7_V787.1.rar
(5.81 MB, 下载次数: 38)
# 2022-02-19 升级7.87.2 (build20220219) (从V7.85升级过来不需要重刷EEPROM)
1. 软关机后除关闭电压输出,同时关闭电流PWM(限流值设置为零)
2. 单独的ON/OFF按钮在示波器界面可以暂停/恢复波形
3. 因1602/1604/2004屏幕的功能一直没有更新,从此版本开始,不再编译此三种屏幕的固件
M328V7_V787.2.rar
(5.1 MB, 下载次数: 34)
# 2022-03-19 升级7.88 (从V7.85升级过来不需要重刷EEPROM,但可能需要重新调整屏幕方向)
1. 增加预置电压电流(最多4组)功能,可以快捷设置常用的电压电流
2. 充电器模式的电量和百分比分两行显示
3. 充电器模式启动零伏电池的充电从长按5s改为长按2s
4. 屏幕方向增加一个配置项"Offset X",用于一些ST7565兼容屏幕偏移4个X像素
5. 因空间不够,去掉示波器/红外解码器的端口选择,固定为ADC4
6. 因空间不够,去掉按键蜂鸣提示功能
M328V7_V788.rar
(5.72 MB, 下载次数: 185)
2022-04-12 升级7.88.1 (build20220412) (从V7.85升级过来不需要重刷EEPROM,但可能需要重新调整屏幕方向)
1. ST7565及其兼容屏幕的X偏移可选0-4个像素
2. bugfix: 预置电压电流保存的EEPROM位置错误,不过幸好V7.88实际保存的位置为EEPROM的空闲位置,所以功能还是正常的
M328V7_V788.1.rar
(5.71 MB, 下载次数: 266)
2022-08-21 升级7.89 (EEPROM不兼容之前的版本,需要重刷EEPROM并重新校准)
1. 兼容Atmega644P/Atmega328P/Atmega128/Atmega64
2. 兼容8MHz/16MHz晶振
3. 电压电流校准分段数量从2段提高到5段
4. 新增配置菜单项:最大电压、最大电流、最大功率(提供最大输出功率保护)
5. 软关机时闪烁输出电压进行提示(有一次我以为电源坏了,拆开折腾很久才发现是软关机了,特此增加此功能)
6. 功率显示小数点后两位
7. 处于调整电压电流状态时也响应长按事件,长按弹出菜单
8. 按键长按时间从2s缩短到1s
9. 增加配置项“自动锁按键”,调整自动锁按键时间,为零则不自动锁按键,方便频繁调整电压电流
10. 恢复按键声音提示功能
11. 大大提高红外RC5/RC6协议解码的成功率
12. 正常模式的预置电压电流组从4组提高到8组
13. 充电器模式也支持8个预置组,可以方便将常用的充电参数组合保存备用
14. 充电器模式增加一种充电模式“80%”,仅将电池充到大概80%,用于锂电在长期保存前补充电量
15. 充电器模式充电完成后显示本次充电时间
16. 新增第三屏:数码管大字体电压电流表
17. 新增屏幕反显开关
18. 增加屏幕保护功能,OLED屏幕福音
19. 输出容量单位新增瓦时,可选仅显示安时/仅显示瓦时/安时瓦时交替显示
20. 增加三个快捷按键(参考使用手册4.5节的电路图),可以快速提取前三个预设组的数据
21. 短路保护门限可设置
22. 支持自定义开机界面
23. 支持串口控制,兼容睿登电源上位机(仅M644P/M128版本)
24. 支持线损补偿(仅M644P/M128版本)
25. 新增中文界面(仅M644P/M128版本)
26. 增加电源输出指示灯和CC/CV指示灯(仅M644P/M128版本)
27. 支持PWM风扇调速(仅M644P/M128版本)
28. 支持MCU直接控制前级电压的电压跟随或变压器绕组切换(仅M644P/M128版本)
29. 删除示波器模式
30. 更多的一些改进...
M328V7_V789.zip
(6.09 MB, 下载次数: 91)
2022-09-22 升级7.89.1 (build20220922) (从V7.89升级过来不需要重刷EEPROM)
1. 充电器模式空载时前级跟随电压设置为电池组截止电压,开始充电后前级跟随实时电压
2. 曲线界面显示输入电压,同时将输入电压的显示修改为仅一位小数
3. 校准输出电压零点时设置前级输出最低电压
4. 充电器模式的额外功能全部集中到电流按键长按菜单中
5. 充电器模式提取预设组可以全程使用电流编码器
6. 充电器模式界面的电池图标里面的水平格子随实际百分比而变化
7. 充电终止后保存容量数据
8. 增加一个防熊孩子锁按键模式,电压按键菜单中"Lock"长按5s激活,主界面长按5s退出
9. bugfix: 修正M128版本的分频系数错误(导致时钟快一倍)
10. bugfix: 修正有时误显示输入电压LOW的问题
11. bugfix: 修正M128的输出使能管脚分配错误问题
M328V7_V789.1.rar
(3.5 MB, 下载次数: 74)
2022-11-12 升级7.89.2 (build20221112) (从V7.89升级过来不需要重刷EEPROM)
1. 提高充电模式的安全性。充电器模式复位后不会自动进入电源模式,需要手工确认
2. 电压按键长按菜单中增加菜单项"其他模式",可以方便进入其他工作模式,比如充电器模式等
3. 提升电压缓启动的速度,更快达到设定电压
4. 充电器模式电压和电流编码器长按都能弹出菜单
5. M328的电池温度从ADC4移到ADC6
6. 避免ADC6悬空干扰导致误操作,去掉ADC快捷按键功能(ADC6)
7. M128版本的数字键盘的确认键在锁定状态下可以呼出预设组界面
8. M128/M644版本启动时不再闪烁一次CC/CV灯
9. bugfix: 修正M128版本的DCDC16段电压跟随的BUG
10. bugfix: 修正M128版本的数字键盘输入的数值超过65.535后会导致非预期值的问题
11. bugfix: 修正M128版本的数字键盘有时候有浮点数误差的问题
M328V7_V789.2.rar
(3.38 MB, 下载次数: 191)
几个配套的工具软件
1. 修改开机图像的软件
m328v6v7splash_v1.1.zip
(10.23 MB, 下载次数: 46)
2. 分析校准数据的软件(将EEPROM读出为二进制文件,然后执行 parseEeprom.exe eep.bin,生成m328v7_eep.html)
parseeeprom.zip
(1.98 KB, 下载次数: 31)
3. 计算DCDC16段电压跟随电阻组合的软件(仅适用于M644P/M128版本)
calSwResistors_v1.2.rar
(5.5 MB, 下载次数: 51)
31楼有关于782新增功能的详细描述
https://www.yleee.com.cn/forum.php?mod=redirect&goto=findpost&ptid=89963&pid=926551
32楼有关于 红外解码器 的说明
https://www.yleee.com.cn/forum.php?mod=redirect&goto=findpost&ptid=89963&pid=926552
38楼有关于 783新增功能的描述
https://www.yleee.com.cn/forum.php?mod=redirect&goto=findpost&ptid=89963&pid=926643
58楼有关于 通用智能充电器 的说明
https://www.yleee.com.cn/forum.php?mod=redirect&goto=findpost&ptid=89963&pid=926933
92楼有关于 信号发生器 的说明
https://www.yleee.com.cn/forum.php?mod=redirect&goto=findpost&ptid=89963&pid=927550
266楼有关于 V7.88版本新增功能的使用
https://www.yleee.com.cn/forum.php?mod=redirect&goto=findpost&ptid=89963&pid=929061
原GandF电源链接
M8数控电源V7
https://www.yleee.com.cn/thread-7787-1-1.html
M8数字电源
https://www.yleee.com.cn/thread-309-1-1.html
M128数控电源G01-DCDC方案
https://www.yleee.com.cn/thread-91306-1-1.html
M128数控电源
https://www.yleee.com.cn/thread-91107-1-1.html
M644数控电源
https://www.yleee.com.cn/thread-91045-1-1.html
|