[DSP]/DSP283352009. 5. 9. 01:59

[DSP28335] UART 테스트 - TMS320F28335 SCI

[DSP28335] UART 테스트 - TMS320F28335 SCI

TMS320F28335의 UART Baudrate 설정 LSPCLK에서 부터 생성되며 다른 C2000 (TMS320F2812, TMS320F2808)과 다르게 37.5Mhz의 내부 발진기로 할당된다. 따라서 보레이트 설정 부분을 수정해야 정상 동작한다.



보레이트 설정은 아래와 같이 설정하면된다.





UART 송수신을 위한 함수 포팅
unsigned char U0_GetByte(void)
{
 // wait for RRDY/RXFFST =1 for 1 data available in FIFO
 while(SciaRegs.SCIFFRX.bit.RXFFST !=1) { };  
 return RxData();
}

void U0_PutByte(unsigned char Data)
{
    while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {};
    TxData(Data);
}


TMS320F28335 SCI (UART) 초기화 함수
void U0_Init(unsigned char baud)
{
 InitSciaGpio();

    SciaRegs.SCIFFTX.all=0xE040;
    SciaRegs.SCIFFRX.all=0x204f;
    SciaRegs.SCIFFCT.all=0x0;

 U0_SetBaud(baud);

  SciaRegs.SCICCR.all =0x0007;   // 1 stop bit,  No loopback
                                   // No parity,8 char bits,
                                   // async mode, idle-line protocol
 SciaRegs.SCICTL1.all =0x0003;  // enable TX, RX, internal SCICLK,
                                   // Disable RX ERR, SLEEP, TXWAKE
 SciaRegs.SCICTL2.all =0x0003;
 SciaRegs.SCICTL2.bit.TXINTENA =1;
 SciaRegs.SCICTL2.bit.RXBKINTENA =1;
 
 SciaRegs.SCICTL1.all =0x0023;  // Relinquish SCI from Reset 
}
Posted by nexp

댓글을 달아 주세요

[DSP]/DSP283352009. 5. 3. 01:51

TMS320F28335 EVM Switch Test

TMS320F28335 EVM Switch Test

[DSP28335 EVM] 보드내에 Switch는 GPIO52(EQEP1/XD27) 에 연결되어 있다.





GPIO로 입력으로 생각하고 처리하면 된다.

TMS320F28335 Switch 드라이버 코드 (config.h 파일에 정의 한다.)

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

//Switch Driver

#define SW1_BIT

#define SW1_PORT

#define Sw1Init() GpioCtrlRegs.GPBPUD.bit.GPIO52 = 0;\

    GpioCtrlRegs.GPBMUX2.bit.GPIO52 = 0;\

    GpioCtrlRegs.GPBDIR.bit.GPIO52 = 0

#define GetSw1() (!GpioDataRegs.GPBDAT.bit.GPIO52)

#define WaitForSw1() while(GetSw1())

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





TMS320F28335 Switch 테스트 예제 코드

void main(void)

{

unsigned int flag = 0;


//DSP System Initialize

SystemInit();


Led1Init();

Led1On();

//Switch 초기화

Sw1Init();


DebugInit(BAUD_115200);

DebugPrint("W5300 SW Test\r\n");


while(1)

{

//스위치 처리

if(GetSw1())

{

Led1On();

}

else

{

Led1Off();

}

}

}


Posted by nexp

댓글을 달아 주세요

[DSP]/DSP283352008. 5. 25. 10:36

[DSP28335 EVM] ePWM테스트

[DSP28335 EVM] ePWM테스트




[DSP28335 EVM]의 LED는 GPIO6, 7에 연결되어 있고 ePWM ECAP2는 GPIO7에 연결되어 있어 LED를 이용하여 간단히 PWM테스트 결과를 볼 수 있다.




/ecap_apwm 예제를 약간 수정 하였는데 메인부분에서 루프내 코드를 ECAP2의 ECap2Regs를 제어하도록 변경하였다.

      // vary freq between 5 Hz and 10 Hz
      if(ECap2Regs.CAP1 >= 0x01312D00)
      {
         direction = 0;
      } else if (ECap2Regs.CAP1 <= 0x00989680)
      {
         direction = 1;
      }
     
      if(direction == 0)
      {
         ECap2Regs.CAP3 = ECap2Regs.CAP1 - 1000000;
      } else
      {
         ECap2Regs.CAP3 = ECap2Regs.CAP1 + 1000000;

      }


간단히 TMS320F28335 PWM을 이용하여 LED테스트 해본 동영상

Posted by nexp

댓글을 달아 주세요

[DSP]/DSP283352008. 5. 24. 23:59

[DSP28335 EVM] GPIO 속도 테스트

[DSP28335 EVM] GPIO 속도 테스트

사용자 삽입 이미지

TMS320F28335 를 이요한 GPIO Toggle테스트를 해봤다. DSP의 속도가 GPIO와는 큰 상관은 없지만 새로운 MCU에서는 기본적으로 테스트 해보는 사항이라..

GPATOGGLE 레시스터를 이용하여 토글 했을때 토글링 속도가 15Mhz(60n) 정도 나온다. 멋지군! 물론 플로팅 연산을 했을경우 더 위력을 발휘하겠지만....

   for(;;)
   {   
      GpioDataRegs.GPATOGGLE.all =0xFFFFFFFF;
    }


[참고] MCU속도 측정 결과 

Posted by nexp

댓글을 달아 주세요

[DSP]/DSP283352008. 5. 24. 23:45

[DSP28335 EVM] Test - GPIO Toggle 테스트

[DSP28335 EVM] Test - GPIO Toggle 테스트




TI제공 TMS320F28335 기본 예제 소스코드를 이용하여 간단하게 [DSP28335 EVM]LED제어를 해봤다.




컴파일된 파일




기본 예제에서 토글 속도가 빨라서 눈에 보일 수 있도록 Delay루틴을 좀 수정해서 테스트 했다.
void delay_loop()
{
    unsigned long   i;
    for (i = 0; i < 2000000; i++) {}
}



테스트 동영상



Posted by nexp

댓글을 달아 주세요