Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
EECS 373
On Operational Amplifiers and Other Means of Manipulating Voltage and Current
Once you’ve done your topic talk…
• Send me your slides
– Pdf is fine, but I’d prefer power point (and both is better yet).
Other Administrivia?
• And yes, Merriam-Webster accepts that as an English word.
Analog—the bane of the computer engineer
• In embedded systems, you often need to deal with voltages and currents.– Often the outputs you have don’t match the inputs
you need.• Generally the current or voltage is too small• Sometimes the voltage is too big.• Sometimes the values are in the wrong range.
• Today we’ll touch on some ways of manipulating these values.– This is intended to give you some idea what options
are out there• Often the details are tricky and/or annoying.• We expect you may need to ask for help…
Examples of where you might have problems.
• You have 5V for power, but some devices need 3.3V for power.
• You are using a device that generates too little current for your ADC, you may want to amplify the current but hold the voltage constant.
• You may be using a UART or other serial bus where one device wants 3.3V or 1.7V and the other wants 5V.
• You may be driving a motor that needs 12V@1A but you can only drive 5V@5mA, what do you do?
What are DC converters?
• DC converters convert one DC voltage level to another.
– Very commonly on PCBs• Often have USB or battery power
• But might need 1.8V, 3.3V, 5V, 12V and -12V all on the same board.
– On-PCB converters allow us to do that
Images from http://itpedia.nyu.edu/wiki/File:V_reg_7805.jpg, http://www.electronics-lab.com/blog/wp-content/uploads/2007/10/p1000255.JPG
DC converters
• Probably the most common problem is dropping power from 5V to 3.3V.– Often because we’ve got a device that wants 3.3V
as Vcc and everything else wants 5V.
• The generic term for a device used to change voltages is “DC converter”– But when dropping it is sometimes called a
“voltage regulator”.
– Specific types are called “linear regulator”, “Low Dropout (LDO)”, and “Switching regulator”
Different types of DC converters
Linear converters Switching converters• Simpler to design
• Low-noise output for noise-sensitive applications
• Can only drop voltage– And in fact must drop it by
some minimum amount
– The larger the voltage drop the less power efficient the converter is• (All voltage dropped is
converted to heat).
• Can be significantly more complex to design– **Don’t use for project**
• Can drop voltage or increase voltage– “buck” and “boost”
respectively
• Generally very power efficient– 75% to 98% is normal
Linear regulator
1. Input2. Ground3. Output
Linear regulators and capacitors• Specification for regulators almost always include
required capacitors– If you don’t have them, your output may get noisy and
cause all kinds of problems including reseting your chips.• Too big is better than too small.
– May have required capacitor types (ceramic, etc.)• Be sure to check (most linear regulators don’t…)
Op-amps
• We’ll briefly talk about using op-amps to do a few basic things.
– Current buffering
– Threshold detection
– Etc.
• I’m not going to talk much about single supply vs. dual supply.– https://www.researchgate.net/post/what_is_the_difference_between_sin
gle_supply_opamp_and_dual_supply_opamp is helpful though.
Very idealized basics
http://www.electronics-tutorials.ws/opamp/opamp1.gif?81223b
Voltage comparator
• Can change the ground input to any voltage.
– Often just goes down to ground rather than –Vcc.
Voltage follower
• How does this work?
And a bunch of others
Current to voltage and back.
Where would we have used acurrent-to-voltage device?
Additional reading
• http://research.cs.tamu.edu/prism/lectures/iss/iss_l5.pdf– Used for the last 4 slides.
N64 controller
Slides taken from a presentation by Aaron Ridenour, Ryan Wooster and
Alex Jaeckel
Controller
Inputs: A, B, L, R, Z, start, C-up C-down, C-left, C-right, D-Pad(up, down, left, right), JoystickOptions: Rumble Pak, Memory Pak
http://conker.wikia.com/wiki/Nintendo_64_Controller
http://electronics.howstuffworks.com/n643.htm
Joystick
• Two wheels positioned at right angles to each other, one for the x-axis, one for the y-axis.
http://electronics.howstuffworks.com/n643.htmhttp://electronics.howstuffworks.com/n643.htm
OPEN Collector
• Pull-up resistor keeps the line high while idle.
• To send 0, the output line is pulled low and connected to ground.
• To send 1, nothing should be sent.• Do not drive the line high.
http://www-inst.eecs.berkeley.edu/~cs150/fa04/Lab/Checkpoint1.PDF
OPEN Collector
Sending a logical 0:
http://www-inst.eecs.berkeley.edu/~cs150/fa04/Lab/Checkpoint1.PDF
00
1
1
OPEN Collector
Sending a logical 1:
http://www-inst.eecs.berkeley.edu/~cs150/fa04/Lab/Checkpoint1.PDF
1 1
0
1
Controller Encoding
Each bit is sent in 4 𝜇𝑠Logical 0:
Logical 1:
Low for 3 𝜇𝑠, followed by high for 1 𝜇𝑠
Low for 1 𝜇𝑠, followed by high for 3 𝜇𝑠
http://www.pieter-jan.com/node/10
http://www.pieter-jan.com/node/10
On a scope.
Pieter-Jan.com
Controller Encoding
http://inst.eecs.berkeley.edu/~cs150/sp01/Labs/lablecckpt1.ppt
Communication protocolWhen a Command byte is sent to the controller, it sends a response depending on which command was sent.
Check Controller Command: 0x00• The controller responds with 3 bytes. The first two bytes are
always 0x0500• Last byte is determined by:
• 0x01: If a controller pack is connected.• 0x02: If no controller pack is connected.• 0x04: If a previous command resulted in an error.
Reset Controller Command: 0xFF• First resets the controller, including resetting the
joystick calibration• Controller then responds as in the Check
Controller Command
Communication protocol
Communication protocolInput Polling Command: 0x01
– The controller responds with 4 bytes, encoding the button and joystick values
Byte Data[7] Data[6] Data[5] Data[4] Data[3] Data[2] Data[1] Data[0]
1 A B Z Start D-Up D-Down D-Left D-Right
2 JoystickReset
0 L R C-Up C-Down C-Left C-Right
3 Signed joystick x-axis coordinate
4 Signed joystick y-axis coordinate
The joystick values range between -128 and 127, but the controller physically can only use from -81 to 81.
Example data waveform
|----Command (console) 0x01-----| |----Data1 (controller) 0x00----||-----Data2 (controller) 0x00----|
|--------Data3 (controller) 0x00----------| |---------Data4 (controller) 0x01---------|
A B Z St
reset 0 L R
Joystick x-coordinate
Joystick y-coordinate
start b
it
stop
b
it
stop
bit
Images taken from: http://afermiano.com/index.php/n64-controller-protocol
Communication protocol
Controller Pack Read: 0x02
– Used to read from the controller pack.
– The command is followed by 2 bytes which indicate the address being read from and a CRC to verify the address.
– The controller responds with 32 bytes of data from that address, followed by the data CRC.
References
• http://www.pieter-jan.com/node/10• http://afermiano.com/index.php/n64-controller-protocol• https://code.google.com/p/micro-64-controller/wiki/Protocol• http://www-inst.eecs.berkeley.edu/~cs150/fa04/Lab/Checkpoint1.PDF• http://www.mixdown.ca/n64dev/• http://svn.navi.cx/misc/trunk/wasabi/devices/cube64/firmware/n64gc_c
omm.inc