※ 해당 포스트를 작성하는데 있어 아래 링크를 많이 참고하였습니다.
https://blog.naver.com/PostView.nhn?blogId=emperonics&logNo=222039301356
라즈베리파이 시리얼 통신(RaspberryPi Uart Communication)
라즈베리파이 시리얼 통신 안녕하세요. 베어팹의 황제곰 입니다. 이번포스팅에서는 라즈베리파이를 사용해...
blog.naver.com
라즈베리파이4는 기존의 하드웨어적인 UART0와 miniUART(UART1)외에 시리얼 통신 장치를 4개 추가 했습니다. 따라서 굳이 mini UART를 통해 불편하게 여러가지 세팅 후 시리얼 통신을 할 필요가 없어 졌습니다.
라즈베리파이4에서는 아래와 같이 총 6개의 UART가 있고 위에서 말한 하드웨어적인 UART0와 miniUART인 UART1 말고 UART2-5까지의 UART를 사용하면 되기 때문입니다.
[라즈베리파이 4에서 시리얼 통신 설정하기]
라즈베리파이 4에서 UART 2-5를 추가 할당해서 사용하고자 하면 dt-overlay를 수정해 주어야 하는데요. UART관련 dt-overlay는 아래 명령어를 통해 확인해 볼 수 있습니다.
$ dtoverlay -a | grep uart
midi-uart0
midi-uart1
miniuart-bt
uart0
uart1
uart2
uart3
uart4
uart5
pi@raspberrypi:~ $ dtoverlay -h uart3
Name: uart3
Info: Enable uart 3 on GPIOs 4-7
Usage: dtoverlay=uart3,<param>
Params: ctsrts Enable CTS/RTS on GPIOs 6-7 (default off)
위 나온 결과에서 uart3은 4, 5번 핀은 Tx, Rx핀으로 사용되고 ctsrts파라미터를 추가하면 6, 7번 핀이 CTS 및 RTS핀으로 사용된다는 것을 알 수 있습니다.
이 중 uart4이 사용하는 핀에 대한 정보는 아래 명령어를 입력하면 확인 할 수 있습니다.
![](https://blog.kakaocdn.net/dn/C0k5u/btsd1ifNMSQ/j5KfleBSv2UqMuZmz525y1/img.png)
위 나온 결과에서 uart4은 8, 9번 핀은 Tx, Rx핀으로 사용되고 ctsrts파라미터를 추가하면 10, 11번 핀이 CTS 및 RTS핀으로 사용된다는 것을 알 수 있습니다.
그럼 uart4번을 사용하도록 설정해 보겠습니다. 좋아하는 에디터를 사용해서 /boot/config.txt파일을 열어 줍니다.
파일의 마지막 줄에 아래 사진과 같이 "dtoverlay=uart4" "enable_uart=1"을 추가해 줍니다.
$sudo nano /boot/config.txt
-----------------
...
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[all]
dtoverlay=uart4
enable_uart=1
[pi4]
# Run as fast as firmware / board allows
arm_boost=1
...
---------------------
그리고 reboot 해줍니다.
$ sudo reboot
재부팅이 완료되면 라즈베리파이의 8, 9번 핀이 uart4을 위한 핀으로 설정되었는지 확인해보기 위해 아래와 같이 입력해 봅니다.
$ raspi-gpio get 8-9
-------------------------------------------------
GPIO 8: level=1 fsel=3 alt=4 func=TXD4 pull=NONE
GPIO 9: level=1 fsel=3 alt=4 func=RXD4 pull=UP
TXD4, RXD4으로 설정되어 있는것을 확인 할 수 있습니다. 가상 디바이스확인을 위해 아래와 같이 입력해 보면
$ ls -l /dev/ttyAMA*
----------------------------------------------
crw-rw---- 1 root dialout 204, 64 May 6 14:49 /dev/ttyAMA0
crw-rw---- 1 root dialout 204, 65 May 6 14:49 /dev/ttyAMA1
$ ls -l /dev/ttyS0
'기타 > IoT' 카테고리의 다른 글
라즈베리파이4 구성도 (0) | 2023.06.06 |
---|---|
라즈베리파이 - 온습도 센서 연결 (0) | 2023.05.06 |
라즈베리파이4 핀과 설계 (0) | 2023.05.06 |
라즈베리파이 4 세팅 시작 (0) | 2022.10.23 |