EE 308 - LAB 9
Serial Communications using the HC12 SPI and the MAX522 D/A Converter
In this lab you will will use the HC12 SPI serial interface to communicate
with a serial D/A converter and with another HC12. You will use switches
connected to Expanded Port B to tell what voltage to put out, and generate
that voltage with the D/A converter. You will also send the value on the
switches over the SPI to a neighbor's HC12. Your neighbor will display
the value on his/her LEDs and on the terminal. Information about programming
the MAX 522 can be obtained from the lecture notes, or from this datasheet.
- Make sure the wiring for the D/A part of your expansion is finished.
Verify that there are 5 volts at pins 3 and 7 of the eight-pin socket,
and that pin 4 is connected to ground. Get a MAX522 D/A chip, make sure
power is turned off on your HC12 board, and plug the D/A converter into
the eight-pin socket.
- Use DBug12 to verify that you can generate analog voltages from the D/A
converter. You can set up the SPI by writing the appropriate values to the SPI
control registers. Then select the D/A converter (by bringing the
SS line low), write the value to the D/A converter to tell it
to generate an output voltage (e.g., 1.0 V on OUTA), and deselect the D/A.
Make sure both channels of the D/A work.
- Connect DIP switches to Expanded Port A.
Write a program to read the switches, write the value to the D/A,
and display it on the terminal. Do this at a rate of about 4 times a second,
using an TOF interrupt.
- Connect to a neighbor's HC12 using the SPI interface. Send the value of
the switches to your neighbor over the SPI. For this lab, remove the MAX
522 from the slave HC12 -- the HC12 can only control the MAX 522 when it
is a master.
- Write a receiving program for the SPI. Set up the HC12 in slave mode,
and enable the SPI interrupt. Whenever the master HC12 sends a value over the
SPI, you should get an interrupt. Display the value on the LED's on your
breadboard, and on your terminal.
- Connect the appropriate SPI and slave select pins to your logic
analyzer, and capture a transfer over the SPI. Verify that the clock
frequency, phase and polarity match the values you programmed them for.
Decode the serial data stream for the transfer to the D/A converter and to the
slave HC12, and make sure these are the values you expected.