[DSP]/DSP28122007. 4. 16. 20:01

[DSP2812 EVM] 예제 - TMS320F2812 LED제어

DSP2812 EVM 예제 - LED제어
사용자 삽입 이미지
 
 



1)Project File 구조
DSP2812 EVM의 Project file 기본 구조는 TI에서 제공하는 예제파일을 기초로 구성하였고 좀 불편한 부분 및 하드웨어 레이어를 구분 지어 새롭게 작성 했습니다.
 
DSP281x_common, DSP281x_headers 폴더는 TI에서 제공하는 기본 Lib파일로 그대로 사용하고 있습니다.
 
DSP281x_evm 폴더에 앞으로 예제들을 추가할 예정입니다.
  -  00_hal, 01_drv 등 숫자로 시작하는 폴더는 시스템 관련 파일로 하드웨어 레이어를 구분하기 위해 사용하고 있습니다.
    (개인적으로 CPU종류에 상관 없이 ARM이든, DSP든 종류에 상관없이 응용프로그램을 작성할 수 있도록 하고 있습니다.)
 
  -ex01~ 부터 예제들을 추가해 작성하고 있습니다.
 
Debug 폴더는 CCS가 생성하는 것으로 컴파일된 파일이 저장되는 폴더 입니다. 최종 Example_281x.out파일이 생성 됩니다.
 
 
 
 
2)Project Open
프로젝트 파일을 다운받아 열어 보면 아래 그림과 같은 구조로 되어 있고 Source폴더에 컴파일 할 파일을 추가하거나 제거 해서 다른 예제들도 테스트 해 볼 수 있습니다.
 
 
 
 
3)컴파일
Rebuilder All 아이콘을 클릭하면 컴파일을 사작하고 몇가지 워닝뒤에 컴파일 완료됨을 알 수 있습니다.


4)Load Program
컴파일 된 파일을 DSP의 램 영역에 다운로드


5)Program Run
프로그램을 실행 시키면 LED가 깜박이는 것을 확인 할 수 있습니다.


 

6)LED 제어
DSP2812 EVM (TMS320F2812)의 에는 기본적으로 LED 2개가 PF13, PF12에 연결되어 있어 GPIOF를 제어 하여 Led를 On/Off  할 수 있습니다.


 

 예제 소스
소스는 너무 간단해서 설명할것은 없지만...  GPIOF포트를 설정하는 레지스터를 출력으로 설정하고 데이터 레지스터를 접근해 포트 On/Off를 하면 됩니다.

//-----------------------------------------------------------------------------

// LED Driver - HAL Part

//-----------------------------------------------------------------------------

#define Led1On()                                          (GpioDataRegs.GPFDAT.bit.GPIOF13 = 0)

#define Led1Off()                                          (GpioDataRegs.GPFDAT.bit.GPIOF13 = 1)

#define Led1Toggle()                                       (GpioDataRegs.GPFDAT.bit.GPIOF13 ^= 1)

#define Led2On()                                          (GpioDataRegs.GPFDAT.bit.GPIOF12 = 0)

#define Led2Off()                                          (GpioDataRegs.GPFDAT.bit.GPIOF12 = 1)

#define Led2Toggle()                                       (GpioDataRegs.GPFDAT.bit.GPIOF12 ^= 1)

void Init_Led(void)

{

    EALLOW;

        //sets GPIO Muxs as I/Os

    GpioMuxRegs.GPFMUX.bit.MDXA_GPIOF12 = 0;

    GpioMuxRegs.GPFMUX.bit.MDRA_GPIOF13 = 0;

                                                                               

        // DIR select GPIOs as output

    GpioMuxRegs.GPFDIR.bit.GPIOF12=1;

    GpioMuxRegs.GPFDIR.bit.GPIOF13=1;

    EDIS;

}

//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------

// Main Routine

//-----------------------------------------------------------------------------

void main(void)

{

        //System Initialize

        SystemInit();

       

        //LED initiazle

        Init_Led();

        while(1)

        {

                //LED Toggle

                Led1Toggle();

                Led2Toggle();

                Delay(300);

        }

}      

//-----------------------------------------------------------------------------


CP1210 디바이스 드라이버

http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/USB/en/mcu_vcp.htm

 


Posted by nexp

댓글을 달아 주세요