L9: Analog Building Blocks (OpAmps,, A/D, D/A) Acknowledgement: Dave Wentzloff
Introduction to Operational Amplifiers DC Model Typically very high input resistance ~ 300KΩ v id in a v id out High DC gain (~0 5 ) Output resistance ~75Ω V = a( f ) out V in LM74 Pinout 0 to 5V a(f) 0 5 20dB/ decade 0 to 5V 0Hz f 2
The Inside of a 74 OpAmp Differential Input Stage Current Source for biasing Additional Gain Stage Output Stage Output devices provides large drive current Bipolar version has small input Bias current MOS OpAmps have ~ 0 input current Gain is Sensitive to Operating Condition (e.g., Device, Temperature, Power supply voltage, etc.) 3
Simple Model for an OpAmp i ~ 0 i ~ 0 v id V CC 00µV V CC = 0V ε = 00µV v id V easonable CC approximation Linear Mode V CC = 0V Negative Saturation Positive Saturation v id av id If V CC < < V CC v id V CC v id < ε v id V CC v id > ε Small input range for Open loop Configuration 4
The Power of (Negative) Feedback vin 2 vout v in v id av id 2 v in v id v out 2 v id = 0 v id = v a out v in = v a out a 2 2 v v out in a 2 = a >> 2 2 ( a) ( if ) Overall (closed loop) gain does not depend of open loop gain Trade gain for robustness Easier analysis approach: virtual short circuit approach v = v = 0 if OpAmp is linear 5
Basic OpAmp Circuits Voltage Follower (buffer) v in Noninverting v in 2 v in v in2 v out v in Differential Input 2 2 v in 2 v in Integrator C v out 2 ( v v ) in 2 in v 6 out C t v in dt
Use With Open Loop Analog Comparator: Is V > V? The Output is a DIGITAL signal LM3 is a single supply comparator 7
Data Conversion: Quantization Noise A/D Conversion D/A Conversion Binary Output 0 0 00 V 0 ref 4 V ref 2 3V ref 4 Analog Input V ref Analog Output 3V ref 4 V ref 2 V ref 4 0 00 0 0 Binary code v in A/D digital code D/A Quantization noise LSB v noise Quantization noise exists even with ideal A/D and D/A converters V ref 4 V ref 2 3V ref 4 V ref vin 8
Nonidealities in Data Conversion Offset a constant voltage offset that appears at the output when the digital input is 0 Gain error deviation of slope from ideal value of Analog Offset error Ideal Analog Gain error Ideal Binary code Integral Nonlinearity maximum deviation from the ideal analog output voltage Binary code Differential nonlinearity the largest increment in analog output for a bit change Analog Integral nonlinearity Ideal Analog Ideal Nonmonoticity Binary code Binary code 9
2 Ladder DAC Architecture Note that the driving point impedance (resistance) is the same for each cell. 2 Ladder achieves large current division ratios with only two resistor values 0
DAC (AD 558) Specs Used in Lab 3 8bit DAC Single Supply Operation: 5V to 5V Integrates required references (bandgap voltage reference) Uses a 2 resistor ladder Settling time µs Programmable output range from 0V to 2.56V or 0V to 0V Simple Latch based interface
Chip Architecture and Interface D[7:0] LATCH CE CS Outputs are noisy when input bits settles, so it is best to have inputs stable before latching the input data 2
Setting the Voltage ange Very similar to a noninverting amp Strap output for different voltage ranges Convert data to Offset binary 3
Another Approach: BinaryWeighted DAC I b3 b b b 2 0 I 2 I 4 I 8 Switch binaryweighted currents MSB to LSB current ratio is 2 N ( ) = I b 3 2 b2 4 b 8 b 0 AD9768 Analog Devices AD9768 uses two banks of ratioed currents Additional current division performed by 750 Ω resistor between the two banks eference current source 4
Glitching and Thermometer D/A Glitching is caused when switching times in a D/A are not synchronized Example: Output changes from 0 to 00 MSB switch is delayed Filtering reduces glitch but increases the D/A settling time One solution is a thermometer code D/A requires 2 N switches but no ratioed currents 0 00 t Binary Thermometer = I T0 T T2 5 I T 0 I 0 0 0 0 T T2 I 0 0 0 ( ) 0 0 0
SuccessiveApproximation A/D D/A converters are typically compact and easier to design. Why not A/D convert using a D/A converter and a comparator? D to A generates analog voltage which is compared to the input voltage If D to A voltage > input voltage then set that bit; otherwise, reset that bit This type of A to D takes a fixed amount of time proportional to the bit length V in code D/A C Comparator out Example: 3bit A/D conversion, 2 LSB < V in < 3 LSB 6
SuccessiveApproximation A/D D/A Converter N Data Successive Approximation Generator Done v in Sample/ Hold Control Go Serial conversion takes a time equal to N(t D/A t comp ) 7
SuccessiveApproximation A/D (AD670) Used in Lab 3 Unipolar (BPO =0) ~0µs conversion time Bipolar (BPO =) 8
Single Write, Single ead Operation (see data sheet for other modes) /W CE, CS Status t DC t w Write ead t c t TD t DT Data Valid Data Valid t w (write/start pulse width) = 300ns (min) t DC (delay to start conversion) = 700ns (max) t c (conversion time) = 0µs (max) t TD (Bus Access Time) = 250 (max) t DT (Output Float Delay) = 50 (max) Control bits CE and CS can be wired to ground if A/D is the only chip driving the bus Tie the CE and CS pins together for lab3 and hardwire BPO and Format 9
Simple A/D Interface FSM clk reset sample FSM cs_b r_w_b status CS CE /W STATUS AD670 dataavail Data[7:0] Q D Status should be synchronized: why? Courtesy of James Oey and Cemal Akcaba 20
Example A/D Verilog Interface module AD670 (clk, reset, sample, dataavail, r_wbar, cs_bar, status, state); // System Clk input clk; // Global eset signal, assume it is synchronized input reset; // User Interface input sample; output dataavail; // AD Interface input status; reg status_d, status_d2; output r_wbar, cs_bar; output [3:0] state; // State declarations. parameter IDLE = 0; parameter CONV0 = ; parameter CONV = 2; parameter CONV2 = 3; parameter WAITSTATUSHIGH = 4; parameter WAITSTATUSLOW = 5; parameter EADDELAY0 = 6; parameter EADDELAY = 7; parameter EADCYCLE = 8; always @ (posedge clk or negedge reset) begin if (!reset) state <=IDLE; else state <=nextstate; status_d <= status; status_d2 <= status_d; // internal state reg [3:0] state; reg [3:0] nextstate; reg r_wbar_int, r_wbar; reg cs_bar_int, cs_bar; reg dataavail; /5 r_wbar <= r_wbar_int; cs_bar <=cs_bar_int; end 2/5 2
Example A/D Verilog Interface (cont.) always @ (state or status_d2 or sample) begin // defaults r_wbar_int = ; cs_bar_int = ; dataavail = 0; case (state) IDLE: begin if(sample) nextstate = CONV0; else nextstate = IDLE; end CONV0: begin r_wbar_int = 0; cs_bar_int = 0; nextstate = CONV; end CONV: begin r_wbar_int = 0; cs_bar_int = 0; nextstate = CONV2; end CONV2: begin r_wbar_int = 0; cs_bar_int = 0; nextstate = WAITSTATUSHIGH; end WAITSTATUSHIGH: begin cs_bar_int = 0; if (status_d2) nextstate = WAITSTATUSLOW; else nextstate = WAITSTATUSHIGH; end WAITSTATUSLOW: begin cs_bar_int = 0; if (!status_d2) nextstate = EADDELAY0; else nextstate = WAITSTATUSLOW; end 3/5 4/5 22
Example A/D Verilog Interface(cont.) EADDELAY0: begin cs_bar_int = 0; nextstate = EADDELAY; end EADDELAY: begin cs_bar_int = 0; nextstate = EADCYCLE; end EADCYCLE: begin cs_bar_int = 0; dataavail = ; nextstate = IDLE; end default: nextstate = IDLE; endcase // case(state) end // always @ (state or status or sample) endmodule // adcinterface 5/5 23
Simulation On reset, present state goes to 0 r_w_b must stay low for at least 3 cycles (@ 00ns period) Don t need 3 cycles if you use the.8432mhz clock Enable read flipflop Status is synchronized two register delays Sample pulse initiates data conversion Wait for ~0µs for status to go low Notice a one cycle delay since A/D control signal delayed through a register 24
Flash A/D Converter Vref vin Bruteforce A/D conversion C C C Comparators Thermometer to binary b 0 b Simultaneously compare the analog value with every possible reference value Fastest method of A/D conversion Size scales exponentially with precision (requires 2 N comparators) Another example of OpAmp in open loop 25
AD 775 Flash Data Converter 26
High Performance Converters: Use Pipelining and Parallelism! Pipelining (used in video rate, F basestations, etc.) Sample/ Hold A/D Converter bit D/A Converter Amplifier 2 Sample/ Hold A/D Converter bit D/A Converter Amplifier 2 Parallelism (use many slower A/D s in parallel to build very high speed A/D converters) [ISSCC 2003], Poulton et. al. 20Gsample/sec, 8bit ADC from Agilent Labs 27
Summary of Analog Blocks Analog blocks are integral components of any system. Need data converters (analog to digital and digital to analog), analog processing (OpAmps circuits, switched capacitors filters, etc.), power converters (e.g., DCDC conversion), etc. We looked at example interfaces for A/D and D/A converters Make sure you register critical signals (enables, /W, etc.) Analog design incorporate digital principles Glitch free operation using coding Parallelism and Pipelining! More advanced concepts such as calibration 28