STM32G0示波筆
2022-08-26 13:50:56閱讀量:5502
本文作者:立創開源硬件平臺 OSHWHub 用戶@Eltecz,禁止商用,未經許可禁止轉載,點擊查看原文章
1、工程描述
使用了STM32G030F6P6單片機,支持雙通道的可調頻率、可調占空比、PWM輸出,以及ADC雙通輸入。且將單片機超頻到了100M的主頻,板子也可集成到其他模塊上進行采集。
2、目前功能
- AD輸入電壓0-3.3V;
- 12bits @ 5Mhz;
- 1-2-5時基步進從200ns到500us;
- 垂直放大1-2-5-10倍;
- 三種觸發方式,0-90%的10種觸發電平。


3、波形測量功能
- 1-2-5時基切換PWM輸出頻率從10MHz到200Hz;
- 10%步進切換PWM輸出占空比從0%到100%;
- 3個獨立按鍵多層次菜單切換;
- 1個可編程LED燈;
- 預留USB串口通信,但是我搞不出來。
若運行過程中出現bug,請及時在原工程評論區滴滴。
3、原理與制作講解
原理其實不難。
使用DMA+ADC+TIM循環采樣,隨后將數據搬運到內核處理即可。
實際操作
ADC的時鐘可以超頻,只需要保證AXI總線時鐘對齊即可。因此將其超頻到100M的ADC時鐘,并適當增加采樣延時。使得ADC采樣速率達到恐怖的5M(TSMC yyds)。
定時器
定時器采用了TIM1的TRGO,連接到ADC作為時鐘觸發源,隨后DMA一直搬運數據到內存中方便后續處理。此處可見安富萊的相關教程,了解原理。
PWM輸出
這玩意的原理非常簡單,可以參考安富萊的教程來了解原理。總的來說G0相較其他系列,這方面調節方式較為簡單。
其他外設
之前的項目使用的是0.96寸的屏幕。雖然能用但是顯示的東西不多,因此此處換了個1.14寸的屏幕。原來的按鈕手感太$了,因此這里換了個波輪開關,手感確實好了不少。串口壞掉了,感覺是芯片問題,等著修復吧。
軟件部分
軟件部分和先前兩個示波器沒多大區別,基本都是把所有東西丟進while(1)里面處理。
①頁面顯示部分
經典畫點函數,觸發點部分為了節約代碼大小,使用了三目運算符來判斷。
②頁面切換部分
使用了switch語句,配合鍵值來進行對選項的切換等。本項目代碼和思路大致如此。
4、設計圖
更多詳情及附件,可從原工程查看。
本文作者:立創開源硬件平臺 OSHWHub 用戶@Eltecz,禁止商用,未經許可禁止轉載。

熱門物料
型號
價格
L7805CV-DG/線性穩壓器(LDO) | 0.5637 | |
AMS1117-3.3/線性穩壓器(LDO) | 0.1237 | |
BAT54C,215/肖特基二極管 | 0.0334 | |
LM358DR2G/運算放大器 | 0.35 | |
CJ431/電壓基準芯片 | 0.1147 | |
LM393DR2G/比較器 | 0.318 | |
ADUM4160BRWZ-RL/隔離式USB芯片 | 31.6 | |
SS8050/三極管(BJT) | 0.035 | |
8S005/錫膏/錫漿 | 17.67 | |
B0505S-1WR3/隔離電源模塊 | 2.34 |