센서 제어 및 인터페이스 (1) - 라즈베리파이 4 vs 라즈베리파이5

2025. 5. 4. 23:17·Linux/Embedded Linux (Rpi)
728x90

지금까지는 라즈베리파이의 전원이 인가된 이후, 시스템이 어떤 순서로 설정값을 불러오고 초기화되어 우리가 하드웨어 자원을 활용할 수 있는 환경이 구성되는지를 살펴보았다.


이제부터는 본격적으로 센서 제어 및 다양한 인터페이스를 사용하는 방법에 대해 학습해보고자 한다.

이전까지는 라즈베리파이 4 모델 B를 기반으로 실습을 진행했지만, 앞으로는 더 많은 기능과 확장된 인터페이스를 제공하는 라즈베리파이 5를 활용해 학습을 이어갈 예정이다.


 

 

라즈베리파이4 와 라즈베리파이5 비교 / Raspberry Pi Compare

라즈베리파이4 와 라즈베리파이5 비교 [서론] Raspberry Pi 5의 최신 릴리스는 Raspberry Pi 4 출시 후 4년 만에 마침내 데뷔했으며, 성능 향상과 PCIe 2.0 지원을 추가하는 내부 실리콘을 모두 60달러의 시

www.leocom.kr

라즈베리파이4와 5의 인터페이스 구성에 대해서는 위 글에서 아주 자세히 설명되어져 있다. 간단히 정리해보자면 MIPI, PCIe 인터페이스 유/무, 디버그 전용 UART 포트의 유/무로 볼 수 있을 것 같다.

  라즈베리파이4 라즈베리파이5
MIPI CSI/DSI 2-lane 4-lane
MIPI 포트 수 각 1개 총 2개 (겸용)
PCIe 인터페이스 미지원 PCIe 2.0 x1 지원
확장성 제한적 고속 저장장치 및 다양한 장치 연결 가능
UART 6개 6개 + 전용 디버그 UART(ttyAMA10)

단순히 디바이스 트리를 확인해봐도 차이를 느낄 수 있는데, 라즈베리파이5는 하드웨어 I/O 리소스가 라즈베리파이4보다 훨씬 많기 때문에, 이를 관리하고 설정하기 위한 디바이스 트리 노드의 수도 자연스럽게 더 많은 것을 확인할 수 있다.


라즈베리파이5에서는 config.txt에서 UART를 별도로 활성화하지 않아도 디버그용 UART인 ttyAMA10이 기본적으로 활성화되어 /dev 폴더에서 확인할 수 있지만, 라즈베리파이4는 해당 UART 핀이 존재하지 않기 때문에, 동일한 설정 상태에서는 /dev에서 ttyAMA10을 찾을 수 없는 것을 확인할 수 있다.

 

uart 사용을 위해서 config.txt를 수정했을 때에도 차이점이 확연히 드러나는데, "enable_uart=1"로 uart를 활성화 했을 때 차이를 아래에서 확인할 수 있다.

  Raspberry Pi 4 Raspberry Pi 5
기본 UART 디바이스 ttyS0 (Mini UART) ttyAMA10 (PL011 디버깅용 UART)
/dev/serial0 → ttyS0 ttyAMA10
Serial Console  ttyS0에 할당됨 ttyAMA10에 할당됨
Serial Port  사용 가능 (단, Console 점유 시 충돌 위험) 기본적으로 사용자용 포트 없음
GPIO 연결 GPIO14 (TXD), GPIO15 (RXD) 기본값으로는 연결 안 됨 (Device Tree 설정 필요)
용도 범용 UART로 사용 가능 디버깅 전용 UART에 Console 전용 배정됨

 

Serial Console UART를 Linux 콘솔 출력으로 사용하는 옵션 전원 켤 때부터 UART로 부팅 로그, 로그인 프롬프트가 출력
Serial Port 사용자 애플리케이션이 UART를 통해 외부 기기(센서, MCU 등)와 통신할 수 있도록 UART 포트를 활성화


결국 위의 내용을 정리하자면, 단순히 enable_uart=1만으로는 부족하며, serial port와 serial console의 분리, GPIO 핀 매핑, udev 링크 재설정, 커널 로그 제거 등 세부적인 설정을 각각의 모델에 맞게 해야 외부 기기와 안정적인 UART 통신이 가능하다는 것이다.

📌 라즈베리파이 4의 경우

  • 기본적으로 ttyS0가 serial0으로 설정되어 있으며, GPIO 14/15(UART0)가 외부 UART로 사용 가능.
  • enable_uart=1만으로 대부분의 경우 외부 통신이 가능.
  • 다만, serial console이 활성화되어 있으면 UART가 커널 메시지를 출력하는 용도로 사용되므로 충돌 가능 → console=serial0,115200 제거 필요.

📌 라즈베리파이 5의 경우

  • 기본 UART는 디버깅 용도인 ttyAMA10이 serial0으로 지정되어 있음 → 외부 기기와의 통신 불가.
  • 외부 UART를 사용하려면 다음 추가 설정 필요:
    1. dtparam=uart0=on → GPIO 14/15에 UART0 매핑
    2. /boot/firmware/config.txt 또는 /boot/config.txt에서 serial0이 ttyAMA0을 가리키도록 Udev rule 수정 또는 dtoverlay=uart0 적용
    3. console=serial0,... 같은 콘솔 설정 제거

아니면 기본 UART는 Console용으로 할당 하고, 다른 UART를 사용는 방법도 있다. 라즈베리파이는 SoC 내에 여러 개의 UART를 제공하며, 이를 활성화하고 핀에 할당하면 ttyAMA0, ttyAMA1, ttyAMA2 등의 이름으로 사용할 수 있다.

 

728x90

'Linux > Embedded Linux (Rpi)' 카테고리의 다른 글

리눅스 시스템 구조와 부트 과정 이해(5) - 디바이스 트리  (0) 2025.05.04
리눅스 시스템 구조와 부트 과정 이해(4) - Bootloader  (0) 2025.05.03
리눅스 시스템 구조와 부트 과정 이해(3) - 시스템 콜  (0) 2025.05.03
리눅스 시스템 구조와 부트 과정 이해(2) - 임베디드 리눅스에서의 UART  (0) 2025.05.03
리눅스 시스템 구조와 부트 과정 이해(1) - dmesg, 부트로더  (0) 2025.04.20
'Linux/Embedded Linux (Rpi)' 카테고리의 다른 글
  • 리눅스 시스템 구조와 부트 과정 이해(5) - 디바이스 트리
  • 리눅스 시스템 구조와 부트 과정 이해(4) - Bootloader
  • 리눅스 시스템 구조와 부트 과정 이해(3) - 시스템 콜
  • 리눅스 시스템 구조와 부트 과정 이해(2) - 임베디드 리눅스에서의 UART
Dinoj
Dinoj
  • Dinoj
    AlOG
    Dinoj
  • 전체
    오늘
    어제
    • 분류 전체보기 (201)
      • Python (0)
        • COMPUTER VISION (18)
        • Pytorch (1)
      • PCB 이론 (13)
        • PI (2)
        • SI (11)
      • 회로 이론 (63)
        • 기타 학습 (20)
        • UVM (Universal Verification.. (12)
        • AI HARDWARE (12)
      • PROJECTS (29)
        • AI 가속기 (10)
        • 영상 처리 (3)
        • UVM (Universal Verification.. (2)
        • CPU 설계 (5)
        • CMOS VLSI (2)
        • Verilog (2)
        • Firmware (2)
        • C 언어 (2)
        • 기타 프로젝트 (1)
      • Linux (20)
        • Embedded Linux (Rpi) (7)
        • Petalinux (7)
        • Linux 기초 (6)
      • AMBA BUS (16)
        • AXI BUS (5)
        • APB BUS (2)
        • Vitis (8)
      • AI SOC COURSE (53)
        • 영상 처리 (5)
        • SYSTEM VERILOG (CPU 설계) (20)
        • VERILOG 기초 (5)
        • CMOS VLSI (7)
        • FIRMWARE (9)
        • C PROGRAMMING (1)
        • Python (Keras) (6)
      • 코딩 지식 (5)
        • SYSTEM VERILOG (3)
        • TCL (2)
      • TISTORY (1)
  • 블로그 메뉴

    • 홈
    • 글쓰기
    • 관리
    • Info
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
Dinoj
센서 제어 및 인터페이스 (1) - 라즈베리파이 4 vs 라즈베리파이5
상단으로

티스토리툴바