The six-channel board attaches to the top of the DSP evaluation module and replaces its onboard, one-channel A/D and D/A with six channels of D/A and two channels of A/D running at a sample rate of 44.1 kHz. Alternatively, the A/D can be disabled and a SP/DIF digital input enabled, allowing PCM digital data from a CD or DVD to be sent directly into the DSP for processing. The two input channels and six output channels all sample at the same time; clock skew between channels is not an issue. By default, the core code reads and writes blocks of 64 samples for each channel of input and output; however, this aggregation can be changed to any value between 1 and 80 samples1. If your code needs a larger aggregation of samples - for instance, for a 256 point FFT - you will need to do this aggregation yourself.
Other features include buffered serial communication code, which allows you to send and receive data from the serial port. This can be used to control your DSP program with a graphical user-interface on the PC; it can also be used to report status back to the PC for applications such as speech recognition.
The core code, core.asm (which requires globals.inc, ioregs.inc, and misc.inc) also initializes the DSP itself. It enables the fractional arithmetic mode for the ALU, programs the wait states for the external memory, and sets the DSP clock to 80 MHz2.
Testing the six-channel sample code
We will start with a sample application, which simply sends the inputs into the outputs--relaying both the audio inputs from the A/D converters to the D/A converters, and any data that comes in on the serial port back to the PC. To familiarize yourself with this sample application, locate a copy of thru6.asm and assemble it.
Once you have done that, start Code Composer. Since we are
using the on-chip RAM on the TMS320C549 to hold program
code, we need to map that RAM into program space before we
can load our code. This can be done by opening the CPU
Registers window (the same one you use to look at the
ARx registers and the accumulators) and
changing the PMST register to
0xFFE0. This sets the OVLY bit to
1, switching the internal RAM into the DSP's program memory
space.
Finally, load the thru6.out file, use Code
Composer's Reset DSP menu option to reset the
DSP, and run the code. Probe at the connections with the
function generator and the oscilloscope; inputs and outputs
are shown in Figure 1. Note that output
channels 1-3 come from input channel 1, and output channels
4-6 come from input channel 2. Figure 1 shows
the six-channel board's connector configuration.
![]() |
Also test the serial communications portion of the thru6.asm application. This can be done by starting a provided terminal emulator package (such as Teraterm Pro or HyperTerminal), configuring it to communicate at 38400 bps, with no parity, eight data bits, and one stop bit, and attaching the correct serial port on the computer to the TI TMS320C54x EVM. A serial port is a 9-pin D-shell connector; it is located on the DSP EVM next to the power connector. Typically, there will be two matching D-shell connectors on your computer, often labeled COM1 and COM2; make sure you connect your serial cable to the right one!
Once you have started the terminal emulator, and the emulator has been correctly set to communicate with the DSP board, reload and rerun the thru6.asm application. Once it is running, you should be able to communicate with the DSP by typing text into the terminal emulator's window. Characters that you type should be echoed back; this indicates that the DSP has received and retransmitted the characters. If the DSP is not connected properly or not running, nothing will be displayed as you type. If this happens, check the connections and the terminal emulator configuration, and try again. Due to a terminal emulation quirk, the "Enter" key does not work properly.
After you have verified that the EVM is communicating with the PC, close the terminal window.












"Doug course at UIUC using the TI C54x DSP has been adopted by many EE, CE and CS depts Worldwide "