极品馒头泬19p,国产精品亚洲一区二区三区,狠狠色噜噜狠狠狠7777奇米,国产精品视频一区二区三区无码,国产欧美日韩久久久久

【E533】STC示波器Pro版本(源碼+PCB圖+原理圖)

2021-08-23 23:51:05      索煒達電子      1400     

項目編號:E533

文件大小:25M

源碼說明:帶中文注釋

開發(fā)環(huán)境:C編譯器

簡要概述

示波器Pro版本,在原版的基礎上,擴展了測量負電壓的功能,更新了UI設計,屏幕升級為1.3寸OLED屏。你可以在doc文件夾,獲取設計報告和相關的芯片數(shù)據(jù)手冊。

3D仿真效果圖: 

【E533】STC示波器Pro版本(源碼+PCB圖+原理圖)

2D仿真效果圖:

【E533】STC示波器Pro版本(源碼+PCB圖+原理圖)

實物效果圖:

【E533】STC示波器Pro版本(源碼+PCB圖+原理圖)

系統(tǒng)架構

Mini示波器采用了一套成本低廉但高效的硬件,配合層次化的軟件框架,實現(xiàn)對常規(guī)低頻信號波形的采集、分析、顯示。


硬件部分的主要工作有:電源管理(5V、2.5V、-5V);對信號的衰減、限幅、偏置。最后將處理好的電壓信號送入MCU的ADC外設,進行數(shù)據(jù)采集。由于ADC外設只能采集正電壓,因此我們通過增加偏置電壓的方式,將負電壓抬高來采集。


軟件部分的主要工作有:底層驅(qū)動SDK框架、ADC濾波算法、波形數(shù)據(jù)處理、人機交互界面。SDK提供基本的模塊和外設驅(qū)動支持,濾波算法去除噪聲和毛刺,波形處理計算電壓值和頻率,并為波形顯示做準備;人機交互界面提供屏幕顯示(OLED屏)和操作方式(旋鈕和按鍵)。

【E533】STC示波器Pro版本(源碼+PCB圖+原理圖)

【E533】STC示波器Pro版本(源碼+PCB圖+原理圖)


與原版對比

這一版本的Mini示波器-Pro,相比于原版對硬件部分做了很大擴展,使其可以測到負電壓。軟件部分修改了有30%,主要是在數(shù)據(jù)處理和UI顯示部分。


調(diào)參教程

示波器采樣的原理與原版一致,但是由于硬件上加了許多電路,導致信號呈非線性變化,因此需要對系統(tǒng)計算的結果進行處理。


這里提供兩種辦法:


1. 對原采樣方法進行改進

原版的采樣模式,是利用了芯片自帶的12位ADC進行采樣,所以可以對ADC的采樣函數(shù)進行優(yōu)化。原版使用了查詢法,通過循環(huán)等待采樣完成標志位,獲取采樣結果。


頻率的計算,是根據(jù)不同的采樣時間(delay延時等待法),來分段計算頻率值。這里可以通過定時器來控制采樣時間,提高精確度。


2. 對原采樣結果上進行擬合

直接在原版的采樣結果上進行數(shù)據(jù)擬合,這樣做比較快捷,也是我用的方法(主要是趕時間)。但是誤差較大,且需要測算的數(shù)據(jù)量有一點多。


具體的方法是,首先記錄原采樣的結果,電壓幅度的刻度為0.5V,范圍是從0V到20V。 頻率的刻度為1KHz,范圍是從0KHZ到20KHz。將測算的結果與輸入的信號,一一對應擬合出計算公式,我采用的Excel來操作,選擇的是對數(shù)函數(shù)來擬合,數(shù)據(jù)有誤差。


具體需要擬合的函數(shù)在chart.c文件中,函數(shù)名稱如下:


/* 需要擬合數(shù)據(jù)的函數(shù)如下:*/

void getWaveFreq(void);

void AnalyseData(void);


/* 擬合數(shù)據(jù)的結果存放在如下變量:*/

VMax_m  /* 存放電壓最大值 */

VMin_m  /* 存放電壓最小值 */

Mvoltage  /* 存放電壓平均值 */


WaveFreq   /* 存放頻率值 */

開發(fā)者在調(diào)參的時候,可以屏蔽我的擬合代碼,進行原方法采樣結果的記錄,然后進行數(shù)據(jù)擬合。我會在代碼中進行標注,方便開發(fā)者查找和修改。


需要改進的地方

1.硬件的性能還沒有全部發(fā)揮出來,測量幅度還可以更高。 2.MCU的性能還沒有榨干,比如沒有用上硬件SPI,提高屏幕刷新率。


開發(fā)后記

1.最一開始設想的方案,我是想用上我寫的AntOS操作系統(tǒng)的,但是初版操作系統(tǒng),為合作式調(diào)度,實際使用的過程中,并沒有達到我的預期效果,所以選擇在老劉示波器的基礎工程上修改和優(yōu)化。


2.硬件設計主要參考了B站唐老師講電賽大佬提供的方案,實際使用的過程中,我又微調(diào)了一部分,建議大家可以去閱讀一下硬件電路中使用的幾種芯片數(shù)據(jù)手冊,這樣心里更有底,不然遇到問題不好排查。


3.大多數(shù)元器件,我用的都是0603的封裝,這樣可以讓PCB板設計的更小巧更緊湊,但是不好焊接。


4.下一版本,我將使用STC8AxD4作為主控(因為有DMA),軟件上使用我現(xiàn)在編寫AntOS(已支持搶占式調(diào)度),進一步提高示波器的性能。

目錄│文件列表:

 └ mini-dso-pro

    ├ doc

    │  ├ datasheet

    │  │  └ STC8A-STC8F-20210308.pdf

    │  ├ image

    │  │  │ 2D反面.png

    │  │  │ 2D正面.png

    │  │  │ 3D正面.png

    │  │  │ 實物圖正面.png

    │  │  └ 系統(tǒng)原理圖.png

    │  └ report

    │     └ MinDSO-Pro設計報告.doc

    ├ pcb

    │  │ BOM.xlsx

    │  │ Mini示波器-Pro-sch.pdf

    │  └ Mini示波器-Pro-pcb

    │     │ Gerber_BoardOutline.GKO

    │     │ Gerber_BottomLayer.GBL

    │     │ Gerber_BottomSilkLayer.GBO

    │     │ Gerber_BottomSolderMaskLayer.GBS

    │     │ Gerber_Drill_NPTH.DRL

    │     │ Gerber_Drill_PTH.DRL

    │     │ Gerber_TopLayer.GTL

    │     │ Gerber_TopPasteMaskLayer.GTP

    │     │ Gerber_TopSilkLayer.GTO

    │     │ Gerber_TopSolderMaskLayer.GTS

    │     └ PCB下單必讀.txt

    ├ project

    │  └ MiniDSO-Pro v1.0

    │     │ adc_stc8.c

    │     │ adc_stc8.h

    │     │ bmp.h

    │     │ chart.c

    │     │ chart.h

    │     │ Clear.bat

    │     │ config_stc.h

    │     │ delay.c

    │     │ delay.h

    │     │ EEPROM.bin

    │     │ eeprom.c

    │     │ eeprom.h

    │     │ global.c

    │     │ global.h

    │     │ main.c

    │     │ Mini DSO.uvgui.Administrator

    │     │ Mini DSO.uvopt

    │     │ Mini DSO.uvproj

    │     │ settings.c

    │     │ settings.h

    │     │ ssd1306.c

    │     │ ssd1306.h

    │     │ ssd1306font.h

    │     │ STARTUP.A51

    │     ├ .vscode

    │     │  │ c_cpp_properties.json

    │     │  │ keil-assistant.log

    │     │  │ uv4.log

    │     │  └ uv4.log.lock

    │     ├ Objects

    │     │  │ Mini_DSO

    │     │  └ Mini_DSO.hex

    │     └ uart

    │        │ drv_uart.c

    │        └ drv_uart.h

    └ tools

       └ tl431計算器.zip

TAG示波器
  • 11 次
  • 1 分