摘要:今天給大家分享一個基于51單片機的小型示波器開源項目,感興趣的小伙伴可以自己動手試一試。
此示波器的主控是STC8A8K64S4A12,是在B站老劉示波器基礎上的升級版,擴展了測量負電壓的功能,更新了UI設計,同時屏幕升級為1.3寸OLED屏。
原理圖
3D效果圖
實物圖
系統架構
Mini示波器采用了一套成本低廉但又高效的硬件,配合層次化的軟件框架,實現對常規低頻信號波形的采集、分析、顯示。
硬件部分的主要工作有:電源管理(5V、2.5V、-5V);對信號的衰減、限幅、偏置。最后將處理好的電壓信號送入MCU的ADC外設,進行數據采集。由于ADC外設只能采集正電壓,因此我們通過增加偏置電壓的方式,將負電壓抬高來采集。
軟件部分的主要工作有:底層驅動SDK框架、ADC濾波算法、波形數據處理、人機交互界面。SDK提供基本的模塊和外設驅動支持,濾波算法去除噪聲和毛刺,波形處理計算電壓值和頻率,并為波形顯示做準備;人機交互界面提供屏幕顯示(OLED屏)和操作方式(旋鈕和按鍵)。
與原版老劉的對比
這一版本的Mini示波器-Pro,相比于原版對硬件部分做了很大擴展,使其可以測到負電壓。軟件部分修改了有30%,主要是在數據處理和UI顯示部分。
需要改進的地方:
1、硬件的性能還沒有全部發揮出來,測量幅度還可以更高;
2、MCU的性能還沒有榨干,比如沒有用上硬件SPI,提高屏幕刷新率。
總結
1、最一開始設想的方案,是想用上我自己寫的AntOS操作系統,但是初版操作系統為合作式調度,在實際使用的過程中,并沒有達到我的預期效果,所以選擇在老劉示波器的基礎工程上修改和優化。
2、硬件設計主要參考了B站唐老師講電賽大佬提供的方案,實際使用的過程中,又微調了一部分,建議大家可以去閱讀一下硬件電路中使用的幾種芯片數據手冊,這樣心里更有底,不然遇到問題不好排查。
3、大多數元器件,我用的都是0603的封裝,這樣可以讓PCB板設計的更小巧更緊湊,但是不好焊接。
4、下一版本,我將使用STC8AxD4作為主控(因為有DMA),軟件上使用我現在編寫AntOS(已支持搶占式調度),進一步提高示波器的性能。
項目獲取
這個開源項目來自B站UP澤文i的獨家投稿,這是一位大三的小伙伴,他自己還寫了一套8051-ELL庫,是根據新一代增強型8051為內核的MCU,基于keil開發的軟件包,感興趣的小伙伴可以關注了解一下。
老樣子,此示波器的程序源碼、PCB工程文件,以及說明文檔等資料已上傳至網盤,想深入學習的可以自己下載看一看。
項目地址:https://pan.baidu.com/s/1H8XddVyfuPrLA8vufJ2P8Q
提 取 碼:lqnm
審核編輯 :李倩
-
示波器
+關注
關注
113文章
6190瀏覽量
184521 -
51單片機
+關注
關注
273文章
5697瀏覽量
123189 -
OLED屏
+關注
關注
0文章
162瀏覽量
20823
原文標題:超硬核!手把手教你DIY一個示波器
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論