PIC Microcontroller

Download Report

Transcript PIC Microcontroller

EE 472 – Senior Project
“Noise Characterization of A/D
Converter on PIC Microcontroller”
Hang B. Lee, Applied Physics & EE
Advisor: Prof. Robert Grober
EE 472 – Senior Project
PIC Microcontroller
• PIC: Programmable Interface Controller
• Modifiable by end user:
- Software (C code)
- Hardware (modification to circuitry)
• Common use in robotics and control applications
• Potential use in data acquisition or measurement
EE 472 – Senior Project
Project Goal
•
•
•
Understand noise characteristics of A/D Converter
Investigate methods to minimize or eliminate noise
Artificially enhance resolution – software methods
EE 472 – Senior Project
A/D Converter
•
10-bit resolution
•
8 channels for analog input
•
Throughput: 35,000 samples per sec
•
Method of conversion:
(i) sample and hold
(ii) successive approximation
EE 472 – Senior Project
Resolution
• What is maximum resolution?

Vref
2N
 5V
 10  5m V
2
• For 5V, maximum resolution ~ 5 mV
• 1 LSB represents 5mV increment
EE 472 – Senior Project
A/D Converter Noise
•
•
•
•
Quantization noise (error due to discretizing)
Thermal noise
Reference voltage variations
Etc.
What is the sum of all these contributions?
EE 472 – Senior Project
Oversampling and Averaging
• Artificially enhance resolution
• Cost efficient alternative to paying for higher resolution
BUT ….
• Tradeoff throughput
(High resolution means slower conversion speed)
• More CPU intensive
EE 472 – Senior Project
Requirements
•
Must be able to approximate sum of all noise
contributions as white noise
•
White noise has uniform power spectral density
Two ways to check for this:
(1) Histogram analysis
(2) Take FT of autocorrelation
EE 472 – Senior Project
Data Measurement
• Built-in potentiometer / DC power supply
• Labview collects digital output values
• Histogram analysis
EE 472 – Senior Project
Serial Interface
• Serial interface PIC chip with PC
• Receive streaming data from output pin
• Approaches taken:
(1) Visual Basic – failed effort
(2) Labview – better
EE 472 – Senior Project
Problems with Visual Basic
• Buffer check requires too much time
• Causes lag in data acquisition
• Too slow for collecting large number of data points
EE 472 – Senior Project
Labview Waveform
EE 472 – Senior Project
Waveform Close-up
EE 472 – Senior Project
Another Waveform
EE 472 – Senior Project
Histogram – 88
Histogram of Digital Output - 88
30000
Counts
20000
10000
0
82
83
84
85
86
87
88
89
90
91
Digital Output
92
93
94
95
96
EE 472 – Senior Project
Histogram - 11
Histogram of Digital Output - 11
20000
15000
Counts
10000
5000
0
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Digital Output
EE 472 – Senior Project
Histogram – 255
Histogram of Digital Output - 255
40000
30000
Counts
20000
10000
0
240
245
250
255
260
Digital Output
265
270
EE 472 – Senior Project
DC Histogram – 18
Histogram of Digital Output - 18
4000
3000
Counts
2000
1000
0
13
14
15
16
17
18
19
20
Digital Output
21
22
23
24
25
EE 472 – Senior Project
What Now?
•
We understand that “effective” resolution is not
nearly as good as maximum resolution
•
Dithering may help – introduce white noise
then oversample and average