회원가입 ID/PW 찾기

1) 지식 창고는 본인이 작성한 콘텐츠(팁/노하우/리소스/강좌 등)을 무료 혹은 가상화폐인 납포인트를 통해 공유하는 공간입니다.
2) 본인이 작성한 콘텐츠에 대해서만 지식 창고에 등록할 수 있으며, 저작권에 위배되는 콘텐츠는 사전경고 없이 삭제될 수 있습니다.
3) 콘텐츠 구매 및 첨부파일 다운로드는 회원그룹 '연구원' 이상 가능하오니, 경험치를 쌓아 진급한 후에 이용 부탁드립니다.
4) 무료 콘텐츠의 본문은 구매절차 없이 즉시 이용할 수 있으며, 판매 납포인트가 있는 콘텐츠는 구매 후 이용할 수 있습니다.
5) 콘텐츠 판매에 따른 납포인트 수익은 지정한 비율(50%)에 따라 판매자에게 지급하며, 납포인트 수익을 통해 진급을 빨리할 수 있습니다.
6) 구매 후 평가를 하면 구매 납포인트의 20%를 돌려 드립니다.

콘텐츠 수 739

Low speed AVR oscilloscope

마이크로프로세서 구매수 0 2015.07.11 23:10:50
판매자 아크마 판매 납포인트 무료 평점 0점 / 총 0명 참여

 

 

 

 

Features

Frequency measurement

Voltage input

Power supply

Liquid Display Crystal

Measurement display area

Information displaying area:

Auto triggering

10Hz - 7.7 kHz (firmware  2.0 and above)

24V AC / 30V DC

12V DC

128x64 pixels

100x64 pixels

28x64 pixels  (Used from firmware  2.0 and above)

Auto

 

Introduction

 

A few months ago as I was surfing on the net, I saw an oscilloscope based on PIC18F2550 microcontroller and a KS0108 controller based graphical LCD. That was Steven Cholewiak's web site. I had never seen before so amazing microcontroller-only oscilloscope. That was realy impressive circuit, so I decided to design something like that but in C language instead of assembly that I was using all those years. The best solution for me was the WinAVR as it bases on open source AVR-GNU compiler and it works perfect with AVR studio 4. The graphics library that I used, was made by me specific for this project. It's not for general use. If you want to include it to your source codes, you have to convert it according to your needs. The maximum input signal speed who can show up this oscilloscope is 7.7 kHz in square signal. For other signals (sine or triangle) the frequency is lower ( almost 1 kHz) for having clear view of the signal.

 

Schematic of the circuit (click to enlarge)

 

Description

The operating voltage of the circuit is 12V DC. By this voltage, the power supply is producing 2 voltages. +8.2V for IC1 and +5V for IC2 and IC3. This circuit can measure from +2.5V to -2.5V or from 0 to +5V dependent by S1 position (AC or DC input). By using probe with 1:10 division you can measure almost 10 times higher voltages. Moreover, with S2 you can make an extra division by 2 the input voltage.

 

How the software triggering works

As you can see the circuit doesn't have any hardware triggering. The triggering function is been made entire in software.

The steps for triggering are:

      1. The AVR gets up to 15000  Analog to Digital Converter samples and calculates the middle value of the waveform. The number of captured samples is depended on when a full period is completed
      2. Starts again capturing new samples but every sample value must be compared with the previous sample.
      3. If the next sample is higher than the previous sample then our waveform is rising. So AVR goes to step 4. If the next sample value is lower than the previous sample then AVR goes to step 2.
      4. Read the next sample value and compare it with the middle value had been calculated in step 1.
      5. AVR checks if the value of the next captured sample is higher than the middle value.
      6. If it's higher, the beginning of the waveform has been found. The AVR starts capturing the next 100 samples in to the RAM. I choose 100 samples because I left 100 pixels on LCD for displaying the waveform.
      7. AVR Prints these 100 samples on LCD.
      8. AVR starts again from step 1.

You will say: Why AVR starts again from step 1 and not from step 2 ?  AVR starts again the capturing  from step 1 because you can change the peak-to-peak voltage of the waveform (0V - 5V). Changing the input waveform will change the middle value of the waveform.

How is the frequency is calculated

The frequency indication of course is not very accurate. The calculation is been made by counting the time from the beginning of waveform (step 4 in  "How the software triggering works") until the next start of waveform.

 

Programming The ATmega32

Burn the ATmega32 with AVR_oscilloscope.hex  and select external crystal at the fuses section.

After that, you Must disable the JTAG interface from your ATmega32 microController. If you don't do that, the mega32 will show you the initial screen and when it go to the oscilloscope screen it will restart immediately to the initial screen and it will stay there for ever.

 

The fuses that must be set in ATmega32 microcontroller.

Calibrations

The only 2 things you have to calibrate is the LCD contrast trimmer P2 and the P1, to move the beam at the center of the LCD. To do that, apply only the power supply to the circuit and adjust the P2 up to the point you will see clear the appeared pixels on the screen. Then, adjust the P1 up to the point the beam is moved at the middle of the LCD (at the horizontal line of the cross).

 

Usage

   You can move the beam up or down the screen by pressing the buttons S8 or S4 correspondingly to measure the voltage of the signal. 1 volt is taking up 1 square height.

   With S7 and S3 you can increase or decrease the measurement speed. The minimum speed of a waveform that can be displayed on LCD is 460Hz. If you want to view a lower frequency waveform, for example 30 Hz,  you can press the S7 to shrink the waveform or S3 to extend the waveform up to the maximum sampling rate.

   This oscilloscope has an automatic trigger. That means, if you have a continuous signal (ex a triagle waveform) the auto trigger will work perfect. If your signal is not stable (ex a serial transmittion) you can freeze the screen by pressing S6 switch. At his case you can get a snapshoot of your measurment signal. By the time you release the S6, the snapshoot will end.

 

PCB (101x160mm) and components placement.

 

History:

  -- (19 Mar 2011) V2.00 by Vassilis Serasidis. The harware (PCB, schematic diagram, electronic components) remains the same.

    • Information about the measured waveform has been added on LCD. Now you can see the Volts peak-to-peak, Volts DC and the frequency of the measured waveform.
    • The RAM requirement of AVR microcontroller has been reduced from 2kB to 335 bytes! Now you can slightly modify the source code for migrating on another AVR microcontroller with (probably) higher ADC (Analog to Digital Convertion) capabilities.
    • Improved the sampling rate. Tha sampling accuracy was reduced from 10-bit to 8-bit and the ADC prescaller decreased from 16 to 4. These  changes give higher sampling rate.
    • A problem with buttons S3 and S7 was fixed. Now these buttons work properly.

  -- (26.Jun.2008)  V1.01 by Anantha Narayanan. Fixed a problem that was showed up the with the delay routine and optimitation flags.

  -- (03.Aug.2007) V1.00 Initial version by Vassilis Serasidis.

 

See AVR oscilloscope V2.00 in action.

 

AVR oscilloscope V2.00

 

 

AVR oscilloscope V1.50 (this firmware version was never published).

V2.00 Download the source code and the hex file of AVR oscilloscope.

V1.01 Download the source code and the hex file of AVR oscilloscope.

V1.00 Download the source code, hex, schematic and PCB of AVR oscilloscope.

Software to make your own 128x64 pixel logos for graphical LCDs .

 

 

 

 

The implementation of AVR oscilloscope by Leonardo Chocron.  He drew his own PCB (sandwich).

 

 

 

A comparison between "AVR oscilloscope" and Velleman oscilloscope. Yeah... there are some differencies on voltage indication.

 

Created and published by Vassilis Serasidis on 01.Dec.2007

Updated by Vassilis Serasidis on 01.Jun.2011

모르는 것이 무엇인지 스스로 정리하고 질문하는 습관을 가집시다.
무성의/광범위하거나 직접 해보지 않고 올리는 질문은 서로를 피곤하게 합니다.
질문쪽지는 사절이오니 게시판에 글을 남겨주세요. 그래야 다같이 공유할 수 있으니까요.


profile
크히히힝 2016.08.12 17:05

감사합니다

profile
시나브로69 2017.06.25 23:20
좋은 자료 감사합니다.
search
List of Articles
번호 분류 제목 평점 포인트 판매자 등록일 구매수 조회 수
공지 공공의 목적으로 공유하고자 하는 소프트웨어는 '소프트웨어 자료실'에 업로드를 요청드립니다.
공지 구매후 평점 댓글을 남겨주시면 구매포인트의 20%를 돌려드립니다.
719 마이크로프로세서 AVR projects 사이트 모음 [6] 무료 아크마 2015-07-11 0 2704
» 마이크로프로세서 Low speed AVR oscilloscope [2] 무료 아크마 2015-07-11 0 329
717 마이크로프로세서 LSB/MSB 순서 차이에 의한 이종 컴파일러간 통신시 주의점 무료 아크마 2015-06-06 0 300
716 마이크로프로세서 아두이노 [2] 무료 세넷 2015-05-12 0 145
715 마이크로프로세서 Freescale MPC56XX 계열 개발경험자 분 있으신가요? [1] 무료 lucawa86 2015-03-31 0 204
714 마이크로프로세서 PIC18F877로 IDE HDD 제어하는 회로도(PIC18F877+82C55A 확장) [6] 무료 킬유21 2015-02-19 0 335
713 마이크로프로세서 인터럽트 방식으로 LED 제어.c (좌/우 쉬프트) [4] 무료 킬유21 2015-02-19 0 385
712 마이크로프로세서 Graphic LCD 128X64 dot 용 예제파일 [3] 무료 킬유21 2015-02-19 0 355
711 마이크로프로세서 Temperature sensor PIC18F2550 vs LM75(회로/펌웨어) [4] 무료 킬유21 2015-02-19 0 190
710 마이크로프로세서 LM75로 온도센싱하기(AVR16+LM75, IAR Compiler) [2] 무료 킬유21 2015-02-19 0 181
709 마이크로프로세서 ledDisplay.c(우에서 좌로 좌에서 우로 led 가 물결치듯 시프트) [2] 무료 킬유21 2015-02-19 0 285
708 마이크로프로세서 8051을 이용한 습도센서 제어.c [2] 무료 킬유21 2015-02-19 0 185
707 마이크로프로세서 8051을 이용한 디지털시계구현.c [3] 무료 킬유21 2015-02-19 0 472
706 마이크로프로세서 LM75로 온도센싱하여 7Segment에 표시하기(AVR128 + LM75 TWI Master, 회로포함) [3] 무료 킬유21 2015-02-19 0 296
705 마이크로프로세서 LM75로 온도센싱하여 LCD에 표시하기(AVR128 + LM75 TWI Master) [2] 무료 킬유21 2015-02-19 0 417
704 마이크로프로세서 LM75로 온도센싱하기(AVR128 + LM75 TWI Master) [3] 무료 킬유21 2015-02-19 0 149
703 마이크로프로세서 codevision프로그램으로 블루투스 [2] 무료 dktanoidnw 2014-11-23 0 356
702 마이크로프로세서 쓸만한 fpga [6] 무료 바람이 2014-06-01 0 1842
701 마이크로프로세서 at90s2313-10si 안에 락비트 푸실수 있는분? [1] 무료 jazzjazz 2014-05-19 0 213
700 마이크로프로세서 atmega128을 이용하여 iir 필터를 구현하려고합니다 고수님들 도움좀 ㅠㅠ 무료 pjm 2013-11-15 0 560
  • 약속은 태산처럼 해놓고, 실천은 두더지 둔덕만큼 한다.
    - C.H.스퍼전
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.