欧美日韩欧美,女人和拘做受大片免费看,麻花豆传媒剧国产mv免费版特色,欧美成人精品高清在线观看,麻豆产精国品一二三产区区

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

2021-08-23 23:51:05      索煒達(dá)電子      1417     

項(xiàng)目編號(hào):E533

文件大?。?5M

源碼說(shuō)明:帶中文注釋

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

簡(jiǎn)要概述

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

3D仿真效果圖: 

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

2D仿真效果圖:

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

實(shí)物效果圖:

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

系統(tǒng)架構(gòu)

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


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


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

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

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


與原版對(duì)比

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


調(diào)參教程

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


這里提供兩種辦法:


1. 對(duì)原采樣方法進(jìn)行改進(jìn)

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


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


2. 對(duì)原采樣結(jié)果上進(jìn)行擬合

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


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


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


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

void getWaveFreq(void);

void AnalyseData(void);


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

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

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

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


WaveFreq   /* 存放頻率值 */

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


需要改進(jìn)的地方

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


開(kāi)發(fā)后記

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


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


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


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

目錄│文件列表:

 └ mini-dso-pro

    ├ doc

    │  ├ datasheet

    │  │  └ STC8A-STC8F-20210308.pdf

    │  ├ image

    │  │  │ 2D反面.png

    │  │  │ 2D正面.png

    │  │  │ 3D正面.png

    │  │  │ 實(shí)物圖正面.png

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

    │  └ report

    │     └ MinDSO-Pro設(shè)計(jì)報(bào)告.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計(jì)算器.zip

TAG示波器
  • 11 次
  • 1 分