一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: cdhigh
收起左侧

[avr] M8V7数控电源升级为M328V7,除LCD12864外,还有新功能和新赠品

  [复制链接]
发表于 2021-12-19 12:18 | 显示全部楼层
好东西啊,感谢分享,马克一个
 楼主| 发表于 2021-12-19 20:29 | 显示全部楼层
2021-12-19 升级V7.86  (从V7.85升级过来不需要重刷EEPROM)   
  • 增加 信号发生器 模式,频率范围:1Hz-360kHz 和单独的500kHz/1MHz固定档位
  • 有源蜂鸣器改为无源蜂鸣器,更容易找到,还是蜂鸣器串电阻直接连接到ADC5(PC5/28脚)
  • 更换编码器解码算法,提高容错性,避免按键时偶尔错误增加数字
  • 配置菜单"default mode"增加"Ask everytime"选项,选中后每次开机都弹出工作模式选择界面



===============================
信号发生器平时很少用,但是需要用的时候也挺想念的,就是因为一般很少用,所以很少人会单独购买一个信号发生器,现在好了,M328V7送你一个~

但是,但是,但是,没想到,没想到,没想到,小小的信号发生器倒成了M328V7里面“最有技术含量”的一个特性!

因PWM硬件输出端口被占用,所以只能使用软件翻转端口实现方波输出。  
使用软件翻转端口实现信号输出听起来容易,实现起来其实一点都不简单,实现此特性的过程中不停的克服重重困难,
从第一版的频率范围只达到大约60kHz,慢慢优化代码达到100kHz,再继续微优化升级到120kHz,之后的某一天,灵光乍现,打通任督二脉,一下子猛升到280kHz,然后再继续挑战,使用一些“脏”技巧,升级到360kHz。 (如果以后换16MHz晶振的话,就能达到720kHz!)  

你可能觉得最大输出频率360kHz太小了,是的,小了点,所以我又单独实现了没有啥技术含量的固定占空比的500kHz/1MHz档位,这样这个赠品差不多就可堪一用了。
(没有技术含量的意思就是在一个循环内不停的翻转端口电平而已,一循环为8个指令周期就能输出1MHz,一循环为16个指令周期就能输出500kHz,根据这个思路也可以做出其他频率,但现在够用了)

同样的,以后换16MHz晶振的话,就对应到1MHz/2MHz档位。  

360kHz往下是连续可调(真实频率不一定连续),在频率调整到360kHz后,再往上调就跳到固定档位500kHz/1MHz。  

还要更高频率或其他波形,出门左拐,AD9833之类的DDS模块吧,可以达到25MHz。  


下面开始丑媳妇见公婆:  
界面是不是可以用常见的一句俗语表示:简约而不简单~  
generator.png

短按电压按键开始调整频率和占空比,短按电流按键输出方波信号的同时锁定按键   
generator_set.png


[下面开始图库展示]
[终于亮出我的真正的玩具示波器了~ 号称500M/s采样,120M带宽,不过嘛,“号称”这个做法在中国自古有之,三国时各方大军动辄号称百万~]


1K输出(进入信号发生器模式后自动输出1K方波)

generator_1K

generator_1K



10K输出

generator_10K

generator_10K



20K输出
generator_20k.jpg


100K输出
generator_100k.jpg


200K输出

generator_200K

generator_200K



最大可调360K输出

generator_360K

generator_360K



500kHz固定输出

generator_500k

generator_500k



1MHz固定输出(过冲是什么鬼?M328供电才5V,怎么过冲6.6V?)  

generator_1M

generator_1M



占空比可调整
占空比设置为10%

generator_1k_10

generator_1k_10



占空比设置为90%

generator_1k_90

generator_1k_90



加低通滤波器输出

lpf

lpf



三角波位置(波形还是很好看的)

generator_1k_triangle

generator_1k_triangle



伪正弦波位置(嗯,波形有些不伦不类)

generator_1k5_sin

generator_1k5_sin



好吧,现在M328V7是伪装成电源的多功能DIY工具~


点评

大佬,请问那个M8V7里面的源代码汇编部分如何转成C,可否指导一下!  详情 回复 发表于 2021-12-21 20:30
楼主动作真快,集成的 东西越来越多 了。DIY可以来 一波了。刚刷了7.85版验证了 2004屏幕 。现在等待12864屏幕 调试 ,继续刷楼主的7.86增加功能。  详情 回复 发表于 2021-12-19 21:41
发表于 2021-12-19 21:41 | 显示全部楼层
cdhigh 发表于 2021-12-19 20:29
2021-12-19 升级V7.86  (从V7.85升级过来不需要重刷EEPROM)   
  • 增加 信号发生器 模式,频率范围:1Hz-3 ...

  • 楼主动作真快,集成的 东西越来越多 了。DIY可以来 一波了。刚刷了7.85版验证了 2004屏幕  。现在等待12864屏幕 调试  ,继续刷楼主的7.86增加功能。

    点评

    如果您手上没有12864还需要买的话,不建议ST7920,尽管屏比较大,但控制器比较羸弱,效率比较低  详情 回复 发表于 2021-12-19 21:50
     楼主| 发表于 2021-12-19 21:50 | 显示全部楼层
    gps422129 发表于 2021-12-19 21:41
    楼主动作真快,集成的 东西越来越多 了。DIY可以来 一波了。刚刷了7.85版验证了 2004屏幕  。现在 ...

    如果您手上没有12864还需要买的话,不建议ST7920,尽管屏比较大,但控制器比较羸弱,效率比较低

    点评

    楼主 程序 可否 在改进 下。菜单 里来个 屏幕选择。免得 一个屏幕 一个固件。好像 是 晶体管测试仪 还是烙铁哪个DIY的可以菜单选择屏幕 。  详情 回复 发表于 2021-12-21 21:34
    发表于 2021-12-20 14:06 | 显示全部楼层
    cdhigh 发表于 2021-12-19 20:29
    2021-12-19 升级V7.86  (从V7.85升级过来不需要重刷EEPROM)   
  • 增加 信号发生器 模式,频率范围:1Hz-3 ...

  • 一真在更新呀,厉害了
    发表于 2021-12-21 20:30 | 显示全部楼层
    cdhigh 发表于 2021-12-19 20:29
    2021-12-19 升级V7.86  (从V7.85升级过来不需要重刷EEPROM)   
  • 增加 信号发生器 模式,频率范围:1Hz-3 ...

  • 大佬,请问那个M8V7里面的源代码汇编部分如何转成C,可否指导一下!
    发表于 2021-12-21 21:34 | 显示全部楼层
    cdhigh 发表于 2021-12-19 21:50
    如果您手上没有12864还需要买的话,不建议ST7920,尽管屏比较大,但控制器比较羸弱,效率比较低

    ...

    楼主 程序  可否 在改进 下。菜单  里来个 屏幕选择。免得 一个屏幕  一个固件。好像  是 晶体管测试仪  还是烙铁哪个DIY的可以菜单选择屏幕 。

    点评

    两个原因: 1. 屏幕驱动不对,怎么显示菜单?如果显示菜单都显示不了,如何选择屏幕? 蛋生鸡还是鸡生蛋? 除非: 1. 做复杂一点,上电后逐个驱动调用一遍,等有菜单显示时按下按键确认。  详情 回复 发表于 2021-12-21 22:12
     楼主| 发表于 2021-12-21 21:52 | 显示全部楼层
    TSG1989 发表于 2021-12-21 20:30
    大佬,请问那个M8V7里面的源代码汇编部分如何转成C,可否指导一下!

    哪个函数?
    全部?
    大部分有汇编的都有C注释,只有少部分没有
    发表于 2021-12-21 21:56 | 显示全部楼层
    很佩服楼主不停的更新,不知道楼主最后会不会回归本质,电源专注于电源与充电功能,其他部分另外做一个工具出来。

    点评

    还好,现在其他功能不妨碍电源和充电功能。 举个不适当的例子,如果一个学霸在练吉他,你不能批评,要是专注于学习那多好,问题的关键是别人练吉他不影响学习~ 这个例子不合适,不合适,M328V7不是学霸,是学渣~  详情 回复 发表于 2021-12-21 22:33
     楼主| 发表于 2021-12-21 22:12 | 显示全部楼层
    gps422129 发表于 2021-12-21 21:34
    楼主 程序  可否 在改进 下。菜单  里来个 屏幕选择。免得 一个屏幕  一个固件。好像  是 晶体管测试仪   ...

    两个原因:

    1. 屏幕驱动不对,怎么显示菜单?如果显示菜单都显示不了,如何选择屏幕? 蛋生鸡还是鸡生蛋?   除非:
               1. 做复杂一点,上电后逐个驱动调用一遍,等有菜单显示时按下按键确认。
               2. 逐个驱动调用一遍,然后通过读屏幕组件的某些特殊寄存器来确认哪种屏幕。

    单片机系统还不像PC系统,PC上电后会和屏幕交互一些信息,所以上电后PC能知道你接到是什么牌子什么信号的屏幕,支持哪些分辨率等等信息。

    为什么之前M8V7不需要按屏幕分开不同的固件,是因为1602/1604/2004的驱动和命令是兼容的,只是显示的信息量有差异。
    但是这样处理也导致了M8V7用1604时的一个"BUG":旋转编码器切换第二屏后,前两行和后两行显示同样的内容,也导致了即使装上2004,还是当作1604使用,这样的兼容是不是我们希望的呢?
    哦,不对,M8V7只能兼容1602/1604,2004还是需要重刷另外的固件,因为2004和1604尽管命令一致,但行地址有细微区别。

    照这个思路,如果你烧录了ST7565的128X64的固件,装上ST7565/ST7567/SED1565的128X32或其他分辨率应该也能显示,只是显示信息不全而已,这算不算“兼容”?



    2. 更重要!!!:屏幕驱动分开可以省空间,可以增加其他功能。



    本版积分规则

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

    GMT+8, 2024-4-25 07:06 , Processed in 0.056238 second(s), 41 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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