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


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

熱門物料
型號
價格