DSK 6713
DSK 6713
DSK 6713
OUTLINE
Why DSP? Need for the setup Features of the board used Number Representation Fixed point v/s Floating point Code Structure Sample HPF code
WHY DSP?
Microprocessors Objectives per instruction 1 operation Background Purpose of the proposal Multiple cycles for multiply List of the experiments: Microcontrollers 1 operation per instruction Multiple cycles for multiply DSP Multiple operations per instruction single cycle for multiply Multiple instructions per cycle Relatively less number of peripherals compared to Microcontrollers Medium to low cost On-chip bootloader; instruction cache Fast clocks TMS320VC33
3
DSK6713 Multiple instructions per cycle Single instruction per cycle TMS320VC33 peripheral interface Least Virtual DSP lab related activities Rich in peripherals Experimental set-up GUI Expensive Low cost TMS320VC33 board Very good high-level software Rich in on-chip peripherals, Budget support good interrupt structure Scalability
Fastest clocks Intel Pentium
VIRTUAL LABS, IIT BOMBAY
This setup makes the costly tools available to the users/students and facilitates them to learn and test the basics of programming the DSP without a need for purchasing the same. The setup allows the user to study the timing and speed constraints of the DSP core.
NUMBER REPRESENTATION
32 bit Floating Point Number:
Exponent (e) [x31-x24] Sign(s) [x23] Fraction (f) [x22-x0]
e : 8-bit exponent signed 2s complement integer s : sign bit f : fractional part of mantissa 32 bit Fixed Point Number:
Sign (s) [x31] Mantissa (m) [x30-x0]
s : sign bit m : mantissa A scaling factor is used along with the number. The value of the scaling factor decides the precision & range.
CODE STRUCTURE
#include board support library header files #include Standard header files specific to operations #define Macros Define Global variables Codec configuration settings void main() { DSK5510_AIC23_CodecHandle hCodec; Variables local to main DSK5510_init(); /* Initialize the board support library*/ hCodec = DSK5510_AIC23_openCodec(0, &config); /*Start codec*/ DSK5510_AIC23_setFreq(hCodec, DSK5510_AIC23_FREQ_8KHZ); Initialization of the variables
CODE STRUCTURE
while(1) { /* read samples from the left and right channel */ while (!DSK5510_AIC23_read16(hCodec, &leftsample)); while (!DSK5510_AIC23_read16(hCodec, &rightsample)); USER CODE /* Send a sample to the left and right channel */ while (!DSK5510_AIC23_write16(hCodec,leftsample )); while (!DSK5510_AIC23_write16(hCodec,rightsample )); } /* Close the codec */ DSK5510_AIC23_closeCodec(hCodec); }
10
11
12
13
VIRTUAL LABS
Thank You
14
15