통신 > Low speed AVR oscilloscope V2.00 (Is updated on 19 Mar 2011)

TODAY143 TOTAL2,697,948
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 통신 | USB | Low speed AVR oscilloscope V2.00 (Is updated on 19 Mar 2011)

페이지 정보

작성자 키트 작성일2017-09-01 11:19 조회2,032회 댓글0건

본문

 

Low speed AVR oscilloscope V2.00 (Is updated on 19 Mar 2011)






Picture of Low speed AVR oscilloscope V2


>> The firmware was updated on 19 Mar 2011 <<

A few months ago a friend of mine -car mechanical at profession- told me that he had problem with some car sensors. He couldn't check, with a simple multimeter, if a sensor was working properly. I advised him to buy a LCD oscilloscope instead of a normal oscilloscope, because of its small size. The use of an oscilloscope is very helpful because you can see the waveform that is produced by a "healthy" in-circuit-sensor* and you can compare it with the waveform of a "suspect" in-circuit-sensor.
After that, he told me that this oscilloscope costs a "fortune" for him as he has a small car service shop. I offered to help him by designing and constructing a small, cheap and workable LCD oscilloscope for him.

*in-circuit-sensor is the sensor which is connected on a board (PCB) or it's connected somewhere in the car. It's not a disconnected sensor.

You can download the source code, hex, schematic diagram,PCB and picture of the circuit .

Step 1: Selecting the components


Picture of Selecting the components

As the circuit has to be constituted by a few and cheap components, I chose theDEM128064A graphical LCD based on KS0108 controller chip to display the measured signals. The ATmega32 microcontroller is chosen because it has a lot of IN/OUT pins and a 2kB RAM size. 1kB is needed from gLCD and some bytes of the rest 1kB are used in C source code as registers. Because my oscilloscope has to read both AC and DC currents and at the same time it should have a High input resistance, I chose to use an LM358 which is a dual operational amplifier. The rest components like LM7805 , capacitors and resistors are very common and I won't refer to them.

Step 2: Designing the schematic diagram

Picture of Designing the schematic diagram

After I had chosen the components, I had to draw the schematic diagram of this circuit. For this purpose I used the Splan 5 that is not freeware but it is a very cheap schematic diagram software.





 

3660040649_CxIo59Kt_avr_oscilloscope_V2.0_pic2.JPG

3660040649_qKDx1JOC_avr_oscilloscope_V2.0_pic1.JPG

 

 

 

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.

 

3660040649_mUDckIla_SCHEMATIC_s.gif

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.

 

3660040649_QkC3qfSB_ATmega32_fuses.JPG

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.

 

3660040649_H2Q3tLOj_pcb_101x160mm.jpg

3660040649_4ujDWbyC_components.jpg

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).

 

https://www.paypal.com/cgi-bin/webscr" method="post" style="font-family: 'Malgun Gothic'; font-size: medium; line-height: normal; background-color: rgb(255, 255, 255);">

https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" /> 3660040649_iR05zm2L_pixel.gif

 

3660040649_X9T721dO_download.gif

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

3660040649_X9T721dO_download.gif

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

3660040649_X9T721dO_download.gif

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

3660040649_X9T721dO_download.gif

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

 

 

 

3660040649_fhUG3lAC_oscilloscopeLeonChor.jpg

 

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

 

 

 

3660040649_lxbySnW9_oscilloscopeLeonChor2.jpg

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 

댓글 0

조회수 2,032

등록된 댓글이 없습니다.

통신HOME > 통신 > USB 목록

게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기