給你一個(gè)單片機(jī),你能造出一個(gè)示波器嗎?
發(fā)布時(shí)間:2017-03-01 責(zé)任編輯:susan
【導(dǎo)讀】本文解析如何實(shí)現(xiàn)一個(gè)簡易的示波器,整個(gè)系統(tǒng)結(jié)構(gòu)簡單,清晰。充分利用了AVR單片機(jī)內(nèi)部資源使系統(tǒng)電路得以簡單化,通過測試該系統(tǒng)在測量頻率方向的誤差很小,可以用來比較準(zhǔn)確的測量測試信號的頻率。
1、系統(tǒng)結(jié)構(gòu)框圖
圖1.系統(tǒng)結(jié)構(gòu)圖
1.1、信號調(diào)理電路
信號調(diào)理電路要完成的功能是:程控放大,疊加直流分量。程控放大的作用是:當(dāng)輸入信號的幅度很小的時(shí)候就需要對輸入信號進(jìn)行放大,使得被測信號可以在LCD上盡可能清楚的顯示出來。疊加直流分量的作用是:ATmega16自帶的A/D是單電源的,沒辦法輸入負(fù)壓而待測信號又往往有負(fù)壓。這時(shí)候就需要這樣一個(gè)電路,可以把負(fù)壓抬高到0電平以上。
圖2.信號調(diào)理電路原理圖
R1,R2分別由一個(gè)模擬開關(guān)CD4051來連接不同的電阻,不同的R1,R2通過公式:這樣就可以實(shí)現(xiàn)程控放大功能了。可調(diào)電阻R9用來設(shè)置信號調(diào)理電路加入的直流分量的大小。放大后的信號和直流分量最后由U3模擬加法器疊加后輸出。
輸入信號與輸出信號的關(guān)系:只要R4、R6、R7的阻值相同,調(diào)理電路輸入與輸出的關(guān)系簡化為:。
Ux為U3的輸出電壓,輸出電壓的電壓值與可調(diào)電阻R9中間抽頭的電壓一至。
1.2、主控芯片軟件設(shè)計(jì)
這個(gè)系統(tǒng)的主控芯片選擇的是,Atmel公司的AVR系列單片機(jī)ATmega16,最高可達(dá)到16MPIS指令速度。ATmega16有16K的flash, 1K的SRAM, 512 B的EEPROM,單片機(jī)內(nèi)部自帶一個(gè)10 bits精度的逐次逼近型模數(shù)轉(zhuǎn)換器,內(nèi)建采樣/保持電路。ADC的時(shí)鐘是可編程的,在這個(gè)設(shè)計(jì)中為了太到最高的采樣頻率100KHz ADC的時(shí)鐘設(shè)置為2MHz。ADC的觸發(fā)源選擇為定時(shí)器/計(jì)數(shù)器0溢出,ATmega16的定時(shí)器的時(shí)鐘源也是可編程的。這樣就可以通過控制定時(shí)器/計(jì)數(shù)器0溢出中斷頻率來控制ADC的采樣頻率。
圖3.簡易示波器系統(tǒng)程序流程圖
1.2.1、鍵盤功能
在這個(gè)系統(tǒng)中設(shè)置了7個(gè)按鈕分別為:運(yùn)行與停止,放大倍數(shù)增大,放大倍數(shù)減小,采樣頻率增大,采樣頻率減小,觸發(fā)電平上移,觸發(fā)電平下移。
運(yùn)行與停止鍵:是通過開啟和關(guān)閉ATmega16 ADC轉(zhuǎn)換完畢中斷的方式來實(shí)現(xiàn)的。
放大倍數(shù)的增大與減小:是通過ATmega16控制模擬開關(guān)CD4051來實(shí)現(xiàn)放大倍數(shù)的數(shù)字化控制。CD4051為8通道的模擬開關(guān),所以程控放大器可以有8檔。
采樣頻率的增大與減?。菏峭ㄟ^控制ATmega16的定時(shí)器0的時(shí)鐘源及定時(shí)器的初始值來實(shí)現(xiàn)系統(tǒng)所需要的各個(gè)采樣頻率。定時(shí)器0的中斷頻率就等于ADC的采樣頻率。
觸發(fā)電平的上移與下移:是通過對采樣來的數(shù)據(jù)進(jìn)行數(shù)字觸發(fā)時(shí),當(dāng)數(shù)據(jù)的二進(jìn)制值在增加的過程中某個(gè)數(shù)據(jù)的大小剛好與數(shù)字觸發(fā)的二進(jìn)制數(shù)值一樣,在此以后的波形數(shù)據(jù)才存入顯示RAM中。
當(dāng)這7個(gè)按鍵中的某一個(gè)被觸發(fā),都會(huì)置位相應(yīng)的標(biāo)志位,以便刷新LCD液晶屏上相應(yīng)的顯示信息。
1.2.3、數(shù)字觸發(fā)功能
如何實(shí)現(xiàn)觸發(fā)呢?用硬件來完成的話又會(huì)增加系統(tǒng)硬件電路的復(fù)雜度,我就想了一個(gè)辦法,有軟件的方式來實(shí)現(xiàn)觸發(fā)的功能。實(shí)現(xiàn)的過程如下:
for (ik=0;ik<500;ik++){
if (k0_ram){
if (box_buff[ik] < trigger) {
kk_ram = 1 ;
}
if (kk_ram){
if ((box_buff[ik] >= trigger) & (ik < 402)){
en_ram = 1 ;
k0_ram = 0 ;
kk_ram = 0 ;
}}}
if (en_ram){
boxing[adc_data]=box_buff[ik] ;
adc_data++ ;
if (adc_data > 96){
adc_data = 0x00 ;
en_ram = 0 ;
}}}
trigger的大小可以通過觸發(fā)電平上移與觸發(fā)電平下移按鍵來設(shè)置它的大小。
1.2.3、還原波形
GDM12864A是一個(gè)具有128點(diǎn)x 64點(diǎn)的點(diǎn)陣LCD。根據(jù)所選的LCD的特點(diǎn),Y軸上只有64個(gè)點(diǎn),所以能顯示的數(shù)據(jù)范圍為0到63而采樣得到的數(shù)據(jù)為8位的二進(jìn)制數(shù)據(jù)為0到255。為了能在這個(gè)LCD上顯示只取8位數(shù)據(jù)的高6位。那么如何把這高6位的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成在LCD上的Y軸座標(biāo)和數(shù)據(jù)值呢?我想了這樣一個(gè)計(jì)算的方法:
LCD的縱向分為8個(gè)地址從上到下依次為0~7,每個(gè)地址段有8個(gè)數(shù)據(jù)點(diǎn)。在某個(gè)數(shù)據(jù)段中如果想依次讓這些位從上到下點(diǎn)亮就需要依次向這個(gè)地址段送數(shù)據(jù)0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,送入0x00后這個(gè)地址段的8個(gè)數(shù)據(jù)點(diǎn)將不被點(diǎn)亮。實(shí)現(xiàn)的具體過程如圖4所示。
dat = dat>>2
y = 7
dat >= 8 ?
dat = dat – 8; y--;
y == 1 ?
dat > 7 ?
dat = 7 ;
dat = 0x80 >> dat
write_add(y,x) ;
write_data(dat) ;
否
否
否
圖4.數(shù)據(jù)還原成波形上點(diǎn)的程序流程圖
1.2.4、ADC采樣頻率控制
ADC的采樣頻率在上文已有提及,ADC中斷的計(jì)算公式為:,通過ATmega16的特殊功能寄存器TCCR0的低3位CS02,CS01,CS00的設(shè)置就可以改變的頻率,再把TCNT0設(shè)置成不同的數(shù)值就可以得到這個(gè)系統(tǒng)所需要的各個(gè)采樣頻率值了。表1中的數(shù)據(jù)是通過上面的公式計(jì)算出來的數(shù)據(jù)再經(jīng)實(shí)際的系統(tǒng)調(diào)試并修正后的數(shù)據(jù)。
表1.采樣頻率的設(shè)置
系統(tǒng)性能指標(biāo)及誤差
2.1、系統(tǒng)性能指標(biāo)
系統(tǒng)主要性能指標(biāo)見表2所示。
表2.系統(tǒng)主要性能指標(biāo)
2.2、系統(tǒng)誤差
系統(tǒng)的誤差主要出在信號調(diào)理電路,因?yàn)槟M開關(guān)有一定的內(nèi)阻約為80Ω對調(diào)理電路的放大倍數(shù)會(huì)造成一定的影響。通過1.1中的計(jì)算公式計(jì)算出來的電阻值在實(shí)際中不存在,通過幾個(gè)電阻串聯(lián)來實(shí)現(xiàn)也還是會(huì)有一定的誤差。平衡電阻R3是固定的在R1,R2發(fā)生變化的時(shí)候,平衡電阻可能就不能平衡也會(huì)給運(yùn)算放大器引入一定的誤差。
2.3、可以改進(jìn)的地方
系統(tǒng)可以進(jìn)一步改進(jìn)的地方在于信號調(diào)理電路,可以通過選擇性能更好的模擬開關(guān)和運(yùn)算放大器,更合理的選擇電阻這樣就可以提高信號調(diào)理電路的放大的準(zhǔn)確度。使整個(gè)系統(tǒng)的性能得以進(jìn)一步改善。
2.4、系統(tǒng)實(shí)際工作情況
LCD顯示的信息分別有,波形圖像,在波形的上面是橫軸的標(biāo)尺,在屏幕的右邊為系統(tǒng)的運(yùn)行狀態(tài)(Run / Stop),Time為整個(gè)波形框的時(shí)間長度,Volt-為電壓檔,在波形框與信息框之間有個(gè)小點(diǎn)為信號的觸發(fā)電平。信號的頻率=波形框中信號的周期數(shù)/Time。
結(jié)論
用這種方法可以實(shí)現(xiàn)一個(gè)簡易的示波器,整個(gè)系統(tǒng)結(jié)構(gòu)簡單,清晰。充分利用了AVR單片機(jī)內(nèi)部資源使系統(tǒng)電路得以簡單化,就連系統(tǒng)的工作時(shí)鐘也是AVR內(nèi)部自帶的。通過測試該系統(tǒng)在測量頻率方向的誤差很小,可以用來比較準(zhǔn)確的測量測試信號的頻率。
特別推薦
- 車用開關(guān)電源的開關(guān)頻率定多高才不影響EMC?
- 大聯(lián)大世平集團(tuán)的駕駛員監(jiān)控系統(tǒng)(DMS)方案榮獲第六屆“金輯獎(jiǎng)之最佳技術(shù)實(shí)踐應(yīng)用”獎(jiǎng)
- 貿(mào)澤推出針對基礎(chǔ)設(shè)施和智慧城市的工程技術(shù)資源中心
- 大普技術(shù)自主可控、高精度、小型化TCXO——對講機(jī)應(yīng)用
- Melexis創(chuàng)新推出集成喚醒功能的汽車制動(dòng)踏板位置傳感器芯片方案
- Vishay推出的新款高能浪涌限流PTC熱敏電阻,可提高有源充放電電路性能
- 美芯晟推出支持ALS和Flicker的小尺寸閃爍光傳感器芯片
技術(shù)文章更多>>
- 遠(yuǎn)山半導(dǎo)體發(fā)布新一代高壓氮化鎵功率器件
- Kvaser發(fā)布全新軟件CanKing 7:便捷CAN總線診斷與分析!
- 6秒速測!瑞典森爾(Senseair)高精度酒精檢測儀,守護(hù)公路貨運(yùn)安全,嚴(yán)防酒駕醉駕
- APSME 2025 亞洲國際功率半導(dǎo)體、材料及裝備技術(shù)展覽會(huì)
- 汽車電子展︱AUTO TECH 2025 廣州國際汽車電子技術(shù)展覽會(huì)
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
Cirrus Logic
CNR
CPU
CPU使用率高
Cree
DC/AC電源模塊
dc/dc
DC/DC電源模塊
DDR2
DDR3
DIY
DRAM
DSP
DSP
D-SUB連接器
DVI連接器
EEPROM
Element14
EMC
EMI
EMI濾波器
Energy Micro
EPB
ept
ESC
ESD
ESD保護(hù)
ESD保護(hù)器件
ESD器件
Eurotect