사용핀 설정

Jetson Nano에서는 40핀 헤더를 다양한 용도로 사용하기 위해 핀의 기능을 설정해야 하는 경우가 있습니다. 이를 위해 NVIDIA에서 제공하는 Jetson-IO 도구를 사용합니다. 이 도구는 GPIO, I2C, SPI, UART 등 특정 기능으로 핀을 설정할 수 있도록 지원합니다.

그림.1   40 헤드핀


Jetson-IO 도구 개요

  • **Jetson-IO 도구**는 Jetson Nano의 핀 멀티플렉싱을 간단하게 구성할 수 있는 인터페이스를 제공합니다.
  • 40핀 헤더의 핀은 기본적으로 GPIO로 설정되지만, 특정 핀은 I2C, SPI, UART 또는 PWM과 같은 다른 기능으로 사용할 수 있습니다.
  • **Jetson-IO는 GUI 및 명령줄 인터페이스를 통해 사용 가능**합니다.

Jetson-IO 도구 설치

Jetson Nano에는 Jetson-IO가 기본적으로 설치되어 있습니다. 설치되어 있지 않다면 다음 명령으로 설치를 확인하고 업데이트할 수 있습니다:

sudo apt update
sudo apt install -y jetson-io


Jetson-IO 실행

Jetson-IO를 실행하려면 다음 명령어를 입력하세요:

sudo jetson-io

Jetson-IO GUI가 실행되며, 여기서 핀 설정을 변경할 수 있습니다.

그림.2   핀설정


핀 설정 단계

1. Jetson-IO 실행

  • 위 명령어로 Jetson-IO를 실행하면 GUI 창이 나타납니다.

2. 핀 기능 선택

  • GUI에서 "Configure 40-pin Header" 옵션을 선택합니다.
  • 사용하려는 기능(I2C, SPI, UART 등)을 활성화합니다.

3. 핀맵 확인

  • 활성화된 기능에 따라 40핀 헤더의 핀맵이 자동으로 변경됩니다.
  • 필요한 핀과 기능을 확인한 뒤 적용합니다.

4. 구성 저장 및 적용

  • "Save and Reboot to Apply" 옵션을 선택합니다.
  • 변경 사항은 Jetson Nano가 재부팅된 후 적용됩니다.

명령줄에서 핀 상태 확인

Jetson Nano의 핀 상태는 /sys/kernel/debug/gpio 파일에서 확인할 수 있습니다:

sudo cat /sys/kernel/debug/gpio


Jetson Nano의 핀 기능 목록

Jetson Nano의 40핀 헤더에서 기본적으로 사용할 수 있는 기능은 다음과 같습니다:

1. 주요사용핀

핀 번호 기본 기능 설정 가능한 추가 기능
3 (SDA) I2C1 SDA GPIO, I2C
5 (SCL) I2C1 SCL GPIO, I2C
7 GPIO PWM
8 UART TX GPIO, UART
10 UART RX GPIO, UART
12 GPIO PWM, GPIO
19 (MOSI) SPI MOSI GPIO, SPI
21 (MISO) SPI MISO GPIO, SPI
23 (SCLK) SPI SCLK GPIO, SPI
24 (CE0) SPI CS0 GPIO, SPI
26 (CE1) SPI CS1 GPIO, SPI

2. 전체사용핀

핀 번호 기본 기능 설정 가능한 추가 기능
1 3.3V Power -
2 5V Power -
3 I2C1 SDA GPIO, I2C
4 5V Power -
5 I2C1 SCL GPIO, I2C
6 GND -
7 GPIO PWM
8 UART TX GPIO, UART
9 GND -
10 UART RX GPIO, UART
11 GPIO GPIO
12 GPIO PWM, GPIO
13 GPIO GPIO
14 GND -
15 GPIO GPIO
16 GPIO GPIO
17 3.3V Power -
18 GPIO GPIO
19 SPI MOSI GPIO, SPI
20 GND -
21 SPI MISO GPIO, SPI
22 GPIO GPIO
23 SPI SCLK GPIO, SPI
24 SPI CS0 GPIO, SPI
25 GND -
26 SPI CS1 GPIO, SPI
27 I2C0 SDA GPIO, I2C
28 I2C0 SCL GPIO, I2C
29 GPIO GPIO
30 GND -
31 GPIO PWM, GPIO
32 GPIO PWM, GPIO
33 GPIO PWM, GPIO
34 GND -
35 GPIO GPIO
36 GPIO GPIO
37 GPIO GPIO
38 GPIO PWM, GPIO
39 GND -
40 GPIO PWM, GPIO

3. 주요 기능 요약

  1. 전원 및 GND 핀:

    • 핀 1, 17: 3.3V 출력
    • 핀 2, 4: 5V 출력
    • 핀 6, 9, 14, 20, 25, 30, 34, 39: GND (접지)
  2. I2C 핀:

    • 핀 3 (SDA), 5 (SCL): I2C1 인터페이스
    • 핀 27 (SDA), 28 (SCL): I2C0 인터페이스
  3. SPI 핀:

    • 핀 19 (MOSI), 21 (MISO), 23 (SCLK), 24 (CS0), 26 (CS1): SPI 인터페이스
  4. UART 핀:

    • 핀 8 (TX), 10 (RX): UART 인터페이스
  5. PWM 핀:

    • 핀 7, 12, 31, 32, 33, 38, 40: PWM 신호 생성 가능
  6. GPIO 핀:

    • 나머지 핀은 기본적으로 GPIO로 설정되어 있으며, 일부는 I2C, SPI, UART, PWM 등으로 설정 가능합니다.

예제: I2C 핀 활성화

Jetson-IO를 사용하여 I2C 핀을 활성화하는 방법을 설명합니다.

  1. Jetson-IO 실행:

    sudo jetson-io
    

  2. I2C 설정:

  3. 메뉴에서 "Enable I2C"를 선택합니다.
  4. I2C1 또는 I2C2를 활성화합니다.

  5. 저장 및 재부팅:

  6. 설정을 저장하고 재부팅합니다.

  7. I2C 디바이스 확인: 재부팅 후, 연결된 I2C 디바이스를 확인하려면 다음 명령을 실행합니다:

    sudo i2cdetect -y 1
    


GPIO 핀 제어를 위한 Jetson.GPIO 라이브러리

Jetson Nano에서 GPIO 핀을 제어하려면 Python의 Jetson.GPIO 라이브러리를 사용할 수 있습니다.

Jetson.GPIO 설치

Jetson.GPIO는 기본적으로 설치되어 있지만, 설치되어 있지 않다면 다음 명령으로 설치 가능합니다:

sudo apt install python3-jetson-gpio

GPIO 사용 예제

import Jetson.GPIO as GPIO

LED_PIN = 18

GPIO.setmode(GPIO.BOARD)
GPIO.setup(LED_PIN, GPIO.OUT)

GPIO.output(LED_PIN, GPIO.HIGH)  # LED ON

Jetson-IO를 사용하면 Jetson Nano의 핀 설정을 GUI를 통해 직관적으로 관리할 수 있어 다양한 하드웨어와의 통합이 용이해집니다. 핀 설정 후 Jetson.GPIO, I2C, SPI 등의 라이브러리를 사용해 원하는 기능을 구현할 수 있습니다.