1 / 26

TMS320F2812 의 GPIO 의 이해

http://cafe.naver.com/roboticslab.cafe. TMS320F2812 의 GPIO 의 이해. Contents. 1. DSP 28x 의 MMR. 2. TMS320F2812 의 GPIO. 3. GPIO 를 이용한 LED 점멸 예제. DSP 28x 의 MMR. MMR (Memory Mapped Register) 메모리처럼 조작 가능한 레지스터를 의미

ura
Télécharger la présentation

TMS320F2812 의 GPIO 의 이해

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. http://cafe.naver.com/roboticslab.cafe TMS320F2812의 GPIO의 이해

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

  3. DSP 28x의 MMR • MMR (Memory Mapped Register) • 메모리처럼 조작 가능한 레지스터를 의미 • 수많은 레지스터의 관리를 용이하도록, 메모리 주소와 동일한 지위를 갖는 주소를 레지스터마다 부여해 쉽게 조작이 가능하도록 번지를 부여 받은 레지스터

  4. DSP 28x의 MMR • 24계열 DSP의 MMR 선언과 조작 #define MCRA (volatile unsigned int *)0x7090 #define MCRB (volatile unsigned int *)0x7090 #define MCRC (volatile unsigned int *)0x7090 • 레지스터의 비트 조작이 매우 어렵다. • 레지스터의 값을 통째로 바꿔야 한다. • CCS의 기능을 제대로 사용하지 못한다. • CCS의 왓치 윈도우에서의 비트단위 관찰 기능과에디터에서의 자동 구문 대입 기능을 사용하지 못한다. • 헤더 파일 재활용이 불가능하다. • 똑같은 주변회로가 두 개 이상 쓰인 경우 불편하다.

  5. DSP 28x의 MMR • 28계열 DSP의 MMR 선언과 조작

  6. DSP 28x의 MMR • 28계열 DSP의 MMR 선언과 조작 • 1단계 • GpioMuxRegs.GPAMUX • 2단계 • GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 = 1; GpioMuxRegs.GPAMUX.all = 0x0037;

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

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

  9. DSP 28x의 MMR • 28계열 DSP의 MMR 선언과 조작 • 구조체의 선언의 장점 • 비트 조작이 용이하다. • 비트단위로 접근한 구문은 컴파일러에 의해 Atomic 명령어 체계로 사용된다. • 주석문 처리가 간편해진다. • MMR 처리 구문 자체가 주석문이 된다. • 재사용이 가능하다. • 동일한 구조의 레지스터가 탑재되어 있지만, 번지가 다른 경우 데이터형을 정의한 구문을 재활용할 수 있다.

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

  11. DSP 28x의 GPIO • Example_281xGpioToggle.pjt • TI가 제공하는 SPRC097 이라는 기술문서와 • 함께 파일로 제공 • C:\tidcs\c28\dsp281x\v100\DSP281x_examples MMR 선언 헤더 파일 각종 소스 코드 링커 커맨더 파일

  12. DSP 28x의 GPIO • Example_281xGpioToggle.pjt Project → Build Option에서 rts2800_ml.lib를 포함시킴 Project → Add File to Project를 통해서 포함 시킴

  13. DSP 28x의 GPIO • Example_281xGpioToggle.pjt • 소스 코드 • DSP281x_Defaultlsr.c • DSP281x_PieCtrl.c • DSP281x_PieVect.c • DSP281x_CodestartBranch.asm • DSP281x_GlobalVariableDefs.c • DSP281x_Gpio.c • DSP281x_Sysctrl.c • Example_281xGpioToggle.c 인터럽트의 설정과 활용

  14. DSP 28x의 GPIO • Example_281xGpioToggle.pjt • DSP281x_CodeStartBranch.asm • .def – 선언용 디렉티브 • .ref – 참고용 디렉티브 • .sect – 섹션 디렉티브

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

  16. DSP 28x의 GPIO • Example_281xGpioToggle.pjt • rts2800_ml.lib • Run Time Support Library • 기능 • 스택 확보 및 스택 포인터 설정 • 연산 비트 설정 • 데이터 초기화 • DSP281x_GlobalVaiableDefs.c • 데이터 섹션 정의

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

  18. DSP 28x의 GPIO • GPIO 회로 구조

  19. DSP 28x의 GPIO • 281x프로세서 모듈의 LED

  20. DSP 28x의 GPIO • Example_281xGpioToggle.c • Example1

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

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

  23. DSP 28x의 GPIO • Input Qualification 기능 • 6개의 포트중 A,B,D,E 포트에는 Input Qualifier라는 아주 특별한 회로가 탑재되어 있다.

  24. DSP 28x의 GPIO • Input Qualification 기능 • GPxQUAL 레지스터

  25. DSP 28x의 GPIO • Input Qualification 기능 • Input Qualifier의 동작

  26. www.themegallery.com Thank You !

More Related