Engineering Agit

[Session 02 TM4C123GXL Study 02] - GPIO 02 본문

Embedded Lab. @ Modu inst./2020 Session 02 (2020.06~)

[Session 02 TM4C123GXL Study 02] - GPIO 02

Sean_Kim95 2020. 8. 7. 15:29

#3 Function Description

<Fig. 3-1> Digital I/O Pads block diagram
<Fig. 3-2> Analog/Digital I/O Pads block diagram

 각각의 GPIO port는 위의 두 그림과 같이 동일한 물리적인 block으로 분리되어있다. 우리가 다루는 TM4C123GH6PM의 경우에는 GPIO port가 6개 존재하므로 이러한 물리적인 GPIO block이 6개 존재한다. 주의할 것은 모든 포트의 핀들이 이것에 심어져있는 것이 아니라는 점인데, 어떤 핀들은 on-chip peripheral module들의 I/O signal 기능을 한다. 예를들어 GPIO 핀이 alternate HW function으로 사용되는 것은 아래의 표에서 찾아볼 수 있다.

 

<Table 3-1> GPIO pins and alternative functions

1. Data control

 위의 그림에서 GPIODATA reg.와 GPIODIR reg.가 이에 해당된다. 이들 register들은 GPIO의 작동 mode를 SW적으로 설정할 수 있게 한다. GPIODIR reg.의 경우에는 input과 output을 설정할 때 사용되며, GPIODATA reg.는 들어오는 데이터를 잡아두거나 나가는 데이터를 pad에 올리는 역할을 한다. 

<Fig. 3-3> Caution for setting GPIO configurations

 

1.1 Data direction operation

<Fig. 3-4> GPIODIR register information

 앞서 얘기했듯이 GPIODIR reg.는 각 핀을 input으로 할 지, output으로 할 지 설정할 수 있는 reg.이다. 만약에 GPIODIR reg.의 한 bit가 '0'으로 되었을 때, 해당 핀은 input으로 설정되고 이에 상응하는 GPIODATA reg.의 bit에 값이 저장된다. 반대로 '1'로 set되면 해당 핀이 output으로 설정되고 상응하는 GPIODATA reg. bit의 값은 해당 핀으로 나가게된다. 

 

1.2 Data register operation

<Fig. 3-5> GPIODATA register information

 SW의 효율성을 위하여 각각의 포트는 GPIODATA reg.의 각각의 bit들을 address BUS의 [9:2]bit들을 mask로 이용함으로써 수정하는 것을 허용한다. 이러한 방식으로 SW driver는 한번의 instruction에 각각의 GPIO 핀들을 다른 핀들의 상태에 영향을 주지 않고 수정할 수 있다. 

  • Writing process: 만약에 data bit가 '1'로 set되면 GPIODATA reg.가 바뀌고, '0'으로 clear되면 바뀌지 않는다. 

<Fig. 3-6> Writing process example

 

  • Reading process: 만약에 data bit와 연관된 address bit가 '1'로 set되면 그 값이 읽어지고(1인지 0인지), '0'으로 clear되면 실제 값에 관계없이 data bit는 '0'으로 읽혀진다. 따라서 이 의미는 input data를 읽기 위해서 address bit가 '1'로 되어 있어야 한다.

<Fig. 3-7> Reading process example

 

Tiva™ C Series TM4C123GH6PM Microcontroller Data Sheet (Rev. E)
Comments