1 / 36

DSP TMS320F2812

DSP TMS320F2812. ROBOTICS LAB. http://cafe.naver.com/roboticslab. Contents. 1. DSP 28x MMR. 2. TMS320F2812 GPIO Control. 3. GPIO 를 이용한 LED 점멸 예제. DSP 28x MMR. MMR(Memory Mapped Register) 메모리처럼 조작 가능한 레지스터. DSP 28x MMR. Internal Register 레지스터에 번지를 부여하지 않는다. DSP 28x MMR.

devlin
Download Presentation

DSP TMS320F2812

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DSP TMS320F2812 ROBOTICS LAB. http://cafe.naver.com/roboticslab

  2. Contents 1. DSP 28x MMR 2. TMS320F2812 GPIO Control 3. GPIO를 이용한 LED 점멸 예제

  3. DSP 28x MMR • MMR(Memory Mapped Register) • 메모리처럼 조작 가능한 레지스터

  4. DSP 28x MMR • Internal Register • 레지스터에 번지를 부여하지 않는다.

  5. DSP 28x MMR • AVR(또는 8051) MMR 선언과 조작 #define MCRA (volatile unsigned int *)0x7090 /* I/O mux control reg. A */ #define MCRB (volatile unsigned int *)0x7092 /* I/O mux control reg. B */ #define MCRC (volatile unsigned int *)0x7094 /* I/O mux control reg. C */ • 레지스터의 비트 조작이 매우 어렵다. • CCS의 기능을 제대로 사용하지 못한다. • 자동 구문 대입 기능(auto-completion) • 비트 단위 관찰 기능 • 헤더 파일 재활용이 불가능하다.

  6. DSP 28x MMR • 28x DSP의 MMR 선언과 조작

  7. DSP 28x MMR • 28x DSP의 MMR 선언과 조작

  8. DSP 28x MMR • 28x DSP의 MMR 선언과 조작

  9. DSP 28x MMR • 28x DSP의 MMR 선언과 조작 • 1단계 GpioMuxRegs.GPAMUX • 2단계 GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 = 1;

  10. DSP 28x MMR • 28x DSP의 MMR 선언과 조작

  11. DSP 28x MMR • 28x DSP의 MMR 선언과 조작 • #pragma • 데이터를 원하는 메모리의 영역에 주입하기 위해서 #pragma, DATA_SECTION 함수를 사용 예) coeff배열을 L0영역인 0x8400번지에 배치 #pragma DATA_SECTION(coeff, “m_coeff”) Uint coeff[[128]

  12. DSP 28x MMR • 28x DSP의 MMR 선언과 조작 ☞ GPIO 관련 MMR의 메모리 배치 • 1단계 : MMR선언 extern volatile struct GPIO_MUX_REGS GpioMuxRegs; • 2단계 : 섹션 정의 #pragma DATA_SECTION(GpioMuxRegs, “GpioMuxRegsFile”); • 3단계 : 커맨드 파일 작성

  13. DSP 28x MMR • 28x DSP의 MMR 선언과 조작 ☞ GPIO 관련 MMR의 메모리 배치 • 3단계 : 커맨드 파일 작성

  14. DSP 28x MMR • 구조체 선언의 장점 • 비트 조작이 용이하다. • 비트단위로 접근한 구문은 C 컴파일러에 의해 ‘R-M-W(Read-Modify-Write) Atomic 명령’체계로 바뀐다. • 주석문 처리가 간편해진다. • MMR 처리 구문 자체가 주석문이 되어 버린다. • 재사용이 가능하다. • extern volatile struct SCI_REG SciaRegs; • extern volatile struct SCI_REG ScibRegs;

  15. DSP 28x MMR • MMR 보호 기능 : EALLOW, EDIS • 몇몇 특정 영역에 위치한 MMR에 일종의 보호막을 씌워 임의의 접근으로부터 보호하고 있다.

  16. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt

  17. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt Project → Build Option에서 rts2800_ml.lib를 포함시킴 Project → Add File to Project를 통해서 포함 시킴

  18. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • 소스코드 • Defaultlsr.c • PieCtrl.c • Pievect.c • CodeStartBranch.asm • GlobalVariableDefs.c • Gpio.c • SysCtrl.c • 281xGpioToggle.c 인터럽트의 설정과 활용

  19. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • DSP281x_CodeStartBranch.asm • .def – 선언용 디렉티브 • .ref – 참고용 디렉티브 • .sect – 섹션 디렉티브

  20. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • 28x DSP에서 코드가 실행되는 과정 : MC Mode MC 모드 설정 리셋 신호 인가 Boot Loader 실행 > DSP281x_CodeStartBranch.asm 호출 rts2800_ml.lib 실행 > main( ) 호출

  21. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • rts2800_ml.lib • Run Time Support Library • 기능 • 스택 확보 및 스텍 포인터 설정 • 연산 비트 설정 • 데이터 초기화 • DSP281x_GlobalVariableDefs.c • 데이터 섹션 정의

  22. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • DSP281x_SysCtrl.c • 기능 • Watchdog을 무력화(disable) • PLLCR 레지스터를 설정, 원하는 시스템 클럭을 생성 • 주변회로에 공급 클럭 주파수를 설정 • 주변회로에 클럭 공급 여부를 설정

  23. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt

  24. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt

  25. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt

  26. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • GPIO 회로 구조

  27. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • 281x 프로세서 모듈의 LED 구성

  28. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • Example_DSP281xGpioToggle.c • GPIO 설정

  29. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • Example_DSP281xGpioToggle.c • Example1

  30. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • Example_DSP281xGpioToggle.c • Example2 • GPxSET 레지스터 • : 이 비트가 1이면 해당 핀의 상태가 Logic High가 됨 • 이 비트가 0이면, 아무런 영향이 없다. • GPxCLEAR 레지스터 • : 이 비트가 1이면 해당 핀의 상태가 Logic Low가 됨 • 이 비트가 0이면, 아무런 영향이 없다.

  31. TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • Example_DSP281xGpioToggle.c • Example3 • GPxTOGGLE레지스터 • : 이 비트가 1이면 해당 핀의 상태가 반전된다. • 이 비트가 0이면, 아무런 영향이 없다.

  32. TMS320F2812 GPIO Control • Input Qualification • 6개의 포트중 A, B, D, E 포트에는 Input Qualification라는 아주 특별한 회로가 탑재되어 있다.

  33. TMS320F2812 GPIO Control • Input Qualification

  34. TMS320F2812 GPIO Control • Input Qualification • GPxQUAL 레지스터

  35. Plan

  36. Thank You ! www.themegallery.com

More Related