360 likes | 681 Views
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.
E N D
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 • 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) • 비트 단위 관찰 기능 • 헤더 파일 재활용이 불가능하다.
DSP 28x MMR • 28x DSP의 MMR 선언과 조작
DSP 28x MMR • 28x DSP의 MMR 선언과 조작
DSP 28x MMR • 28x DSP의 MMR 선언과 조작
DSP 28x MMR • 28x DSP의 MMR 선언과 조작 • 1단계 GpioMuxRegs.GPAMUX • 2단계 GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 GpioMuxRegs.GPAMUX.bit.T1PWM_GPIOA6 = 1;
DSP 28x MMR • 28x DSP의 MMR 선언과 조작
DSP 28x MMR • 28x DSP의 MMR 선언과 조작 • #pragma • 데이터를 원하는 메모리의 영역에 주입하기 위해서 #pragma, DATA_SECTION 함수를 사용 예) coeff배열을 L0영역인 0x8400번지에 배치 #pragma DATA_SECTION(coeff, “m_coeff”) Uint coeff[[128]
DSP 28x MMR • 28x DSP의 MMR 선언과 조작 ☞ GPIO 관련 MMR의 메모리 배치 • 1단계 : MMR선언 extern volatile struct GPIO_MUX_REGS GpioMuxRegs; • 2단계 : 섹션 정의 #pragma DATA_SECTION(GpioMuxRegs, “GpioMuxRegsFile”); • 3단계 : 커맨드 파일 작성
DSP 28x MMR • 28x DSP의 MMR 선언과 조작 ☞ GPIO 관련 MMR의 메모리 배치 • 3단계 : 커맨드 파일 작성
DSP 28x MMR • 구조체 선언의 장점 • 비트 조작이 용이하다. • 비트단위로 접근한 구문은 C 컴파일러에 의해 ‘R-M-W(Read-Modify-Write) Atomic 명령’체계로 바뀐다. • 주석문 처리가 간편해진다. • MMR 처리 구문 자체가 주석문이 되어 버린다. • 재사용이 가능하다. • extern volatile struct SCI_REG SciaRegs; • extern volatile struct SCI_REG ScibRegs;
DSP 28x MMR • MMR 보호 기능 : EALLOW, EDIS • 몇몇 특정 영역에 위치한 MMR에 일종의 보호막을 씌워 임의의 접근으로부터 보호하고 있다.
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt Project → Build Option에서 rts2800_ml.lib를 포함시킴 Project → Add File to Project를 통해서 포함 시킴
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • 소스코드 • Defaultlsr.c • PieCtrl.c • Pievect.c • CodeStartBranch.asm • GlobalVariableDefs.c • Gpio.c • SysCtrl.c • 281xGpioToggle.c 인터럽트의 설정과 활용
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • DSP281x_CodeStartBranch.asm • .def – 선언용 디렉티브 • .ref – 참고용 디렉티브 • .sect – 섹션 디렉티브
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • 28x DSP에서 코드가 실행되는 과정 : MC Mode MC 모드 설정 리셋 신호 인가 Boot Loader 실행 > DSP281x_CodeStartBranch.asm 호출 rts2800_ml.lib 실행 > main( ) 호출
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • rts2800_ml.lib • Run Time Support Library • 기능 • 스택 확보 및 스텍 포인터 설정 • 연산 비트 설정 • 데이터 초기화 • DSP281x_GlobalVariableDefs.c • 데이터 섹션 정의
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • DSP281x_SysCtrl.c • 기능 • Watchdog을 무력화(disable) • PLLCR 레지스터를 설정, 원하는 시스템 클럭을 생성 • 주변회로에 공급 클럭 주파수를 설정 • 주변회로에 클럭 공급 여부를 설정
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • GPIO 회로 구조
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • 281x 프로세서 모듈의 LED 구성
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • Example_DSP281xGpioToggle.c • GPIO 설정
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • Example_DSP281xGpioToggle.c • Example1
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • Example_DSP281xGpioToggle.c • Example2 • GPxSET 레지스터 • : 이 비트가 1이면 해당 핀의 상태가 Logic High가 됨 • 이 비트가 0이면, 아무런 영향이 없다. • GPxCLEAR 레지스터 • : 이 비트가 1이면 해당 핀의 상태가 Logic Low가 됨 • 이 비트가 0이면, 아무런 영향이 없다.
TMS320F2812 GPIO Control • Example_281xGpioToggle.pjt • Example_DSP281xGpioToggle.c • Example3 • GPxTOGGLE레지스터 • : 이 비트가 1이면 해당 핀의 상태가 반전된다. • 이 비트가 0이면, 아무런 영향이 없다.
TMS320F2812 GPIO Control • Input Qualification • 6개의 포트중 A, B, D, E 포트에는 Input Qualification라는 아주 특별한 회로가 탑재되어 있다.
TMS320F2812 GPIO Control • Input Qualification
TMS320F2812 GPIO Control • Input Qualification • GPxQUAL 레지스터
Thank You ! www.themegallery.com