UART Driver

UART Project Description
This project's goal was to write a RS-232C Driver for an RC8660 Speech Synthesizer Board using assembly language. I was to write this driver in order to connect a BeagleBoneBlack to a talker board, and use the talker board to sound out what I program.

Specifications and Methodology
The serial port is the RC8660 was asynchronous and operates with 8 data bits, 1 or more stop bits, and any standard baud rate between 300 and 115200 bps.

Based on the settings chsen in LCR, the UART transmitter sends the following to the recieving device:
  • 1 START bit
  • 4,6,7 or 8 data bits
  • 1 PARITY bit(optional)
  • 1,1.5, or 2 stop bits
The algorithm for initialization:
- Initialize Stack
- Initialize GPIO pins
- Initialize peripheral device controllers
- Detect falling edge on GPIO_2 and enable to asser POINTRPEND1
- Initialize INTC
- Turn on UART 5 Clock
- Change pins 37, 38, 31, 32 to mode 4
- Set baud rate and set to mode A
- Write to DLL and DLH registers
- Switch to operational mode
- Initialize Tx and Rx
- Disable FIFO

Then with an interrupt handshaking method, I was able to get the values to the talker board in x increments.