打印

学习老X匠人,将革命进行到底---打造史上最“烂”的VGA示波器

[复制链接]
楼主: xuyiyi
手机看帖
扫描二维码
随时随地手机跟帖
21
xuyiyi|  楼主 | 2010-4-17 20:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
(3)老X做的VGA示波器硬件电路分析

引用老X自述:
至于电路图,就是单片机的最小接法:接上电源、晶振、复位和几个必要的电容,然后RGB线上各串个330欧的电阻接到VGA插座上。
就这么简单。

根据老X的提示,老许将《老X用51单片机做的VGA示波器(第二版)——正常方向显示!》电路原理图画了下来,如下图所示:

电路原理图.JPG (116.04 KB )

电路原理图.JPG

使用特权

评论回复
22
yczhang| | 2010-4-19 19:48 | 只看该作者
mark

使用特权

评论回复
23
David_ming| | 2010-4-19 20:37 | 只看该作者
老许,顽童,哈哈哈:lol

使用特权

评论回复
24
David_ming| | 2010-4-19 20:42 | 只看该作者
21# xuyiyi
可以考虑下超频,这个IC稳超35M,可以试下超到40M,我试过跑45M

使用特权

评论回复
25
lwq030736| | 2010-4-19 21:17 | 只看该作者
真是我等的福音啊

使用特权

评论回复
26
hondephy| | 2010-4-20 13:15 | 只看该作者
嗯,看上去起码本人的技术高出来不是100个档次啊,起码101个,
恩,如果一共分为101档的话。。。
太打击自信了

使用特权

评论回复
27
liaojihua2010| | 2010-4-21 11:22 | 只看该作者
学习了

使用特权

评论回复
28
runbing1314| | 2010-4-21 12:11 | 只看该作者
新手学习了

使用特权

评论回复
29
xuyiyi|  楼主 | 2010-4-26 17:24 | 只看该作者
本帖最后由 xuyiyi 于 2010-4-26 17:27 编辑

这几天重点学习分析老X匠人的编程思路和软件实现方式,由下图可以看出,该简易VGA示波器测量点较少,老X依靠内插值法补充测量点,波型失真较严重,测量的正弦波已显示成梯型波了。






----------------------------------------------------------------------------

    由下图中老X的编程界面上可看出,作为中间变量的显示缓冲区点据了绝大部分内存,再加上数据的采样和旋转、送显示缓冲区处理,及采样点之间的插值运算和VGA显示波型之间的补点插值运算,老许按照老X的编程思路,试编了一下程序,并且将显示分辨率从144*160点阵,提高到152*160点阵,结果,中间运算时间略显不够,只有去掉优化程序结构的循环程序及子程序,用流水线结构执行程序,以缩短程序运算执行时间,用汇编优化精简了所有指令,几乎用光了MPC82g516片内64k Flash,才免强将显示分辨率从144*160点阵,提高到152*160点阵,不过这种程序已没有可读性,就不拿出来晒一晒了。
    从中也可看出,老X的软件功底,实力相当的雄厚,属于那种超一流的高手,其编写的程序已到了炉火纯青的地步,一般人很难再对他进行优化改进了,值得我们大家学习。也希望绝顶高手、超级牛人老X早日做出,曾经一不小心吹过的牛:“老X可以用几块钱的51可以每行300个点,信不信?”,老许和二姨家的众网友一起,提个菜篮子在后面捡菜学习。
    由于水平有限,无法参透高人老X匠人是如何对输入交流信号进行同步采样的,反复看了二位大师发的贴子N遍,都找不到要领,只能用最笨最原始的方法,加了一片廉价的双运放LM358,组成对输入交流信号进行电压偏移及产生同步信号,供51单片机便用。
    目前想简化一下结构,暂时不加同步采样电路,而采用一定频率的正弦波输入,先把最重要最主要也是最“烂”的VGA示波器样品先做出来。
    通过这几天重点学习分析消化吸收老X匠人在技术方面的思维方式和成果,已有了初步设想,决定将《DIY一台史上最“烂”的示波器!》做的更“烂”成本更低!成本向匠人靠拢,用一片售价仅2块多的RAM只有256字节的51单片机----MPC801(82E52), 性能向老X靠拢,实现显示分辨率为144*160点阵的VGA示波器——正常方向显示! 以响应匠人的号召:“既然不能做到最好,那么就让我们设法做到最烂吧,呵呵。”

使用特权

评论回复
30
xwj| | 2010-4-28 20:53 | 只看该作者
Re:
1、老x根本就不是用的插值算法,每一列都是一次采样的数据,屏幕上就是真实的144次采样数据!这个变压器的输出波形就是这样的,或许电网电压的波形就是这种形状,上次横着显示是也是这种波形,还准备说下电网品质的问题,后来忘记了。
2、下图的梯形波是因为输入太大超出电源电压了,当然会削顶,还大些甚至会变成矩形波形,因为变压器的输出是9VAC,峰值会有13V,远远大于单片机的5V。
3、152*160点阵显示没什么困难,甚至更大些都没问题,只是波形复杂时最右边的波形会有点描不完整,所以才定的144*160点阵,要更大也可以,但会有其他影响,而不是极限原因。
4、老x的程序基本上是全部C语言,只有关键的地方采用汇编以减少无谓的中间传递,从程序代码只有1202字节就可用看出,绝不会是太复杂的程序,但优化的思想却不是简单的事,可不是那么容易被超越的哦~:)
5、同步不是用硬件同步的,而是通过数据同步。由于数据采样率设计成分频可调的,所以每一行都会有可能采样,并有可能处理同步,所以必然会占用显示区域的时间,影响可显示范围,这点还可以稍微优化下,但也是以牺牲内存为代价的。
6、缺点也有,正常方向显示后多消耗了很多时间,刷新速率当然就不会是实时的了,因而造成采样也是一桢一桢的。由于采样的非连续性,波形同步效果明显不如横向显示,这点其实也可以优化一下;
7、这东西,没做过就不知道会有多难、多伤脑筋,希望更多的人来挑战、超越一把!
当然,是你自己先做过、优化过才行哦~~:)
而老x的程序由于程序可读性太好,优化思想太巧妙,老x都舍不得拿出来了,由于怕拿出来大家就不肯自己去懂脑子了,所以老x藏起来了哈,等哪天顶的人多了、玩的人多了再放出来;P

使用特权

评论回复
31
xwj| | 2010-4-28 21:07 | 只看该作者
另外,老x的实际上可以实现各种彩色显示的,可不是21楼的硬件可以实现的哦~
至于29楼的“补点插值运算”猜想根本就不对,如果那样的话,你怎么解释这样的波形:(PS:这是老x拔掉变压器,用摸ADC输入脚时的人体感应电压,可以看出是相当的杂乱但又有规律的)
手机中的颤抖机曝光时间太长,所以波形有混叠现象

IMG_0214.jpg (649.9 KB )

IMG_0214.jpg

IMG_0209.jpg (635.35 KB )

IMG_0209.jpg

IMG_0211.jpg (660.4 KB )

IMG_0211.jpg

使用特权

评论回复
32
yidou| | 2010-4-28 23:21 | 只看该作者
老X和老许老斗来斗去的,战火连天

使用特权

评论回复
33
xuyiyi|  楼主 | 2010-4-29 06:51 | 只看该作者
谢谢老X亲临指导,老许又学习吸收了老X多条金点子,比如非实时非同步采样技术,不用硬件同步而用数据同步技术,数据采样率分频可调技术,修正了老许对机电全才老X思想的部分不正确理解,老X的软件功底,实力相当的雄厚,优化思想实在太巧妙,值得老许及大家学习。其编写的程序已到了炉火纯青的地步,说心里话,老许不懂C语言,有十几年没时间搞技术没充电了,以前唯一一次用C语言,是组织网友搞PLC, 当时反对声拍砖者不断,认为老许搞不出,因为前面曾经有过二次类似的PLC开源活动全部流产,结果老许依靠二名优秀学生,在热心网友的帮助下,搞出个既支持编译型监控又支持解释型监控的简易PLC, 由于当时PLC监控主程序工作量太大,大伙都很忙,请不到有业余时间的出力者,只能自已硬顶上,当时连C语言常用的几十条基本指令都默写不出的老许,依靠马老师编写的好书《AVR单片机嵌入式系统原理与应用实践》,从里面东抄西凑点C语言实例,再在热心网友的大力帮助指导下,搞出了只能供菜鸟初学者参考的四不像PLC监控程序(有编译型PLC监控和解释型PLC监控这二种版本),圆了以前二次开源PLC活动全部流产之梦。
    老X这小玩意,老x的VGA示波器基本C语言程序,优化编译后代码只有1202字节,这个只是老许学习奋斗的目标,老许有先见之明,深知没能力做到这一点。也没能力去挑战、超越 机电全才、智勇双全的牛人老X,只能提了个菜篮子在后面捡菜学习,争取多学点老X的技术,老X的思想,呵呵!

    老许想通过再深入学习吸收老X博大精深的技术思想,多参透高人老X的编程思路,再简化一下结构,以响应匠人的号召:“既然不能做到最好,那么就让我们设法做到最烂吧,呵呵。”

    计划用一片更“烂”更廉价的零售价仅2块多的RAM只有256字节的51单片机----MPC801(82E52), 去打造一台《DIY一台史上最“烂”的示波器!》。

    也请老X匠人有空多来指导指点一下老许,谢谢!

使用特权

评论回复
34
xuyiyi|  楼主 | 2010-4-29 07:02 | 只看该作者
老X和老许老斗来斗去的,战火连天
yidou 发表于 2010-4-28 23:21


修正一下你老的说法,老许技术不行,只略懂一点皮毛,并且在光、机、电、化行业中,电子方面的水平属于最差的,很多地方连学生都比不上,比如以前搞开源PLC时,跟在二名优秀学生后面,学点Protel 99 SE, AD 09 ,以求能边学边用,帮助检查所画的PCB板,不要有地方疏忽出错。老许可没能力实力和机电全才、智勇双全的牛人老X斗,老许只是提了个菜篮子在后面捡菜学习,争取多学点老X的技术,老X的思想,呵呵!

使用特权

评论回复
35
huangqi412| | 2010-4-29 08:58 | 只看该作者
kao,发现洗碗机的POWER键都给按黑了......神啊...难道Y天天都按上几次?

使用特权

评论回复
36
xwj| | 2010-4-29 18:23 | 只看该作者
笨!

05年开始按,平均每天至少要按两次吧?那你算算按了多少下了?

使用特权

评论回复
37
xuyiyi|  楼主 | 2010-4-29 19:12 | 只看该作者
05年开始按,平均每天至少要按两次吧?那你算算按了多少下了?
xwj 发表于 2010-4-29 18:23


一年365天,每天2次,2005年至2010年共计五年,按了365X5X2=3650次,2010年至今已过了119天,即119X2=238次,合计共按了 3650+238=3888次。

计算结果表明两点:
1. 你的键盘的品质跟你人品技术一样的牛,按了3888次居然不坏?!
2. 这个数字(3888)表明,今年你有三次发财机会,这是天意,请好好把握机会!

使用特权

评论回复
38
程序匠人| | 2010-4-29 22:56 | 只看该作者
kao,发现洗碗机的POWER键都给按黑了......神啊...难道Y天天都按上几次?
huangqi412 发表于 2010-4-29 08:58


这个事情唯一能说明的就是xwj不爱洗手,难道就是传说中的“黑手”?

使用特权

评论回复
39
午夜粪车| | 2010-4-29 22:57 | 只看该作者
匠人说的真有意思,哈哈哈哈哈哈哈哈

使用特权

评论回复
40
BXZYF| | 2010-4-30 12:19 | 只看该作者
51MCU都做哪些工作?刷屏速度能是多少?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则