at91sam7s256(led 실습 )

20
AT91SAM7S256(LED AT91SAM7S256(LED 실실 실실 ) ) 실 실

Upload: eben

Post on 13-Jan-2016

95 views

Category:

Documents


3 download

DESCRIPTION

AT91SAM7S256(LED 실습 ). 윤 상 민. 시작하기에 앞서. 개발환경 구축에 관한 내용은 없습니다 . SAM-BA 프로그램의 다운과 ADS 프로그램의 설치부분은 넣지 않았습니다 . 개발 환경이 갖추어 지고 난 뒤 제어를 어떻게 할 것인지 부분을 다루기로 합니다. LED 실습. 전력관리 제어기에서 클록 공급 (PMC 관련 레지스터 ) I/O 관련 레지스터에서 해당 핀에 설정 (PIO 관련 레지스터 ). 전력관리 제어기 (PMC). 각종의 클록 신호 발생을 제어해주는 레지스터 . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: AT91SAM7S256(LED  실습 )

AT91SAM7S256(LED AT91SAM7S256(LED 실습실습 ))

윤 상 민

Page 2: AT91SAM7S256(LED  실습 )

시작하기에 앞서시작하기에 앞서

개발환경 구축에 관한 내용은 없습니다 . SAM-BA 프로그램의 다운과 ADS 프로그램의

설치부분은 넣지 않았습니다 .

개발 환경이 갖추어 지고 난 뒤 제어를 어떻게 할 것인지 부분을 다루기로 합니다

Page 3: AT91SAM7S256(LED  실습 )

LED LED 실습실습

전력관리 제어기에서 클록 공급 (PMC 관련 레지스터 )

I/O 관련 레지스터에서 해당 핀에 설정 (PIO 관련 레지스터 )

Page 4: AT91SAM7S256(LED  실습 )

전력관리 제어기전력관리 제어기 (PMC)(PMC)

각종의 클록 신호 발생을 제어해주는 레지스터 . 각종 신호의 클록 발생이란 해당 장치가 동작

하도록 클록을 넣어준다는 것은 우리가 일반적으로 전원을 넣어주는 행위와 비슷하다고 할 수 있다 .

PCK( 프로세서 클록 ), 주변장치 클록 MCK( 마스터 클록 ), 프로그래머블 클록 UDPCK(USB 클록 )

Page 5: AT91SAM7S256(LED  실습 )

전력관리 제어기의 레지스터 맵핑전력관리 제어기의 레지스터 맵핑

25.9 Power Management Controller (PMC) User Interface( 참고 ) PMC_PCER ( 주변장치 클록 허용 레지스터 ) PMC_PCDR ( 주변장치 클록 금지 레지스터 PMC_PCSR ( 주변장치 클록 상태 레지스터 ) PMC_SCDR ( 시스템 클록 금지 레지스터 ) PMC_SCSR ( 시스템 클록 상태 레지스터 )

Page 6: AT91SAM7S256(LED  실습 )
Page 7: AT91SAM7S256(LED  실습 )

주변장치 클록의 허용주변장치 클록의 허용

25.9.4 PMC Peripheral Clock Enable Register (p.202)

PMC_PCER 레지스터 0= 무효 ( 무효란 아무런 값을 설정 하지 않음을 말한다 ) 1= 대응하는 주변 장치에 클록 공급을 허용 ( 해당 비트에 1 을 넣을 경우 클록 공급을 허용 )

Page 8: AT91SAM7S256(LED  실습 )
Page 9: AT91SAM7S256(LED  실습 )

Peripheral IdentifiersPeripheral Identifiers (( 주변장치 식별자주변장치 식별자 ))

주변 장치에 대해서 번호를 지정함

PID0 ~ PID31 번까지의 고유의 PID 번호를 가지고 있다 .

ARM DataSheet 10.2 Peripheral Identifiers

Page 10: AT91SAM7S256(LED  실습 )
Page 11: AT91SAM7S256(LED  실습 )

PIOAPIOA 에 클록 공급 허용하기에 클록 공급 허용하기

Paraller I/O Controller A 를 사용하기 위해서는 PID2 번에 클록 공급을 해야 한다 .

그래서 PMC_PCER 레지스터의 PID2 번에 1 을 설정해서 클록 공급을 허용한다 . Ex) PMC_PCER = (1<<2);

Page 12: AT91SAM7S256(LED  실습 )

I/OI/O 제어 레지스터제어 레지스터

27.6 Parallel Input/Output Controller :PIO (p.246)

User InterfacePIO_PER : 병렬 입출력 허용 레지스터 PIO_PDE : 병렬 입출력 금지 레지스터 PIO_PSR : 병렬 입출력 상태 레지스터 PIO_OER : PIO 출력 허용 레지스터 PIO_ODR : PIO 출력 금지 레지스터 PIO_OSR : PIO 출력 상태 레지스터

Page 13: AT91SAM7S256(LED  실습 )

I/OI/O 제어 레지스터 맵핑제어 레지스터 맵핑

Page 14: AT91SAM7S256(LED  실습 )

오프셋의 시작주소오프셋의 시작주소

PMC 관련 레지스터 , PIO 관련 레지스터의 주소는 오프셋 값으로 나타내져 있다 . 32비트 주소에서 우리가 아는 값은 오프셋 값뿐이다 . 어디서 부터 오프셋을 시켜야 할까 ?

Figure 8-1. AT91SAM7S512/256/128/64/321/32/161/16 Memory Mapping (p.20)

Page 15: AT91SAM7S256(LED  실습 )
Page 16: AT91SAM7S256(LED  실습 )

레지스터 맵핑 코드레지스터 맵핑 코드

#define PMC_PCER (*(volatile unsigned int *) 0xFFFFFC10)

#define PIO_PER (*(volatile unsigned int *) 0xFFFFF400)

#define PIO_OER (*(volatile unsigned int *) 0xFFFFF410)

#define PIO_SODR (*(volatile unsigned int *) 0xFFFFF430)

Page 17: AT91SAM7S256(LED  실습 )

실습실습

위의 설명들을 토대로 LED 제어

Page 18: AT91SAM7S256(LED  실습 )
Page 19: AT91SAM7S256(LED  실습 )
Page 20: AT91SAM7S256(LED  실습 )