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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM