[Raspberry Pi] 통신

강기호·2022년 9월 29일
0
post-custom-banner

UART 핀

Board pin으로 8, 10 , BCM 으로 14,15번 핀이 각각 시리얼 통신을 위한 TX(transmit), RX(receive)핀

아래 명령어를 통해 라즈베리파이에서 사용가능한 핀 상태를 확인할 수 있다.

raspi-gpio funcs
cf) 명령어 동작안하면 sudo apt install raspi-gpio으로 패키지 설치

 14, 15번 정보 확인하면 TXD0, RXD0은 하드웨어적인 UART(PL011)이고 TX1, RX1는 소프트웨어 적으로 구현된 miniUART

  하드웨어적인 UART와 달리 소프트웨어적으로 구현된 miniUART는 패리피 비트 설정이 안되고 CPU 클럭에 따라 통신 속도의 영향을 받는 등 기능적인 제한 있다.

라즈베리파이4 에서는 기존의 하드웨어적인 UART0와 miniUART(UART1)외에 시리얼 통신 장치 4개를 추가 되었다. (UART0에는 블루투스 통신용으로 할당해 놓았다.), UART1은 miniUART이고 단점이 존재하는데 제대로 동작하기 위해서는 라즈베리파이의 gpu클럭을 고정주파수로 설정해야 한다.

위에서 말한 하드웨어적인 UAR0T와 miniUART는 각각 라즈베리파이의 /dev/ttyAMA0, ttyS0와 매핑 되어 있고, 아래 명령어를 통해 확인해 보면 매핑된 시리얼 디바이스들을 확인 할 수 있습니다.

ls /dev/tty*

  라즈베리파이4에서는 총 6개의 UART가 있고, 하드웨어적인 UART0와 miniUART인 UART1 말고 UART2-5까지의 UART를 사용하면 된다.

통신 설정

  • UART 2-5를 추가 할당해서 사용하고자 하면 dt-overlay를 수정해 주어야 한다.

    dtoverlay -a | grep uart

  • 이중에서 uart3이 사용하는 핀에 대한 정보는 다음과 같다.

    dtoverlay -h uart3

  • uart3은 4,5번 핀은 Tx, Rx 핀으로 사용되고 , ctsrts 파라미터를 추가하게 되면 6,7번 핀이 CTS, RTS 핀으로 사용될 수 있다.

[uart3번을 사용하기]

에디터를 이용하여 /boot/config.txt 파일 열기

sudo nano /boot/config.txt

마지막 줄에 'dtoverlay=uart3'추가 하고 파일을 저장 한 후에 재부팅

post-custom-banner

0개의 댓글