32
EECS 373 On Operational Amplifiers and Other Means of Manipulating Voltage and Current

EECS 373 · 2018-11-06 · 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

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EECS 373 · 2018-11-06 · 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

EECS 373

On Operational Amplifiers and Other Means of Manipulating Voltage and Current

Page 2: EECS 373 · 2018-11-06 · 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

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).

Page 3: EECS 373 · 2018-11-06 · 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

Other Administrivia?

• And yes, Merriam-Webster accepts that as an English word.

Page 4: EECS 373 · 2018-11-06 · 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

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…

Page 5: EECS 373 · 2018-11-06 · 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

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?

Page 6: EECS 373 · 2018-11-06 · 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

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

Page 7: EECS 373 · 2018-11-06 · 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

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”

Page 8: EECS 373 · 2018-11-06 · 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

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

Page 9: EECS 373 · 2018-11-06 · 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

Linear regulator

1. Input2. Ground3. Output

Page 10: EECS 373 · 2018-11-06 · 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

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…)

Page 11: EECS 373 · 2018-11-06 · 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

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.

Page 12: EECS 373 · 2018-11-06 · 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

Very idealized basics

http://www.electronics-tutorials.ws/opamp/opamp1.gif?81223b

Page 13: EECS 373 · 2018-11-06 · 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

Voltage comparator

• Can change the ground input to any voltage.

– Often just goes down to ground rather than –Vcc.

Page 14: EECS 373 · 2018-11-06 · 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

Voltage follower

• How does this work?

Page 15: EECS 373 · 2018-11-06 · 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

And a bunch of others

Page 16: EECS 373 · 2018-11-06 · 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

Current to voltage and back.

Where would we have used acurrent-to-voltage device?

Page 17: EECS 373 · 2018-11-06 · 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

Additional reading

• http://research.cs.tamu.edu/prism/lectures/iss/iss_l5.pdf– Used for the last 4 slides.

Page 18: EECS 373 · 2018-11-06 · 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

N64 controller

Slides taken from a presentation by Aaron Ridenour, Ryan Wooster and

Alex Jaeckel

Page 19: EECS 373 · 2018-11-06 · 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

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

Page 20: EECS 373 · 2018-11-06 · 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

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

Page 21: EECS 373 · 2018-11-06 · 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

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

Page 22: EECS 373 · 2018-11-06 · 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

OPEN Collector

Sending a logical 0:

http://www-inst.eecs.berkeley.edu/~cs150/fa04/Lab/Checkpoint1.PDF

00

1

1

Page 23: EECS 373 · 2018-11-06 · 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

OPEN Collector

Sending a logical 1:

http://www-inst.eecs.berkeley.edu/~cs150/fa04/Lab/Checkpoint1.PDF

1 1

0

1

Page 24: EECS 373 · 2018-11-06 · 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

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

Page 25: EECS 373 · 2018-11-06 · 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

On a scope.

Pieter-Jan.com

Page 26: EECS 373 · 2018-11-06 · 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

Controller Encoding

http://inst.eecs.berkeley.edu/~cs150/sp01/Labs/lablecckpt1.ppt

Page 27: EECS 373 · 2018-11-06 · 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

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.

Page 28: EECS 373 · 2018-11-06 · 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

Reset Controller Command: 0xFF• First resets the controller, including resetting the

joystick calibration• Controller then responds as in the Check

Controller Command

Communication protocol

Page 29: EECS 373 · 2018-11-06 · 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

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.

Page 30: EECS 373 · 2018-11-06 · 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

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

Page 31: EECS 373 · 2018-11-06 · 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

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.

Page 32: EECS 373 · 2018-11-06 · 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

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