at91sam7s256(led 실습 )
DESCRIPTION
AT91SAM7S256(LED 실습 ). 윤 상 민. 시작하기에 앞서. 개발환경 구축에 관한 내용은 없습니다 . SAM-BA 프로그램의 다운과 ADS 프로그램의 설치부분은 넣지 않았습니다 . 개발 환경이 갖추어 지고 난 뒤 제어를 어떻게 할 것인지 부분을 다루기로 합니다. LED 실습. 전력관리 제어기에서 클록 공급 (PMC 관련 레지스터 ) I/O 관련 레지스터에서 해당 핀에 설정 (PIO 관련 레지스터 ). 전력관리 제어기 (PMC). 각종의 클록 신호 발생을 제어해주는 레지스터 . - PowerPoint PPT PresentationTRANSCRIPT
AT91SAM7S256(LED AT91SAM7S256(LED 실습실습 ))
윤 상 민
시작하기에 앞서시작하기에 앞서
개발환경 구축에 관한 내용은 없습니다 . SAM-BA 프로그램의 다운과 ADS 프로그램의
설치부분은 넣지 않았습니다 .
개발 환경이 갖추어 지고 난 뒤 제어를 어떻게 할 것인지 부분을 다루기로 합니다
LED LED 실습실습
전력관리 제어기에서 클록 공급 (PMC 관련 레지스터 )
I/O 관련 레지스터에서 해당 핀에 설정 (PIO 관련 레지스터 )
전력관리 제어기전력관리 제어기 (PMC)(PMC)
각종의 클록 신호 발생을 제어해주는 레지스터 . 각종 신호의 클록 발생이란 해당 장치가 동작
하도록 클록을 넣어준다는 것은 우리가 일반적으로 전원을 넣어주는 행위와 비슷하다고 할 수 있다 .
PCK( 프로세서 클록 ), 주변장치 클록 MCK( 마스터 클록 ), 프로그래머블 클록 UDPCK(USB 클록 )
전력관리 제어기의 레지스터 맵핑전력관리 제어기의 레지스터 맵핑
25.9 Power Management Controller (PMC) User Interface( 참고 ) PMC_PCER ( 주변장치 클록 허용 레지스터 ) PMC_PCDR ( 주변장치 클록 금지 레지스터 PMC_PCSR ( 주변장치 클록 상태 레지스터 ) PMC_SCDR ( 시스템 클록 금지 레지스터 ) PMC_SCSR ( 시스템 클록 상태 레지스터 )
주변장치 클록의 허용주변장치 클록의 허용
25.9.4 PMC Peripheral Clock Enable Register (p.202)
PMC_PCER 레지스터 0= 무효 ( 무효란 아무런 값을 설정 하지 않음을 말한다 ) 1= 대응하는 주변 장치에 클록 공급을 허용 ( 해당 비트에 1 을 넣을 경우 클록 공급을 허용 )
Peripheral IdentifiersPeripheral Identifiers (( 주변장치 식별자주변장치 식별자 ))
주변 장치에 대해서 번호를 지정함
PID0 ~ PID31 번까지의 고유의 PID 번호를 가지고 있다 .
ARM DataSheet 10.2 Peripheral Identifiers
PIOAPIOA 에 클록 공급 허용하기에 클록 공급 허용하기
Paraller I/O Controller A 를 사용하기 위해서는 PID2 번에 클록 공급을 해야 한다 .
그래서 PMC_PCER 레지스터의 PID2 번에 1 을 설정해서 클록 공급을 허용한다 . Ex) PMC_PCER = (1<<2);
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 출력 상태 레지스터
I/OI/O 제어 레지스터 맵핑제어 레지스터 맵핑
오프셋의 시작주소오프셋의 시작주소
PMC 관련 레지스터 , PIO 관련 레지스터의 주소는 오프셋 값으로 나타내져 있다 . 32비트 주소에서 우리가 아는 값은 오프셋 값뿐이다 . 어디서 부터 오프셋을 시켜야 할까 ?
Figure 8-1. AT91SAM7S512/256/128/64/321/32/161/16 Memory Mapping (p.20)
레지스터 맵핑 코드레지스터 맵핑 코드
#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)
실습실습
위의 설명들을 토대로 LED 제어