EE 308 - LAB 12

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 the on-board A/D converter to read a voltage from a potentiometer, and reproduce that voltage with the D/A converter. You will also send the voltage (as a digital number) over the SPI to a neighbor's HC12. Your neighbor will display the voltage on his/her LEDs and on the terminal.

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 $\overline{\rm {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 a potentiometer to one of your A/D inputs, as you did in Lab 10. Write a program to read the voltage from the A/D, 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 RTI interrupt.

Connect to a neighbor's HC12 using the SPI interface. Use pin PP4 of the master HC12 as the slave select for the slave's SPI -- i.e., connect PP4 of the master to SS of the slave. Send the value of the potentiometer voltage to your neighbor over the SPI.

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.

Bill Rison, < >
Wed Apr 7 1999

© 1999, New Mexico Tech