limited wires. we have only one data line. use for for bi- directional communication. need to send:...

8
Limited wires. • We have only one data line. Use for for bi- directional communication. •Need to send: – requests for data – rumble pack on/off •Need to receive – controller status rom Aaron Ridenour, Ryan Wooster and Alex Jaeckel. http://www.eecs.umich.edu/courses/eecs373/Lec/F13S w.eecs.umich.edu/courses/eecs373/Lec/StudentW14/N64%20Controller.pdf for other details.

Upload: brook-osborne

Post on 18-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Limited wires. We have only one data line. Use for for bi- directional communication. Need to send: – requests for data – rumble pack on/off Need to receive

Limited wires.

• We have only one data line. Use for for bi-directional communication.

• Need to send:– requests for data– rumble pack on/off

• Need to receive– controller status

Some slides from Aaron Ridenour, Ryan Wooster and Alex Jaeckel. http://www.eecs.umich.edu/courses/eecs373/Lec/F13Student/N64.pptx See http://www.eecs.umich.edu/courses/eecs373/Lec/StudentW14/N64%20Controller.pdf for other details.

Page 2: Limited wires. We have only one data line. Use for for bi- directional communication. Need to send: – requests for data – rumble pack on/off Need to receive

Bi-directional 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.

• Never drive the line high.

• Both sides do this, so bidirectional.– If no data to send, wire stays (floats) high.

Page 3: Limited wires. We have only one data line. Use for for bi- directional communication. Need to send: – requests for data – rumble pack on/off Need to receive

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

Page 4: Limited wires. We have only one data line. Use for for bi- directional communication. Need to send: – requests for data – rumble pack on/off Need to receive

Controller Encoding

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

Page 5: Limited wires. We have only one data line. Use for for bi- directional communication. Need to send: – requests for data – rumble pack on/off Need to receive
Page 6: Limited wires. We have only one data line. Use for for bi- directional communication. Need to send: – requests for data – rumble pack on/off Need to receive

|----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 bit

stop bit

Images taken from: http://afermiano.com/index.php/n64-controller-protocol

Page 7: Limited wires. We have only one data line. Use for for bi- directional communication. Need to send: – requests for data – rumble pack on/off Need to receive

Clock Synchronization

• Once a FF goes metastable (due to a setup time violation, say) we can’t say when it will assume a valid logic level or what level it might eventually assume.

• The only thing we know is that the probability of a FF coming out of a metastable state increases exponentially with time.

This and next slide from http://web.stanford.edu/class/ee183/handouts/synchronization_pres.pdf. If you have an interest in this topic, that’s a nice slide set. https://web.archive.org/web/20070203054100/http://www.caip.rutgers.edu/~bushnell/dsdwebsite/dsdlecture18.ppt has yet more details.

Page 8: Limited wires. We have only one data line. Use for for bi- directional communication. Need to send: – requests for data – rumble pack on/off Need to receive

Traditional synchronizer• SIG is asynchronous, and META might go metastable

from time to time• However, as long as META resolves before the next

clock period SIG1 should have valid logic levels• Place FFs close together to allow maximum time for

META to resolve.– Under reasonable assumptions, MTBF=9x1010 years.– More than the age of the Earth. Could add a third.