3 입출력 I/O

 

3.1 특징 및 기능

PIO는 32bit의 프로그램 가능한 병렬 I/O를 제어 한다. I/O 포트는 PA0~ PA31로 표기되며, 필요에 따라 주변장치 연결용으로 사용되는 특수기능으로 정의 될 수 있다. 10K pull-up을 내부적으로 사용할 수 있으며, 오픈드레인 출력지원, 1/2이하의 클럭 신호를 무시하는 글리치 필터 지원, 각 핀 별로 인터럽트 발생이 가능 하다.

클럭이 공급되어야 동작하므로 reset 후에는 클럭을 공급해야 한다. PA0~PA4 까지는 3.3V에서 16mA 까지 출력 가능하고,PA5~PA20 까지는 2mA, PA21~PA31까지는 8mA 까지 출력이 가능하다.

RESET 후 내부 10K pull-up은 사용하지 않으므로 PIO_PUER 레지스터로 pull-up을 설정 해야 한다. 또한 특수 기능을 사용하기 위해서는 RESET 후에 PIO_PER 레지스터를 설정해서 특수기능으로 제어 해야 한다.

I/O출력값을 high로 설정은 PIO_SODR로 하고, low 출력은 PIO_CODE로 한다. 그외에도 출력 는 입력 모드 설정을 해야 한다. 출력을 한번에 하기 위한 별도의 레지스터가 있으며, 오픈드레인 모드로 사용시 pull-up 저항 사용시 3.3V 뿐만 아니라 5V 로직 동작도 가능하다. 추가적으로 각각의 포트는 상승/하강 에지 모드에서 인터럽트 발생이 가능하다.

 

 

* 모든 레지스터는 P0~P31 까지로 동일해 레지스터는 표기하지 않습니다.

 

PIO Controller PIO Enable Register

NAME : PIO_PER , Access Type: Write_only

  • 1: 일반 I/O 모드로 동작

 

PIO Controller PIO Disable Register

NAME : PIO_PDR , Access Type: Write_only

  • 1: 주변장치 용으로 동작

 

PIO Controller PIO Status Register

NAME : PIO_PSR , Access Type: Read_only

  • 0 : 주변장치 용으로 사용 , 1 : I/O 용으로 사용

 

PIO Controller Output Enable Register

NAME : PIO_OER , Access Type: Write_only

  • 1 : 출력으로 설정

 

 

PIO Controller Output Disable Register

NAME : PIO_ODR , Access Type: Write_only

  • 1 : 출력 해제

 

PIO Controller Output Status Register

NAME : PIO_OSR , Access Type: Read_only

  • 1: 출력모드 , 0 : 입력 모드

 

PIO Controller Input Filter Enable Register

NAME : PIO_IFER , Access Type: Write_only

  • 1: 입력에 필터 사용

 

PIO Controller Input Filter Disable Register

NAME : PIO_IFDR , Access Type: Write_only

  • 1: 입력에 필터 사용 안함

 

PIO Controller Input Filter Status Register

NAME : PIO_IFSR , Access Type: Read_only

  • 1 : 필터 사용 상태 , 0 : 필터 사용 안함

 

PIO Controller Set Output Data Register

NAME : PIO_SODR , Access Type: Write_only

  • 1 : high로 출력 함

 

PIO Controller Clear Output Data Register

NAME : PIO_CODR , Access Type: Write_only

  • 1 : low로 출력 함

 

PIO Controller Output Data Status Register

NAME : PIO_ODSR , Access Type: Read_only or Read/Write

  • 1 : 출력이 high로 되고 있다.

 

PIO Controller Pin Data Status Register

NAME : PIO_PDSR , Access Type: Read_only

  • 1 : 논리 상태가 high 임 , 0 : 논리 상태가 low 임

 

PIO Controller Interrupt Enable Register

NAME : PIO_IER , Access Type: Write_only

- 1 : 인터럽트 사용 가능

 

PIO Controller Interrupt Disable Register

NAME : PIO_IDR , Access Type: Write_only

  • 1 : 인터럽트를 사용하지 못하도록 한다.

 

PIO Controller Interrupt Mask Register

NAME : PIO_IMR , Access Type: Read_only

  • 1 : 인터럽트가 허용되어 있다.

 

PIO Controller Interrupt Status Register

NAME : PIO_ISR , Access Type: Read_only

  • 1 : 인터럽트가 발생되었다.

 

PIO Multi-driver Enable Register

NAME : PIO_MDER , Access Type: Write_only

  • 1 : 오픈드레인 모드로 동작

 

PIO Multi-driver Disable Register

NAME : PIO_MDDR , Access Type: Write_only

  • 1 : 오픈드레인 모드 금지

 

PIO Multi-driver Status Register

NAME : PIO_MDSR , Access Type: Read_only

  • 1 : 오픈드레인 모드로 동작한다.

 

PIO Pull Up Disable Register

NAME : PIO_PUDR , Access Type: Write_only

  • 1 : 내부 pull-up 을 사용하지 않는다.

 

PIO Pull Up Enable Register

NAME : PIO_PUER , Access Type: Write_only

  • 1 : 내부 pull-up 을 사용한다.

 

PIO Pull Up Status Register

NAME : PIO_PUSR , Access Type: Read_only

  • 1 : pull-up을 사용하지 않는다. , 0 : pull-up을 사용한다.

 

PIO Peripheral A Select Register

NAME : PIO_ASR , Access Type: Write_only

  • 1 : Peripheral A 가 사용한다.

 

PIO Peripheral B Select Register

NAME : PIO_BSR , Access Type: Write_only

  • 1 : Peripheral B 가 사용한다

 

PIO Peripheral A B Status Register

NAME : PIO_ABSR , Access Type: Read_only

  • 0 : Peripheral A 에서 사용함
  • 1 : Peripheral B 에서 사용함

 

PIO Output Write Enable Register

NAME : PIO_OWER , Access Type: Write_only

  • 1 : PIO_ODSR 을 Write/ Read 가능하게 한다.

 

PIO Output Write Disable Register

NAME : PIO_OWDR , Access Type: Write_only

  • 1 : PIO_ODSR 를 Read 가능하게 한다.

 

PIO Output Write Status Register

NAME : PIO_OWSR , Access Type: Read_only

  • 0 : PIO_ODSR 를 Read 가능하게 한다.
  • 1 : PIO_ODSR 을 Write/ Read 가능하게 한다.

 

 

'공부 > SAM7S' 카테고리의 다른 글

[SAM7S] AT91SAM7S 자료 11  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 10  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 8  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 7  (0) 2012.11.14
[SAM7S] AT91SAM7S 자료 6  (0) 2012.11.14

+ Recent posts