일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 모두의연구소
- Programming
- IoT
- 아트웍
- GPIO
- St
- RTOS
- 전자공학
- TM4C123GXL
- 임베디드
- Developer
- 7 세그먼트
- easyeda
- mcu
- 초보개발자
- bldc
- JLCPCB
- EMBEDDED
- 8051
- CCS
- 마이컴
- Embedded System
- Arm
- PCB
- m4
- TI
- TM4C123
- MAC OS
- terminal
- 임베디드시스템
- Today
- Total
Engineering Agit
[Session 02 TM4C123GXL Study 02] - GPIO 02 본문
[Session 02 TM4C123GXL Study 02] - GPIO 02
Sean_Kim95 2020. 8. 7. 15:29#3 Function Description
각각의 GPIO port는 위의 두 그림과 같이 동일한 물리적인 block으로 분리되어있다. 우리가 다루는 TM4C123GH6PM의 경우에는 GPIO port가 6개 존재하므로 이러한 물리적인 GPIO block이 6개 존재한다. 주의할 것은 모든 포트의 핀들이 이것에 심어져있는 것이 아니라는 점인데, 어떤 핀들은 on-chip peripheral module들의 I/O signal 기능을 한다. 예를들어 GPIO 핀이 alternate HW function으로 사용되는 것은 아래의 표에서 찾아볼 수 있다.
1. Data control
위의 그림에서 GPIODATA reg.와 GPIODIR reg.가 이에 해당된다. 이들 register들은 GPIO의 작동 mode를 SW적으로 설정할 수 있게 한다. GPIODIR reg.의 경우에는 input과 output을 설정할 때 사용되며, GPIODATA reg.는 들어오는 데이터를 잡아두거나 나가는 데이터를 pad에 올리는 역할을 한다.
1.1 Data direction operation
앞서 얘기했듯이 GPIODIR reg.는 각 핀을 input으로 할 지, output으로 할 지 설정할 수 있는 reg.이다. 만약에 GPIODIR reg.의 한 bit가 '0'으로 되었을 때, 해당 핀은 input으로 설정되고 이에 상응하는 GPIODATA reg.의 bit에 값이 저장된다. 반대로 '1'로 set되면 해당 핀이 output으로 설정되고 상응하는 GPIODATA reg. bit의 값은 해당 핀으로 나가게된다.
1.2 Data register operation
SW의 효율성을 위하여 각각의 포트는 GPIODATA reg.의 각각의 bit들을 address BUS의 [9:2]bit들을 mask로 이용함으로써 수정하는 것을 허용한다. 이러한 방식으로 SW driver는 한번의 instruction에 각각의 GPIO 핀들을 다른 핀들의 상태에 영향을 주지 않고 수정할 수 있다.
- Writing process: 만약에 data bit가 '1'로 set되면 GPIODATA reg.가 바뀌고, '0'으로 clear되면 바뀌지 않는다.
- Reading process: 만약에 data bit와 연관된 address bit가 '1'로 set되면 그 값이 읽어지고(1인지 0인지), '0'으로 clear되면 실제 값에 관계없이 data bit는 '0'으로 읽혀진다. 따라서 이 의미는 input data를 읽기 위해서 address bit가 '1'로 되어 있어야 한다.
Tiva™ C Series TM4C123GH6PM Microcontroller Data Sheet (Rev. E)
'Embedded Lab. @ Modu inst. > 2020 Session 02 (2020.06~)' 카테고리의 다른 글
[Session 02 TM4C123GXL Study 01] - How to create new project in CCS (0) | 2020.09.25 |
---|---|
[Session 02 TM4C123GXL Study 02] - GPIO 03 (0) | 2020.08.22 |
[Session 02 TM4C123GXL Study 03] - Programming methods with CCS (0) | 2020.08.11 |
[Session 02 TM4C123GXL Study 02] - GPIO 01 (0) | 2020.07.28 |
[Session 02 TM4C123GXL Study 01] - TM4C123GXL 개발환경 (0) | 2020.07.20 |