STM32示波器 信号发生器

关于stm32的示波器,网上以经有很多了。这里还是想把自己的设计思想发表出来。这个项目已经准备了很久。这里首先要感谢以前的团队,非常感觉陈师和覃总两位经验丰富的嵌入式工程师,获得了不少多方面的考虑。如果不是工作调整等原因,很有可能会出产品。但最后没有做完深感遗憾。这里发表下我的设计流程,希望能给做示波器的朋友有一定的帮助。也是让自己对此项目的一个总结。

 

本示波器有效测量频率0.1 ~ 100KHz

双通道

集成信号发生器

时间轴每格 1,2,5递增范围:2us ~ 1s

时间轴每屏12格

硬件结构:

  1. 主芯 stm32zet6
  2. 触摸屏     SSD1289  320*240 RGB565
  3. AD:  STM32内部ADC 1MHz采样率

           双通道。

 (设计扩展外部高速AD,上述原因没能得以完成)

  1. DA:内部DAC  20K以内正弦波,锯齿波和方波。
  2. 平台:uCOSIII,
  3. 图形:uCGUI

软件设计:

设计思想

整个的数据流程如下:

 

 

数据采样分为三个部分:

  1. 高速采样(2us ~ 20us 包括20us);

在这之间以20us为例:

20us每格 * 12格 = 240us每屏。

采样率为1m也就是1us只可以采样到1个数据,上面提到了屏是320宽。

所以在这种情况下,1个数据在显示屏会对应1个或几个点。

         因此在2~20us之间都用最大采样率1MHz采样。

         采用连续采样模式。

 

  1. 中速采样(50us ~ 20ms 包括20ms);

在这之间的时间段中,只要采样周期调整和所选时间轴相同,就可以采样点与屏上的点一一对应。

采用定时器触发采样模式。

 

  1. 低速采样(大于等于50ms时)。

参考了海太科等品牌的示波器,在这种低速情况下在屏上循环显示(显示屏收尾相接)。

同样采用定时器触发采样模式。

 

 

数据解析

  1. 波形参数:周期,占空比,最大值,最小值等等。

在获得采样数据后的数据参数的获得就比较简单了。

这里需要提的就是采样点与显示点的对应关系

 

在中速,低速采样:

采样点显示点一一对应。

 

在高速采样时:

不管时间轴为多少采样周期都是1us;

采样点与显示点的对应关系为 (320屏宽)/(时间轴 * 12格 / 1us)

 

  1. 寻找触发点:

低速采样不进行触发,因为是循环显示。

在高速和中速采样 三倍屏幕的数据,与触发线比较获得匹配的一段数据进行显示。

 

 

信号发生器

这部分就很简单了,先计算出一个周期的波形放在数组中,用DMA循环更新DA就可以了。

 

显示:

这部分就直接上图吧:

 

 

 

 

这里两段视屏:

http://www.tudou.com/programs/view/xhzx85TF-Is/

http://www.tudou.com/programs/view/-GiTeVanFhk/

转载于:https://www.cnblogs.com/hiker-blogs/archive/2013/01/05/2846175.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576130.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FlashPaper安装及使用方法

FlashPaper安装及使用方法 一、FlashPaper的安装 第一步:下载FlashPaper2.2安装包 点击下面链接下载FlashPaper2.2 FlashPaper2.2下载 第二步:安装FlashPaper2.2 将zip压缩包解压至磁盘的某一文件夹中,注意,此版本FlashPaper为了能…

redis的lua脚本解决原子操作

使用一个简单的工具类 代码示例:

内存管理的使用规则

http://www.cnblogs.com/wmj/archive/2012/07/26/iOS%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86.html 转载于:https://www.cnblogs.com/qiqibo/archive/2013/01/06/2847311.html

redis集群异步复制造成锁丢失(分布式锁)

在redisConfig配置类注入bean Configuration public class RedisConfig {Beanpublic RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){RedisTemplate<String, Object> template new RedisTemplate<String, Object>();templat…

jquery 简单日历

今天试着用jquery 写了一个日历&#xff0c;等有时间研究一下别人写的思路&#xff0c;上代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html…

redis内存默认值调整

redis一般设置物理内存的3/4 redis.conf配置文件修改maxmemory这个值来调整redis的内存大小 info memory命令可用查看redis内存使用情况 info可用查询redis下的各种命令

表示探索、探究的几个词

explore, exploit, investigate转载于:https://www.cnblogs.com/burellow/archive/2013/01/09/2853075.html

linux lvm 磁盘管理

附加:lvm这是一个新系统,依然debian 6.0.6,走起 我在装系统的时候手动进行了分区(之前都是自动分区并配置lvm,感觉不怎么合适),三个主分区:/boot,/,/swap 预留了30G的空间,其实是我以一个20G的debian系统原版为backingfile&#xff08;qemu&#xff09;创建的一个50G的磁盘&…

JSP中EL表达式说明

EL表达式总 EL表达式总是用大括号括起&#xff0c;而且前面有一个美元符&#xff08;$&#xff09;前缀&#xff1a;${expression}。 表示式中第一个命名变量要么式一个隐式对象&#xff0c;要么是某个作用域&#xff08;页面作用域、请求作用域、会话作用域或应用作用域&#…

mysql支持的存储引擎

SHOW ENGINES; 默认支持innodb&#xff0c;其他存储引擎都不支持事务 innodb存储引擎的架构&#xff1a;

当众讲话第二章当众讲话的基本原则

第二章&#xff0c;当众讲话的基本原则 符合身份&#xff0c;措辞要符合自己的角色 正确认识自己的角色&#xff0c;使用符合自己身份的语言&#xff0c;注意以下三点 1&#xff0c;你的称谓&#xff0c;口气要合适 2.注意自己的多重身份&#xff0c;针对不同的环境&#xff0c…

WinCE启动过程

0) TI 有内部ROM code 1) x-loader mlo : mmc loader (from sd card) 2) eboot nk.bin转载于:https://www.cnblogs.com/codediscuss/archive/2013/01/18/2866164.html

撑开最外侧的div

overflow: hidden;转载于:https://www.cnblogs.com/connlyn/archive/2013/01/21/2869504.html

[转]Nant daily build实践

本文转自&#xff1a;http://www.cnblogs.com/moonvan/archive/2006/11/07/552585.html 折腾了一个周,基于Nant的VS.NET项目每日构建终于成功了&#xff0c;在网上实际上有很多这样的例子&#xff0c;但所集成的解决方案都比较简单&#xff0c;我现在做的解决方案&#xff0c;有…

滤镜混合应用

混合滤镜使用&#xff1a;创建一个滤镜对象&#xff1b; 创建一个数组&#xff0c;并将滤镜的对象添加到该数组当中&#xff1b; 利用影片剪辑的filters属性&#xff0c;将数组当中的效果赋予该影片剪辑即可12345678import flash.display.Bitmap; import flash.display.…

Redisson的看门狗机制

来自他人文章&#xff1a;Redisson的看门狗机制_JAVA_侠的博客-CSDN博客_redisson看门狗机制

2013年1月23号

这几天一直在打酱油&#xff0c;估计到年前都不会有什么大动作了。 这周6公司年会&#xff0c;话说真够抠门的&#xff0c;年会还要在星期6开。 每天到公司来&#xff0c;打开电脑&#xff0c;看书&#xff0c;看代码&#xff0c;看界面&#xff0c;看文档&#xff0c;一天很快…

Windows 8的企业部署之路漫漫兮

日前&#xff0c;TechRepublic.com网站就企业升级Windows 8的计划对1200名IT员工进行了调查。结果显示&#xff0c;约74%的企业目前还没计划在企业内部部署Windows 8。排在前三名的原因分别是&#xff1a;1)现有的OS够用了;2)担心与之前应用的兼容性; 3)需培训员工熟悉Win8的新…

MyBatis + MVC 获取 UI 参数的几种方法(二)

方法一&#xff1a;(Form 中必须放name与model的字段名称相同的控件) { xtype: hiddenfield, name: id, id: id, hidden: true }var mNewRecord new IniStore.model.Store();mNewRecord.set(id, this.activeRecord.data.id);mImportForm.loadRecord(mNewRecord);mImportForm.s…