This page is optimized for mobile devices, if you would prefer the desktop version just click here

Lab 0: hardware introduction

  • out=conv(fliplr(h),t); % Filter t with FIR filter h
  • out=out(1:500); % Keep first 500 elements of out

The main.c file needs to be told to take input from memory on the DSP. Fortunately, the changes have already been made in the files. The test vector is stored in a block of memory on the DSP just like other variables.The memory block that holds the test vector is large enough to hold a vector up to 4,000 elementslong. The test vector stores data for all four channels of input and from four channels of output.

To run your program with test vectors, you will need to modify main.c as well as filtercode.asm . Both are simply text files and can be edited using the editor of your preference, including WordPad, Emacs, and VI. (The changes have already been made, but please visually verify the changes are there.) Within main.c , uncomment the #define FILE_INPUT line so that your program will rewrite input from the A/D with the test vector you specified and then save the output into a block of memory.

In filtercode.asm , uncomment the .copy "testvect.asm" line. Make sure this Matlab generated file is in the same directory as filtercode.asm .

In TI assembly, the semi-colon ; signifies a comment.

These changes will copy in the test vector. After modifying your code, assemble it, then load and run the file using Code Composeras before. After a few seconds, halt the DSP (using the Halt command under the Target menu). How many seconds do you think it should take?

Saving dsp memory to file

Next, we will save the test output file and load it back into MATLAB. We are interested in the first 500 output samples, starting at address tv_outbuf in Data memory. There are four output channels and the memory is interleaved in time. Therefore, we will have to collect 2000 (4 channels time 500 samples) memory elements.

  • Select View>Memory
  • Click on the "Save" icon, a green square with an angled arrow (top left in the Memory panel)
  • Name the file output.dat and save filetype as TI data format
  • On the next screen, use the following options:
    • format: hex
    • start address: tv_outbuf
    • memory page: data
    • length: 2000

Last, use the read_vector (available as read_vector.m ) function to read the saved result into MATLAB. Do this using the followingMATLAB command:

  • [ch1,ch2,ch3,ch4] = read_vector('output.dat');

Now, the MATLAB vector ch1 corresponds to the filtered version of the test signal you generated. TheMATLAB vector ch2 should be nearly identical to the test vector you generated, as it was passed from the DSPsystem's input to its output unchanged.

Because of quantization error introduced in saving the test vector for the 16-bit memory of the DSP, thevector ch2 will not be identical to the MATLAB generated test vector.

After loading the output of the filter into MATLAB, compare the expected output (calculated as out above) and the output of the filter (in ch1 from above). This can be done graphically by simply plotting thetwo curves on the same axes; for example:

  • plot(out,'r'); % Plot the expected curve in red
  • hold on % Plot the next plot on top of this one
  • plot(ch1,'g'); % Plot the expected curve in green
  • hold off

You should also ensure that the difference between the two outputs is near zero. This can be done by plotting thedifference between the two vectors:

  • plot(out(1:length(ch1))-ch1); % Plot error signal

You will observe that the two sequences are not exactly the same; this is due to the fact that the DSP computes itsresponse to 16 bits precision, while MATLAB uses 64-bit floating point numbers for its arithmetic. Blocks of output samples may also be missing from the test vector output due to a bug in the test vector core. Nonetheless, the test vector environment allows one to run repeatable experiments using the same known test input for debugging.

Step 10: closing down

Before exiting Code Composer, make sure to disconnect properly from the DSP:

  • Halt any program running on the DSP ( Target>Halt )
  • Disconnect from the DSP ( Target>Connect will toggle between connecting and disconnecting)
Finally, make sure to return all of the cables to the wall rack.

<< Chapter < Page Page > Chapter >>

Read also:

OpenStax, Digital signal processing laboratory (ece 420 55x). OpenStax CNX. Jan 18, 2010 Download for free at http://cnx.org/content/col10397/1.10
Google Play and the Google Play logo are trademarks of Google Inc.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.