.


:




:

































 

 

 

 


, / TMS320F2812




1

eZDSP F2812 Code Composer Studio

: , TMS320F2812.

 

, Code Composer Studio.

. 1.1 eZDSP320F2812 c . TMS320F2812 , (+3.3 +1.9 ), JTAG-, . Zwickau Adapterboard, (. 1.1). , , , , , FLASH-, , RS-232 CAN, . LPT-.

Code Composer Studio (CCS) Texas Instruments. , . () , () (. 1.2). (Project), , , , . , . ( , ) .

 

. 1.1. eZDSP Zwickau Adapterboard

 

 

. 1.2. Code Composer Studio


(*.obj) (*.out), , . , (, ++, ). . , . .

 

1. .

Project → New . Project Name Lab1. Location , E:\DspUser\Lab1. Project Type Executable (.out), Target TMS320C28XX. , Debug → Connect.

 

2. .

File → New → Sourse File . . () , . 1.3. , . 1, lab1.c File → Save as: lab1.c.

 

unsigned int k;

void main (void)

{

unsigned int i;

while(1)

{

for (i=0;i<100;i++)

k=i*i;

}

}

. 1.3.

 

3. .

. Project → Add files to Project, : lab1.c. Source . , Project → Add files to Project :

 

C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd\F2812_EzDSP_RAM_lnk.cmd

C:\CCStudio_v3.3\C2000\cgtools\lib\rts2800_ml.lib

 

Add files to Project.

 

4. .

, . Project → Compile File ( Ctrl+F7) . :

Compile Complete,

0 Errors, 0 Warnings, 0 Remarks.

 

5. .

-:

Project → Build Options → Linker → Libraries → Search Path: C:\CCStudio_v3.3\C2000\cgtools\lib

Project → Build Options → Linker → Libraries → Search Path Linker → Incl. Libraries: rts2800_ml.lib

 

0400:

Project → Build Options → Linker → Basic → Stack Size (-stack): 0x400 ( 0x hex-).

 

6. eZDSP.

Project → Build ( F7) . , , . hex-, . - : File→Load Program→Debug\lab1.out. , . out- , Load Program After Build Option→Customize→Program/Project/CIO.

:

1) , .

2) .

 

7. .

. Debug → Reset CPU ( Ctrl+R) Debug → Restart ( Ctrl+Shift+F5).

Debug → Go Main ( Ctrl+M) void main (void) . Go Main , . .

.

Debug → Run ( F5) . Running. Debug → Halt ( Shift+F5) .

Debug → Step Into F11. F11, .

 

8. .

View → Watch Window . Name , i k ( , , Add to Watch Window). Value , . Type (, ..), Radix (, , .). Watch Window . , , Add Globals to Watch, , .

 

9. (Breakpoint).

(Breakpoint) Code Composer Studio . Breakpoint , , , . (F5) , ( ). Breakpoint, . Breakpoint (Run) Watch ( ).

(. 1.3) , . 1.4.

 

unsigned int k;

void main (void)

{

unsigned int i;

while(1)

{

for (i=0;i<100;i++)

{

k=2;

k=i*i;

}

}

}

. 1.4.

 

 

10. Animate.

Animate . Debug → Animate ( Shift+F5) . Option → Customize → Debug Properties → Animate Speed. , 1 .

 

11. .

, View → Registers → CPU Register View → Registers → Status Register. , .

 

 

1. Breakpoint 7, 9 10 , . 1.4. (Run) .
i k Watch. .

2. Breakpoint, Animate. , Watch ( i k). .

3. CPU Register Status Register, Animate. .

4. , , (Window → Disassembly). . , (Window → Lab1.c). . Breakpoint.

 

 

:

 

, , , , .

 

:

1. eZDSP320F2812 Zwickau Adapterboard.

2. Code Composer Studio. , , .

3. Code Composer Studio. .

4. Code Composer Studio. .

5. Code Composer Studio. (Breakpoint).

6. Code Composer Studio. .

7. :

- ;

- ;

- .

 


2

, / TMS320F2812

: , - , , .

 

C28x . 2.1. .

 

. 2.1. C28x

 

C28x . 2.2. (Single Access RAM SARAM, ) 18 , 0, M1 (2x1), L0, L1 (2x4) 0 (8). , , .. , . F2812 - 128 (4 8 6 16).

C28x, (CPU) (, , .), . 28x ( CPU), / () , . , .. , (. . 2.2).

 
 

 

 


. 2.2. C28x

 

Peripheral Frame 0 (PF0, 2K, 0x00 0800
0x00 0FFF) XINTF, PIE, Flash-, , CSM;

Peripheral Frame 2 (PF2, 4K, 0x00 60000x00 6FFF) eCAN;

Peripheral Frame 1 (PF1, 4K, 0x00 7000
0x00 7FFF) , - GPIO, EVA/EVB, McBSP, SCI, SPI, .

GPIOA, GPIOB, GPIOD, GPIOE, GPIOF, GPIOG. GPIO (general purpose input/output) / .

, / . , : , . . 2.3 .

 

. 2.3. - F2812

6 (GPxMUX, , , x ). 0, ; 1 , .. (pin) (. . 2.4). :

- GPxDAT ( , );

- GPxSET ( );

- GPxCLEAR ( );

- GPxTOGGLE ( ).

 
 


 

. 2.4. GPIO

 

. GPxDIR:
0 , 1 . A, B, D E (Input Qualification feature) 7-0 GPxQUAL. , 2 (GPxQUAL=0x01) 510 (GPxQUAL=0xFF) SYSCLKOUT, .

. , 28 , . , . OSCCLK, ,
30 . 150 5 (OSCCLK*10/2, . . 2.5). PLLCR.

 

. 2.5. PLLCR

 

, : LOSPCP HISPCP (. 2.6), .

, . , , . LOSPCP HISPCP.

. 2.6. HISPCP LOSPCP

28 , / PCLKCR (. 2.7).

 

 

EVAENCLK HSPCLK EVA
EVBENCLK HSPCLK EV
ADCENCLK HSPCLK (ADC)
SPIAENCLK LSPCLK SPI
SCIAENCLK LSPCLK SCI-A
SCIBENCLK LSPCLK SCI-B
MCBSPENCLK LSPCLK McBSP
ECANENCLK eCAN

. 2.7. PCLKCR: 1 ; 0 .

(Watchdog timer WDT, . 2.8) WDCNTR, - WDINT WDRST ( ). WDT .

101, , WDCHK 20 WDCR (. 2.9) , ( , ). WDCNTR 0x55 + 0xAA WDKEY.

 

 

. 2.8.

 

 

. 2.9. WDCR

 

WDFLAG , : (WDFLAG=0) (WDFLAG=1). WDPS 20 . WDDIS () WDT.

(System Control and Status
Register SCSR, . 2.10) . WDINTS WDINT. WDENINT WDT ( ). WDENINT=0 WDRST, WDENINT=1 WDINT.

WDOVERRIDE 1, , .. WDDIS WDCR. , WDOVERRIDE, 1, .

 

 

. 2.10. SCSR

 

I

 

I , : (. . 2.11, ), , , (. . 2.11, ). GPIOB7 GPIOB0 (1 , 0 ), GPIOB15 GPIOB8 (1 , 0 ).

 

 
 

 


. 2.11. : ) ; ) .

 

1. .

Code Composer Studio Lab2.pjt. Project Name Lab2. Location , E:\DspUser\Lab2.

1.1. _lab2_.c E:\DspUser\Templates. ? , (. 2.12). E:\DspUser\Lab2 Lab2.c. :
Project → Add files to Project.

1.2. , , , ( , , Add files to Project):

 

C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd\F2812_EzDSP_RAM_lnk.cmd

C:\tidcs\c28\dsp281x\v100\DSP281x_headers\cmd\DSP281x_Headers_nonBIOS.cmd

C:\CCStudio_v3.3\C2000\cgtools\lib\rts2800_ml.lib

C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source\DSP281x_GlobalVariableDefs.c

 

2. .

2.1. , Project → Build Options, Compiler Preprocessor Include Search Path (-i) :

C:\tidcs\C28\dsp281x\v100\DSP281x_headers\include;..\include

2.2. .

-:

Project → Build Options → Linker → Libraries → Search Path: C:\CCStudio_v3.3\C2000\cgtools\lib

Project → Build Options → Linker → Libraries → Search Path Linker → Incl. Libraries: rts2800_ml.lib

0400:

Project → Build Options → Linker → Basic → Stack Size (-stack): 0x400


//##################################################################

// : _Lab2_.c

//

// : 8 ,

// GPIOB0 - GPIOB7, " ".

// -

//##################################################################

 

#include "DSP281x_Device.h" //

 

void delay_loop(long);

void Gpio_select(void);

void InitSystem(void);

 

void main(void)

{

unsigned int i;

unsigned int LED[8]= {0x0001,0x0002,0x0004,0x0008,

0x0010,0x0020,0x0040,0x0080};

 

InitSystem(); //

Gpio_select(); // /

 

while(1)

{

for(i=0;i<14;i++)

{

if(i<7) GpioDataRegs.GPBDAT.all = LED[i];

else GpioDataRegs.GPBDAT.all = LED[14-i];

delay_loop(?);

}

}

}

 

//##################################################################

// : delay_loop

//

// :

//##################################################################

 

void delay_loop(long end)

{

long i;

for (i = 0; i < end; i++);

EALLOW; //

//SysCtrlRegs.WDKEY = 0x?;

//SysCtrlRegs.WDKEY = 0x?;

EDIS;

}

 

//##################################################################

// : Gpio_select

//

// : GPIO B15-8 ,

// B7-0 . A, D, F, E, G

// .

//##################################################################

 
 


void Gpio_select(void)

{

EALLOW;

GpioMuxRegs.GPAMUX.all = 0x?; // /

GpioMuxRegs.GPBMUX.all = 0x?; //

GpioMuxRegs.GPDMUX.all = 0x?;

GpioMuxRegs.GPFMUX.all = 0x?;

GpioMuxRegs.GPEMUX.all = 0x?;

GpioMuxRegs.GPGMUX.all = 0x?;

GpioMuxRegs.GPADIR.all = 0x?; // , D, E, F, G

//

GpioMuxRegs.GPBDIR.all = 0x?; // 15-8 ,

GpioMuxRegs.GPDDIR.all = 0x?; // 7-0

GpioMuxRegs.GPEDIR.all = 0x?;

GpioMuxRegs.GPFDIR.all = 0x?;

GpioMuxRegs.GPGDIR.all = 0x?;

 

GpioMuxRegs.GPAQUAL.all = 0x?; //

GpioMuxRegs.GPBQUAL.all = 0x?;

GpioMuxRegs.GPDQUAL.all = 0x?;

GpioMuxRegs.GPEQUAL.all = 0x?;

EDIS;

}

 

 

//#####################################################################

// : InitSystem

//

// : ,

// = 1.

// . 150 .

//

// 2,

// - 4.

//

//#####################################################################

 
 


void InitSystem(void)

{

EALLOW;

SysCtrlRegs.WDCR= 0x?; // // , = 64

// -

// , = 1

SysCtrlRegs.SCSR =?; // WDT

SysCtrlRegs.PLLCR.bit.DIV =?;//

SysCtrlRegs.HISPCP.all = 0x?;//

SysCtrlRegs.LOSPCP.all = 0x?; //

 

 
 


SysCtrlRegs.PCLKCR.bit.EVAENCLK=?; //

SysCtrlRegs.PCLKCR.bit.EVBENCLK=?; //

SysCtrlRegs.PCLKCR.bit.SCIAENCLK=?;

SysCtrlRegs.PCLKCR.bit.SCIBENCLK=?;

SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=?;

SysCtrlRegs.PCLKCR.bit.SPIENCLK=?;

SysCtrlRegs.PCLKCR.bit.ECANENCLK=?;

SysCtrlRegs.PCLKCR.bit.ADCENCLK=?;

EDIS;

}

       
   
 
 

 


. 2.12.

 

3. .

Lab2.c
InitSystem().

3.1. WDCR (. . 2.9), (WDDIS=0), WDFLAG, Watchdog-, 1 (WDPS0, WDPS1, WDPS2=0). 1
(. . 2.12).

3.2. SCSR (. . 2.10) Watchdog-. WDENINT 0, WDOVERRIDE 0 , (. 2
. 2.12).

3.3. PLLCR (. . 2.5) , 30 SYSCLKOUT 150 (. 3 . 2.12).

3.4. HISPCP
(. . 2.6) 2, (LOSPCP) 4 (. 3 . 2.12).

3.5. - PCLKCR (. . 2.7) (. 4 . 2.12).

 

4. .

Gpio_select().

4.1. - GPxMUX (. 5 . 2.12).

4.2. - GPxDIR A, D, E, F, G (. 5 . 2.12).
GPIOB GPIOB15 GPIOB8 , GPIOB7 GPIOB0 (. 5 . 2.12).

4.4. GPxQUAL A, B, D, E (. 5 . 2.12).

 

5.

delay_loop() (. 6 . 2.12) n . ( ):

 

.

 

6. , .

6.1. : Project → Compile File. , .

6.2. : Project → Build. , .

6.3. : File → Load Program → Debug\ lab2.out ( , , ).

 

7. .

7.1. : Debug → Reset CPU, Debug → Restart.

7.2. void main (void) : Debug → Go main.

7.3. : Debug → Run. , .

, , GPIOB. :

- ;

- , ●;

- GpioDataRegs.GPBDAT, Add to Watch Window;

- + GpioDataRegs.GPBDAT Watch Window, bit, GPIOB (. 2.13);

- () , // delay_loop(?);

- (Project → Save), ;

- Animate, GPIOB.

 

8. .

8.1. .

8.2. InitSystem() WDCR (. 1 . 2.12). WDPS 64 (. . 2.8, 2.9).

8.3. delay_loop() // , WDKEY (. 7 . 2.12), Watchdog-:SysCtrlRegs.WDKEY = 0x55, SysCtrlRegs.WDKEY = 0xAA.

/WDRST Watchdog- :

 

 

WDT (.. ), ttWDRST.

8.4. , .

 

 

. 2.13. GPIOB Watch Window

 

9. .

9.1. Lab2.c , Lab2a.c.

9.2. Lab2a.c ,
(. . 2.11, ).

9.3. Lab2a.c Lab2.c ( Remove from project).

9.4. , .

 

II

 

II ( , ), .

1. .

1.1. Lab2.c , Lab2b.c.

1.2. Lab2b.c. ( ), , . , , (GPIOB), , GPIOB 8 :

 

GpioDataRegs.GPBDAT.all = GpioDataRegs.GPBDAT.all >> 8

 

,
InitSystem() Gpio_select() .

1.3. Lab2b.c Lab2a.c.

1.4. , .

 

2. .

2.1. Lab2.c , Lab2c.c.

2.2. Lab2c.c. . 2.11, , (0,1*N+0,001) , N , B15B8. InitSystem() Gpio_select() .

2.3. Lab2c.c Lab2b.c.

2.4. , .

:

 

, , , , .

 

 

:

 

1. C28x.

2. C28x.

3. /, , .

4. TMS320F2812.

5. TMS320F2812. , , .

6. Watchdog timer: , , .

7. , , GPIOD1, , GPIOD6
(0 , 1 )?
.

8. , .


3





:


: 2017-02-24; !; : 1038 |


:

:

, .
==> ...

1527 - | 1305 -


© 2015-2024 lektsii.org - -

: 0.264 .