STM32示波器 信号发生器

时间:2018-07-17

  本示波器有效测量频率0.1 ~ 100KHz
  双通道
  集成信号发生器
  时间轴每格 1,2,5递增范围:2us ~ 1s
  时间轴每屏12格
  硬件结构:
  主芯 stm32zet6
  触摸屏 SSD1289 320*240 RGB565
  AD: STM32内部ADC 1MHz采样率
  双通道。
  (设计扩展外部高速AD,上述原因没能得以完成)
  DA:内部DAC 20K以内正弦波,锯齿波和方波。
  平台:uCOSIII,
  图形:uCGUI
  软件设计:设计思想
  整个的数据流程如下:
  数据采样分为三个部分:
  高速采样(2us ~ 20us 包括20us);
  在这之间以20us为例:
  20us每格 * 12格 = 240us每屏。
  采样率为1m也就是1us只可以采样到1个数据,上面提到了屏是320宽。
  所以在这种情况下,1个数据在显示屏会对应1个或几个点。
  因此在2~20us之间都用采样率1MHz采样。
  采用连续采样模式。
  中速采样(50us ~ 20ms 包括20ms);
  在这之间的时间段中,只要采样周期调整和所选时间轴相同,就可以采样点与屏上的点一一对应。
  采用定时器触发采样模式。
  低速采样(大于等于50ms时)。
  参考了海太科等品牌的示波器,在这种低速情况下在屏上循环显示(显示屏收尾相接)。
  同样采用定时器触发采样模式。
  数据解析:
  波形参数:周期,占空比,值,值等等。
  在获得采样数据后的数据参数的获得就比较简单了。
  这里需要提的就是采样点与显示点的对应关系:
  在中速,低速采样:
  采样点显示点一一对应。
  在高速采样时:
  不管时间轴为多少采样周期都是1us;
  采样点与显示点的对应关系为 (320屏宽)/(时间轴 * 12格 / 1us)
  寻找触发点:
  低速采样不进行触发,因为是循环显示。
  在高速和中速采样 三倍屏幕的数据,与触发线比较获得匹配的一段数据进行显示。


  信号发生器
  这部分就很简单了,先计算出一个周期的波形放在数组中,用DMA循环更新DA就可以了。
  显示:
  这部分就直接上图吧:

 

上一篇:基于LabVIEW的无线心率测量系统设计
下一篇:嵌入式开发中调试器的技巧与窍门

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料