Professional Documents
Culture Documents
3. Software:
In this lab, CCS is used to write, compile and download code on to the C6713 DSK. CCS includes a C compiler, an assembler and a linker. The compiler compiles a C source program with extension .c to produce an assembly source file with extension .asm. The assembler assembles an.asm source file to produce a machine language object file with extension .obj. The linker combines object files and object libraries to produce an executable file with extension .out. This executable file can be loaded and run directly on the C6713 DSP.
/* * DSP/BIOS is configured using the DSP/BIOS configuration tool. Settings * for this example are stored in a configuration file called tone.cdb. At * compile time, Code Composer will auto-generate DSP/BIOS related files * based on these settings. A header file called tonecfg.h contains the * results of the autogeneration and must be included for proper operation. * The name of the file is taken from tone.cdb and adding cfg.h. */ #include "tonecfg.h" /* * The 6713 DSK Board Support Library is divided into several modules, each * of which has its own include file. The file dsk6713.h must be included * in every program that uses the BSL. This example also includes * dsk6713_aic23.h because it uses the AIC23 codec module. */ #include "dsk6713_dip.h" #include "dsk6713.h" #include "dsk6713_aic23.h" /* Length of sine wave table */ #define SINE_TABLE_SIZE 48 /* Codec configuration settings */ DSK6713_AIC23_Config config = { 0x0017, // 0 DSK6713_AIC23_LEFTINVOL Left line input channel volume 0x0017, // 1 DSK6713_AIC23_RIGHTINVOL Right line input channel volume 0x00d8, // 2 DSK6713_AIC23_LEFTHPVOL Left channel headphone volume 0x00d8, // 3 DSK6713_AIC23_RIGHTHPVOL Right channel headphone volume 0x0011, // 4 DSK6713_AIC23_ANAPATH Analog audio path control 0x0000, // 5 DSK6713_AIC23_DIGPATH Digital audio path control 0x0000, // 6 DSK6713_AIC23_POWERDOWN Power down control 0x0043, // 7 DSK6713_AIC23_DIGIF Digital audio interface format 0x0001, // 8 DSK6713_AIC23_SAMPLERATE Sample rate control 0x0001 // 9 DSK6713_AIC23_DIGACT Digital interface activation }; /* Pre-generated sine wave data, 16-bit signed samples */ Int16 sinetable[SINE_TABLE_SIZE] = { 0x0000, 0x10b4, 0x2120, 0x30fb, 0x3fff, 0x4dea, 0x5a81, 0x658b, 0x6ed8, 0x763f, 0x7ba1, 0x7ee5, 0x7ffd, 0x7ee5, 0x7ba1, 0x76ef, 0x6ed8, 0x658b, 0x5a81, 0x4dea, 0x3fff, 0x30fb, 0x2120, 0x10b4, 0x0000, 0xef4c, 0xdee0, 0xcf06, 0xc002, 0xb216, 0xa57f, 0x9a75, 0x9128, 0x89c1, 0x845f, 0x811b, 0x8002, 0x811b, 0x845f, 0x89c1, 0x9128, 0x9a76, 0xa57f, 0xb216, 0xc002, 0xcf06, 0xdee0, 0xef4c };
/* * main() - Main code routine, initializes BSL and generates tone */ void main() { DSK6713_AIC23_CodecHandle hCodec; Int16 msec, sample; /* Initialize the board support library, must be called first */ DSK6713_init(); DSK6713_DIP_init(); /* Start the codec */ hCodec = DSK6713_AIC23_openCodec(0, &config); while(1) { /* Generate a 1KHz sine wave for 5 seconds */ for (msec = 0; msec < 5000; msec++) { for (sample = 0; sample < SINE_TABLE_SIZE; sample++) { /* Send a sample to the left channel */ while (!DSK6713_AIC23_write(hCodec, sinetable[2*sample])); /* Send a sample to the right channel */ while (!DSK6713_AIC23_write(hCodec, sinetable[sample])); } } } /* Close the codec */ DSK6713_AIC23_closeCodec(hCodec); }
The following two commands are used to initialize and shut down the audio codec and are found at the beginning and end of all programs that use the BSL codec module.
DSK6713 openCodec( ) returns a handle that is passed to each of the codec functions. hCodec = DSK6713 AIC23 openCodec(0,&config); opens the codec. hCodec = DSK6713 AIC23 closeCodec(0,&config); closes the codec.
Task (1):
Open the Code Composer Studio and run the Project Tone.c. Plug in the headphones to the DSK6713 Board and listen to the tone upon running (5 seconds tone).
Task (2):
Using 2-DIP switches, alternate two pulse tones between the left and the right speakers (Make sure that the two tones are played at different pitches/frequency). To use the DIP-Switches:
Include DSK6713_DIP.h Library. Initialize the DIP-Switches using the command DSK6713_DIP_init();. Return the state if the DIP-Switch using the command DSK6713_DIP_get(0). When the DIP-Switch is down, State=(0) and when the DIP-Switch is up, State=(1).