Http://cafe.naver.com/roboticslab.cafe TMS320F2812의 GPIO의 이해.

Slides:



Advertisements
Similar presentations
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Advertisements

ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
-Part2- 제3장 포인터란 무엇인가.
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
서울 메트로 노조파업 수강과목 : 노사 관계론 담당교수 : 정형진 교수님
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
AT MEGA 128 기초와 응용 I 기본적인 구조.
5장. 참조 타입.
07. 디바이스 드라이버의 초기화와 종료 김진홍
제10강 중앙처리장치 1.
C / C++ Programming in multi platform
C 프로그래밍.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
DK-128 ADC 실습 아이티즌 기술연구소
23장. 구조체와 사용자 정의 자료형 2.
부트로더와 Self Programming
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
LCD 모듈의 특징 LCD 컨트롤러 내장으로 모든 디스플레이 기능을 명령어로 제어 8비트 혹은 4비트로 인터페이스
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
Microprocessor I/O Port & CLCD Noh Jin-Seok.
C#.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
27장. 모듈화 프로그래밍.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Device Driver 임베디드 시스템 I.
영상처리 실습 인공지능연구실.
19. 함수 포인터와 void 포인터.
DK-128 FND 실습 아이티즌 기술연구소
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
논리회로 설계 및 실험 5주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
ARM Development Suite v1.2
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Canary value 스택 가드(Stack Guard).
DK-128 개발환경 설정 아이티즌 기술연구소
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
3. 모듈 (5장. 모듈).
논리회로 설계 및 실험 4주차.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
구조체(struct)와 공용체(union)
AdcRead API 함수 분석 마이크로프로세서.
Numerical Analysis Programming using NRs
Chapter 11 구조체.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
06. 디바이스의 등록과 해제 김진홍
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
CODE INJECTION 시스템B 김한슬.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
Assembly 05 방호남 07 반지훈 09 박상욱.
7 생성자 함수.
Presentation transcript:

http://cafe.naver.com/roboticslab.cafe TMS320F2812의 GPIO의 이해

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

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

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의 왓치 윈도우에서의 비트단위 관찰 기능과 에디터에서의 자동 구문 대입 기능을 사용하지 못한다. 헤더 파일 재활용이 불가능하다. 똑같은 주변회로가 두 개 이상 쓰인 경우 불편하다.

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

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

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

DSP 28x의 MMR 28계열 DSP의 MMR 선언과 조작 ☞ MMR의 메모리 배치 1단계:MMR 선언 2단계:섹션 정의 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단계:커맨더 파일 작성

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

DSP 28x의 MMR MMR 보호 기능 : EALLOW, EDIS

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

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

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 인터럽트의 설정과 활용

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

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

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

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

DSP 28x의 GPIO GPIO 회로 구조

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

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

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

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

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

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

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

www.themegallery.com Thank You !