Академический Документы
Профессиональный Документы
Культура Документы
Display the transmitted waveforms on the logic analyzer showing both the
modulated carrier and the command bits. You may do this with two waveforms.
1
Microsystems Engineering
MIC502 - Digital Systems Laboratory
Introduction
In this lab, you will design finite state machine(s) to “learn” four Sony Infrared Commands
(SIRC) and use them to control a Sony television.
Serial communication, where data is transmitted over a single channel one bit at a time, is used
everywhere. Examples are PS/2 mouse and keyboard, USB port and PCI-Express in newer PC’s.
Another example is the wireless infrared remote control used for TV’s and stereo. Serial
communication is in contrast to sending many bits in parallel, for example the parallel port on
older PCs. Serial communication saves on cable pins, wires and cost. However, to implement
serial communication, you need a “serializer” at the transmitter end and a “deserializer” at the
receiver.
For the wireless remote, the communication channel/medium is infrared light at 950 nm
wavelength. Sony uses a 12-bit, 15-bit, and 20-bit protocol. We will be using the 12-bit pulse-
width modulated serial protocol. With this protocol, a data “1” is 1200 us and a data “0” is 600
us. Bits are separated by 600us1. Commands are sent every 45 milliseconds.
During the “on” time, the signal is a 40 kHz square wave. For simplicity, we will not show the
40 kHz carrier in future timing waveforms.
1
Picture from http://www.sbprojects.com/knowledge/ir/ir.htm
2
Microsystems Engineering
MIC502 - Digital Systems Laboratory
The format of the data stream is shown below. In this example a command 19 (volume lower,
binary equivalent is 7’b0010011) is issued for the TV. (1A partial listing of the commands is
attached at the end of this document.)
With this protocol, the length (duration) of each command is a function of the data.
RS-232 and the PS/2 serial protocols use a fixed data time for each bit. The data rate is
independent of the data and is purely a function of the bit (baud) rate. See figure below (from
http://www.arcelect.com/rs232.htm)
Procedure
The Lab exercise consists of two parts. You will wire up a simple circuit with an infrared LED
transmitter, compile a Verilog source file that we provide and verify that the circuit controls the
TV. The source file contains the FSM that creates the 40 kHz carrier and serializes the data
stream to the infrared LED. In the second part you will wire an infrared receiver and design an
FSM that learns new Sony commands and stores the command for use. While the data rate for
IR controls is such that a FGPA is not really needed and can be implemented with software, the
design principles are applicable at much higher data when hardware must be used.
1
Picture from http://www.sbprojects.com/knowledge/ir/ir.htm
3
Microsystems Engineering
MIC502 - Digital Systems Laboratory
The following diagram illustrates a possible organization of your design. This diagram is a high
level view and does not show every necessary signal.
pin 2 47k
hex display
button 1
button 2
Receiver FSM
debounce
button 3
sw[7] (learn)
global
sw[0] (reset)
reset
+5V
3.3 uf +
command addr
transmit
7 5 56 ohm
TKS5400s
470 ohm
ja[1] 2N2222
Transmitter FSM
hex display
command & address
4
Microsystems Engineering
MIC502 - Digital Systems Laboratory
Part 1
Wire up the infrared transmitter (Vishay TSKS5400S Infrared Emitting Diode, 950 nm, GaAs)
on your proto-board. The LED is the blue component.
+5V
+
3.3uf
56 ohm
TKS54000S
470 ohm
2N2222
ja[1]
The pin out for the 2N2222 BJT is shown below. FPGA outputs typically can drive a few
milliamperes. The FPGA output is used to drive the BJT, which can handle the 50-70 mA
required to drive the IR LED. Note that the collector (pin 3) is connected electrically to the case.
Compile and load the bit file. Verify that this changes the channel on the TV using the btn[3].
The command and the address are displayed on the LED display when btn[3] is pressed .
Observe the signal from ja[1] output on an oscilloscope.
5
Microsystems Engineering
MIC502 - Digital Systems Laboratory
Part 2
Wire up the infrared receiver (RPM7140-R) on your PMOD board. The receiver is an integrated
infrared digital chip that demodulates the 40 kHz signal and provides an inverted output signal to
the labkit. The output of the receiver (pin 1) is the input signal to the labkit. Be sure to wire 47k
resistor from Rout to ground. This is to limit a logic high to the FPGA to approximately 3.3V.
Now supply Vcc = 5V and ground.
pin 3 Vcc= 5 v
IR Receiver Chip
+ 3.3uf
pin 1
47K
pin 2
Design and implement a digital system that will read the data from the receiver, learn the
command and then transmit the commands using button 0, 1, 2 and 3 with your transmitter. Use
sw[0] an sw[7] as a pseudo pushbutton switch by manually switching it on/off.
6
Microsystems Engineering
MIC502 - Digital Systems Laboratory
What to Turn In:
You are not required to write a detailed report for this lab. However, you must turn in the
following:
1) Check off Sheet signed by a member of the MIC502 teaching staff
2) Detailed block diagram
3) State Transition Diagram(s) of Finite State Machine(s)
4) Verilog Code
5) Simulation waveform printout of your deserializer (Use ctrl-shift-Print Screen to grab a
waveform onto the clipboard, then paste it into a Word document for printout)
Appendix
Address Device
1 TV
2 VCR
3 VCR
17 CD Player
Command Function
0 Digit 1
1 Digit 2
2 Digit 3
3 Digit 4
4 Digit 5
5 Digit 6
6 Digit 7
7 Digit 8
8 Digit 9
9 Digit 0
16 Channel +
17 Channel -
18 Volume +
19 Volume -
20 Mute
21 Power