analog to digital conversion in avr microcontrollers
play

Analog to digital conversion in AVR Microcontrollers (Chapter 13 of - PowerPoint PPT Presentation

Microprocessors, Lecture 10: Analog to digital conversion in AVR Microcontrollers (Chapter 13 of the text book) Contents ADC units of ATmega32 ADC programming in C University of Tehran 2 ADC in AVR University of Tehran 3 ADC


  1. Microprocessors, Lecture 10: Analog to digital conversion in AVR Microcontrollers (Chapter 13 of the text book)

  2. Contents • ADC units of ATmega32 • ADC programming in C University of Tehran 2

  3. ADC in AVR University of Tehran 3

  4. ADC • Typical usage of ADC (analog to digital convertors) University of Tehran 4

  5. ADC • A typical ADC • Vref= the maximum allowable volatge University of Tehran 5

  6. ADC resolution • Step size: the difference between two consecutive output nembers • For a 8-bit output and Vref=5v, – step size= 5/246 University of Tehran 6

  7. ADC internal structure • Successive approximation method – See page 468 of the book for algorithm details • n steps for an n-bit output ADC • Requires n cycles to calculate digital output University of Tehran 7

  8. ADC in ATmega32 • 7 analog input channels – Just one ADC multiplexed by input channels • 10-bit output – Kept in ADCL and ADCH registers – 6 unused bits, can be set the upper or lower 6 bits University of Tehran 8

  9. AVR ADC Registers • ADCL and ADCH to keep digital data • ADCSRA to control ADCs • ADMux to select one input channel for conversion • SPIO, special function register University of Tehran 9

  10. ADMUX register University of Tehran 10

  11. ADMUX register • Select the reference voltage (the maximum acceptable input channel voltage) University of Tehran 11

  12. ADMUX register • Which bits of ADCH and ADCL are unused University of Tehran 12

  13. ADMUX register • Which channel is selected to the ADC – Can also work in differential mode University of Tehran 13

  14. ADCSRA register • ADC control and status register – Control and monitor the ADC University of Tehran 14

  15. ADCSRA register • ADATE bit • Sets the operation mode of ADC • 0= single conversion – Converts the input just one time every time ADSC becomes 1 • 1= free running – Continuously converts the input to digital values with some frequency – For ADATE=1 we have more ADC options, Take a look at AVR documents for more details if you are interested! University of Tehran 15

  16. ADCSRA register • Selecting the ADC clock University of Tehran 16

  17. ADC clock • Determines the speed of sampling the input data – Each conversion takes around 13 ADC clocks • Larger frequency has smaller accuracy • In AVR, frequency have to be less than 200 kHz • Set it to smaller frequency (ADPS[0..2]=111) if speed is not critical University of Tehran 17

  18. ADC programming in C University of Tehran 18

  19. ADC programming in C A program that coverts the analog voltage of ADC0 and copies it to portD and portB --polling method •The ADSC bit should be 1 for the ADC to start conversion •Returns to 0 automatically once the conversion is completed University of Tehran 19

  20. ADC programming in C A program that coverts the analog voltage of ADC0 and copies it to portD and portB --interrupt method University of Tehran 20

  21. Connecting sensors to AVR • Transducer (sensor): convert environment parameters (temperature, pressure, velocity,…) to electrical quantities (voltage, current, capacitance, resistance) • Signal conditioning: converting electrical quantities to voltage University of Tehran 21

  22. Connecting sensors to AVR- example University of Tehran 22

  23. Connecting LM35 to AVR • In AVR: – Vref=2.56v – 10 bit output, 1024 values � step size=2.56/1024= 2.5 mv • In LM34: – for 1 degree increase in temperature, we have 10mv increase in output voltage � If the temperature increases by one degree: – 10mv increase in sensor output – 10/2.5=4 increase in ADC output • Divide the ADC result by 4 to get actual temperature (shift right 2 times) University of Tehran 23

  24. Connecting LM35 to AVR • Example: temp= 20 degrees, sensor output= 200mv (10mv for every degree), this voltage is converted to 0x1010000=80 (200mv/2.5mv=80) by the ADC • Divide by 4 to get actual temperature by ADC University of Tehran 24

  25. ADC programming in C in CodeVision • Set different values in the project setup wizard University of Tehran 25

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend