0% found this document useful (0 votes)
37 views20 pages

Lab 3 ADC

The document discusses analog-to-digital converters and their key parameters and implementations. It covers resolution, sampling rate, quantization error, successive-approximation ADCs, and using timers and DMA with ADCs. Programming aspects like sampling time, data alignment, and regular vs injected modes are also explained.

Uploaded by

joshimeet479
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views20 pages

Lab 3 ADC

The document discusses analog-to-digital converters and their key parameters and implementations. It covers resolution, sampling rate, quantization error, successive-approximation ADCs, and using timers and DMA with ADCs. Programming aspects like sampling time, data alignment, and regular vs injected modes are also explained.

Uploaded by

joshimeet479
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Embedded Systems

Lab 2
Analog-to-Digital Converter (ADC)

Dr. Yifeng Zhu


Electrical and Computer Engineering
University of Maine

Fall 2019

1
Analog-to-Digital Converter (ADC)
 ADC is important almost to all application fields
 Converts a continuous-time voltage signal within a given range to
discrete-time digital values to quantify the voltage’s amplitudes

x(t) x(n)

ADC

quantize
continuous-time analog signal discrete-time digital values

2
Analog-to-Digital Converter (ADC)
 Three performance parameters:
 sampling rate
 resolution
 power dissipation
 Many ADC implementations:
 sigma-delta
 successive-approximation
 pipeline

3
Resolution
 Resolution is determined by number of bits (in binary) to represent an analog input.
 Example of two quantization methods (N = 3)

½Δ
Δ

𝐷𝑖𝑔𝑖𝑡𝑎𝑙 𝑅𝑒𝑠𝑢𝑙𝑡= 𝑓𝑙𝑜𝑜𝑟 2 ×


( 3 𝑉
𝑉 𝑅𝐸𝐹 ) 𝐷𝑖𝑔𝑖𝑡𝑎𝑙 𝑅𝑒𝑠𝑢𝑙𝑡=𝑟𝑜𝑢𝑛𝑑 2 ×
( 3 𝑉
𝑉 𝑅𝐸𝐹 )
Max quantization error = Δ = VREF/23 Max quantization error = ±½ Δ = ±VREF/24
4 𝑟𝑜𝑢𝑛𝑑 ( 𝑥 ) = 𝑓𝑙𝑜𝑜𝑟 (𝑥 +0.5)
Quantization Error
 For N-bit ADC, it is limited to ±½Δ
 Δ = is the step size of the converter.

 Example: for 12-bit ADC and input voltage range [0, 3V]

1 3𝑉
𝑀𝑎𝑥 𝑄𝑢𝑎𝑛𝑡𝑖𝑧𝑎𝑡𝑖𝑜𝑛 𝐸𝑟𝑟𝑜𝑟 = ∆= =0.367 𝑚𝑉
2 2× 2
12

5
Minimum Sampling Rate:
Nyquist–Shannon Sampling Theorem
 In order to be able to reconstruct the analog input signal, the sampling rate
should be at least twice the maximum frequency component contained in
the input signal
 Example of two sine waves have the same sampling values. This is called
aliasing.

from wiki.com

 Antialiasing (beyond the scope of this course)


 Pre-filtering: use analog hardware to filtering out high-frequency components and only sampling
the low-frequency components. The high-frequency components are ignored.
 Post-filtering: Oversample continuous signal, then use software to filter out high-frequency
components

6
Successive-approximation (SAR) ADC

7
Determining Minimum Sampling Time

𝒕

𝑽 𝑪 ( 𝒕 ) =𝑽 𝒊𝒏 ×(𝟏 −𝒆
𝑻𝒄
) Sampling time is software
programmable!

Smaller sampling error


Larger sampling time Tradeoff
Slower ADC speed

8
Programming ADC Sampling Time

4 cycles
9 cycles
HSI Clock ADC Clock
Prescaler 16 cycles

Selection
16 MHz /1, /2, /4
24 cycles
default prescaler = 1 48 cycles
96 cycles
192
cycles
384
cycles

ADC sample time register (SMPR)

9
Successive-approximation (SAR) ADC

• Binary search algorithm to


gradually approaches the
input voltage
• Settle into ±½ LSB bound
within the time allowed

𝑇 𝐴𝐷𝐶 =𝑇 𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔 +𝑇 𝐶𝑜𝑛𝑣𝑒𝑟𝑠𝑖𝑜𝑛


𝑇 𝐶𝑜𝑛𝑣𝑒𝑟𝑠𝑖𝑜𝑛= N × 𝑇 𝐴𝐷𝐶 𝐶𝑙𝑜𝑐𝑘

𝑇 𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔is software configurable

10
ADC Conversion Time
𝑇 𝐴𝐷𝐶 =𝑇 𝑠𝑎𝑚𝑝𝑙𝑖𝑛𝑔 +𝑇 𝐶𝑜𝑛𝑣𝑒𝑟𝑠𝑖𝑜𝑛

Suppose ADCCLK = 16 MHz and Sampling time = 4 cycles

For 12-bit ADC

𝑇 𝐴𝐷𝐶 =4 +12=16 𝑐𝑦𝑐𝑙𝑒𝑠=1𝜇 𝑠


For 6-bit ADC

𝑇 𝐴𝐷𝐶 =4 +6=10 𝑐𝑦𝑐𝑙𝑒𝑠=625 𝑛𝑠

11
Data Alignment

12
ADC: Regular vs injected

13
ADC Mode

14
ADC Mode
Regular channel:
1. Set SWSTART in ADC_CR2
2. The channel is selected by SQ1[4:0]
in SQR5
3. Result is stored in ADC_DR
4. EOC is set after conversion
5. Interrupt is generated if EOCIE is set

Injected channel:
6. Set JSWSTART in ADC_CR2
7. The channel is selected by JSQ1[4:0]
in JSQR
8. Result is stored in ADC_JDR1
9. JEOC is set after conversion
10. Interrupt is generated if JEOCIE is set

15
ADC Mode

 Channels are selected by ADC_SQRx


registers for regular channels, and by
ADC_JSQR register for injected
channel

 All channels in a regular group share


the same result register ADC_DR.
Make sure to read data between
consecutive sampling.

16
VREF
 Some chips does not expose VREF to a pin
 STM32L LQFP64 does not have VREF pin
 STM32L LQFP100 does
 Infer internal VREF Corresponds to
 How?

17
Analog Watchdog
Analog voltage
Two programmable thresholds

Higher threshold (HTR)


Guarded Area
Lower threshold (LTR)

 If V < VLTR or V > VHTR, the analog watchdog (AWD) flag (in ADC Status Register) is set,
generating an interrupt to the processor
 The monitor is automatically performed by hardware, not software
 Convenient and efficient feature
 Help processor detect exceptions and recover from specific situations
 For example, monitor sensor data and raise alarm on some level.

18
Example: ADC with Timer Interrupts
Main program

ADC
Set up timer timer
interrupt
interrupt
Timer ADC
Timer ISR
Peripheral Peripheral

Wait for Set ADC_Done flag ADC


DAC_Done = 1 ISR

Process Data  ISR = Interrupt Service Routine


 TIMER ISR starts ADC
Repeat  ADC samples multiple channels
 ADC ISR copies ADC data register to memory

19
Example: ADC with Timer and DMA
Main program
Set up DMA
Set up timer timer
sampling
interrupt
channels DMA
Timer ADC Controller
Timer ISR
Peripheral Peripheral

Wait for Set DMA_Done flag


DMA_Done = 1

Process Data
 Timer ISR starts ADC and DMA
 DMA automatically copies ADC results
Repeat
of multiple channels to memory after
each conversion

20

You might also like