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


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

熱門物料
型號
價格
L7805CV-DG/線性穩(wěn)壓器(LDO) | 0.5401 | |
AMS1117-3.3/線性穩(wěn)壓器(LDO) | 0.1237 | |
BAT54C,215/肖特基二極管 | 0.0336 | |
LM358DR2G/運算放大器 | 0.345 | |
CJ431/電壓基準芯片 | 0.1157 | |
LM393DR2G/比較器 | 0.3143 | |
ADUM4160BRWZ-RL/隔離式USB芯片 | 34.83 | |
REF3012AIDBZR/電壓基準芯片 | 0.9316 | |
SS8050/三極管(BJT) | 0.035 | |
8S005/錫膏/錫漿 | 17.67 |