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
PIO Controller PIO Disable Register
NAME : PIO_PDR , Access Type: Write_only
PIO Controller PIO Status Register
NAME : PIO_PSR , Access Type: Read_only
PIO Controller Output Enable Register
NAME : PIO_OER , Access Type: Write_only
PIO Controller Output Disable Register
NAME : PIO_ODR , Access Type: Write_only
PIO Controller Output Status Register
NAME : PIO_OSR , Access Type: Read_only
PIO Controller Input Filter Enable Register
NAME : PIO_IFER , Access Type: Write_only
PIO Controller Input Filter Disable Register
NAME : PIO_IFDR , Access Type: Write_only
PIO Controller Input Filter Status Register
NAME : PIO_IFSR , Access Type: Read_only
PIO Controller Set Output Data Register
NAME : PIO_SODR , Access Type: Write_only
PIO Controller Clear Output Data Register
NAME : PIO_CODR , Access Type: Write_only
PIO Controller Output Data Status Register
NAME : PIO_ODSR , Access Type: Read_only or Read/Write
PIO Controller Pin Data Status Register
NAME : PIO_PDSR , Access Type: Read_only
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
PIO Controller Interrupt Mask Register
NAME : PIO_IMR , Access Type: Read_only
PIO Controller Interrupt Status Register
NAME : PIO_ISR , Access Type: Read_only
PIO Multi-driver Enable Register
NAME : PIO_MDER , Access Type: Write_only
PIO Multi-driver Disable Register
NAME : PIO_MDDR , Access Type: Write_only
PIO Multi-driver Status Register
NAME : PIO_MDSR , Access Type: Read_only
PIO Pull Up Disable Register
NAME : PIO_PUDR , Access Type: Write_only
PIO Pull Up Enable Register
NAME : PIO_PUER , Access Type: Write_only
PIO Pull Up Status Register
NAME : PIO_PUSR , Access Type: Read_only
PIO Peripheral A Select Register
NAME : PIO_ASR , Access Type: Write_only
PIO Peripheral B Select Register
NAME : PIO_BSR , Access Type: Write_only
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
PIO Output Write Disable Register
NAME : PIO_OWDR , Access Type: Write_only
PIO Output Write Status Register
NAME : PIO_OWSR , Access Type: Read_only