[DSP]/DSP280x2006. 7. 14. 22:43

[DSP280x EVM] ADC테스트

[DSP280x EVM] ADC테스트

사용자 삽입 이미지


TMS320F280x는 최대 12.5MSPS (TMS320F2809)의 ADC속도를 가지는데 TMS320F2808은 6.25MSPS 의 속도다.
그리고 추가된 기능은 옵셋을 조절할 수 있는 레지스터가 있다고 한다. 옵셋 기능이 있어 결과값의 보정할 수 있다고 한다. 성능은 써봐야 알겠지만....
기존의 C281X의 ADC의 결과는 내부 램 Peripherals Frame 0 영역에 저장되고 항상 최상위 비트부터 채워지는 방식이었지만 C280X는 ADC의 결과저장 레지스터가 Dual Mapped 방식으로 Peripherals Frame 0 영역과 Peripherals Frame 2 영역에 위치 한다고 한다. Peripherals Frame 0 영역의  값들은 0-wait의 지연을 갖고 기존 방식과 동일하다. Peripherals Frame 2 영역의 값들은 좌측으로 정렬되어 최상위 비트부터 채워지는 방식의 결과값을 좌측으로 4비트 이동시킨 값으로 2-wait의 지연이 발생한다. 고속의 샘플링이 필요한 경우 Peripherals Frame 0 영역을 이용하고 저속일 경우 12bit 분해능 그대로의 결과를 가지는 Peripherals Frame 2 영역을 이용하면 더 편리하다.

C280X의 ADC는 Global ADC Interrupt Vector(ADCINT), 시퀀서 별 1개씩  총 3개의 인터럽트 벡터가 할당되어 있고 두 개의 시퀀서를 독립적으로 사용할 경우 서로 다른 코드를 수행할 수 있다고 한다.


[DSP280x EVM]보드에는 ADCB0포트에 VR이 연결되어 있어 부가회로 없이 간단하게 ADC테스트를 해 볼수 있다.

회로도는 아래 그림과 같이 ADCB0에 0~3.3V까지 변하는 가변저항이 연결되어 있다.



TMS320F2808 ADC 테스트 결과 화면

Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x2006. 7. 13. 23:15

[DSP280x EVM] 시리얼 포트 테스트

[DSP280x EVM] 시리얼 포트 테스트
 
 


[DSP280x EVM]시리얼포트 드라이버를 포팅하고 송 수신 테스트를 완료 했다.


main()
{

    Uart0Init();

    Uart0Puts(" DSP280x EVM Serial Test!\r\n");
    Uart0Puts(" - by http://cafe.naver.com/elab.cafe\r\n");
   
    Uart0Puts("\r\nSend Any Char..\r\n");
   
    for(;;)
    {
        Uart0PutChar(Uart0GetChar());
    }

}


void Uart0Init(void)
{
    // Test 1,SCIA  DLB, 8-bit word, baud rate 0x000F, default, 1 STOP bit, no parity 
    // Note: Clocks were turned on to the SCIA peripheral
    // in the InitSysCtrl() function
   
  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.SCIHBAUD    =0x0001;  // 9600 baud @LSPCLK = 20MHz.
 SciaRegs.SCILBAUD    =0x0044;
 SciaRegs.SCICTL1.all =0x0023;  // Relinquish SCI from Reset 
 
 scia_fifo_init();
}



Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x2006. 7. 10. 20:58

[DSP280x EVM] GPIO 제어 속도 테스트

[DSP280x EVM] GPIO 제어 속도 테스트

사용자 삽입 이미지


20Mhz 크리스탈을 이용하는 DSP280x EVM의 속도를 단순히 GPIO를 이용하여 테스트 하였다.
[DSP280x EVM] 의 P6, P7은 테스트용 LED가 연결되어 있고 이를 이용하였다.

포트는 TI에서 제공하는 구조체를 이용하면 쉽게 제어 가능하다.

       GpioDataRegs.GPADAT.bit.GPIO6 = 1;

참고로 CCS 3.1에서 제공하는 구조체 보기 기능을 이용하면 정의된 구조체를 쉽게 볼수 있다.


VC++에서 처럼 .을 찍으면 그 아래 정보를 쉽게 입력할수 있는 기능이 있다. 정말 좋아 졌군...



TMS320F2808 GPIO테스트 결과
딜레이 없이 포트를 On/Off했을때 걸리는 시간은 대략 160ns(3Mhz)정도 나왔다.
100Mips인 TMS320F2808이 상당히 느리게 느껴진다.(AVR(16Mips)이 300ns로 나온다) 클럭속도나 옵티마이즈 옵션에 문제가 있는듯...

Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x2006. 7. 9. 12:29

TMS320F280x 예제 소스코드 모음

TMS320F280x 예제 소스코드 모음


TMS320F280x (TMS320F2808) 용 C/C++ HEADERS 및 예제(v100)




F280x PWM 테스트 예제코드




F280x Digital Motor Control Library


Posted by nexp

댓글을 달아 주세요

[DSP]/DSP280x2006. 7. 8. 22:46

[DSP280x EVM] CCS 3.x 개발발환경 설정 - TMS320F2808, TMS320F2812

[DSP280x EVM] CCS 3.x 개발발환경 설정 - TMS320F2808, TMS320F2812

사용자 삽입 이미지
 

새로운 CPU를 배울때 개발 환경 설정이 완료 되면 50%는 성공한 것이라 볼 수 있다.

특히나 요즘 같이 최신의 소프트웨어 툴이 제공되는 상황에서는 더더욱 그렇다.

따라서 [DSP280x EVM]을 이용하여 기본 컴파일 환경을 설정하고 프로젝트 파일을 생성하여 컴파일 및 다운로드 해본 과정을 정리하도록 하겠다. 다음에 다시 잊지 말길 바라며....


컴파일러는 TI에서 제공하는 Code Composer 3.1을 이용하는데 TI에서 기본적으로 제공하는 라이브러리 및 각종 헤드파일을 다운로드 하여 기본 환경을 구축한다.

exam폴더에 에 파일을 아래와 같이 설치 했고 3개의 폴더로 구성되어 있다. 그리고 새로운 예제를 작성할 dsp28evm폴더를 생성하였다.



2.프로젝트 생성
CCS3.1의 메뉴에서 [Project] -> [New]로  생성할 프로젝트명과 디렉토리를 설정한다.
[DSP280x EVM]의 LED를 깜빡이는 예제를 작성할 것이므로 led_flash로 프로젝트 명을 정했다.


 

3.기본 파일 추가
TI에서 프로젝트를 쉽게 구성하도록 작성한 기본 파일을 포함시킨다. 각 파일에 대한 자세한 내용은 다음에 설명하도록 하고 일다 기본적으로 필요한 파일들을 추가하도록 한다.

링커커멘더 파일
DSP280x_Headers_BIOS.cmd
DSP280x_Headers_nonBIOS.cmd


시스템 초기화 관련 소스파일
DSP280x_CodeStartBranch.asm
DSP280x_DefaultIsr.c
DSP280x_SysCtrl.c
DSP280x_PieVect.c
DSP280x_PieCtrl.c
DSP280x_Gpio.c


작성할 사용자 파일
led_flash.c


 

4.Builder옵션 설정
[Project]->[Builder Option]메뉴에서
-include file path설정
[Compiler]탭 -> [Preprocessor]의 Include Search Pass부분을 헤더파일이 있는 위치로 설정
..\..\DSP280x_headers\include;..\..\DSP280x_common\include


- 라이브러리 추가 [Link]탭에서 rts2800_ml.lib파일 추가
0x200
code_start
..\..\DSP280x_headers\include
rts2800_ml.lib



LED제어를 위한 예제 소스코드 작성

#include "..\..\DSP280x_common\api\util280x_evm.h"

void main(void)
{
 //System Initialize
 Dsp280xInit();


 //DSP280x EVM LED Init
 Init_Led();


 while(1)
 {
     LED0_TOGGLE();

     Delay(300);
 }

}  

작성한 소스파일을 추가하고 컴파일 하면 아래와 같이 컴파일 된 파일을 생성할 수 있다.

사용자 삽입 이미지

파일 다운로드




TMS320F2808/TMS320F2812 개발환경(CodeComposer)을 위한 TIP
팁이라기 보다는 환경설정 사항은 시간이 지나서 까먹는 경우가 발생하는데 테스트 진행하면서 틈틈히 기록해 두려한다.

Posted by nexp

댓글을 달아 주세요