라즈베리 파이 3에서 UART(Serial 통신) 이용하기


2018년 4월 라즈베리 제단에서 Pi3의 Upgrade 버전인 3 B+를 판매하기 시작했다.

파이 데이라는 3월 14일 발표는 못했지만 그래도 업그레이드된 형태로 발표를 했다.

CPU속도도 1.2GHz(Pi3B)에서 1.4GHz(Pi3B+)로 바뀌었고 이더넷도 1GHz를 지원하며 WiFi는 802.11b/g/n/ac Dual-Band에 블루투스는 4.2를 지원한다고 한다.

외형적으로도 CPU, USB & LAN Controller, WiFi & Bluetooth 칩셋에 금속성 케이스를 덧대서 좀더 발열에 신경쓴 듯한 모습을 보이고 있다.

단, 칩셋의 위치가 바뀌어 방열판을 추가할 경우 기존 Pi3에서 사용하던 케이스와 트러블이 있을 수도 있다.

또한 PI 3 B+는 기본 2.5A를 필요로한다. 따라서 기존에 사용하던 스마트폰 충전기가 2.5A미만일 경우 제대로 동작하지 않을 수있다.

게다가 PI와 연결하고 PI에서 전원을 공급받는 형태의 외부장치를 이용한다면 최소 3.0A이상의 전원공급 아답터를 이용하는게 좋다.

여기까지는 단순한 Pi3 B+의 바뀐점을 나열하였고...


새로 구입한 PI를 이용해서 Serial작업을 하기 위해 GPIO를 이용하는 방법을 사용하고자 작업중이었다.

문제는 PI 2에서 정상적으로 작동하던 GPS가 똑같은 GPIO를 사용해서 PI 3에는 동작하지 않는다는 것이였다.

참고로 PI의 GPIO Pin을 이용한 UART 통신방법은 GPIO14(TX), GPIO15(RX)를 이용한다.



minicom을 이용하는 방법, Python이나 C를 이용하여 직접 접근하는 방법등 여러 방법을 사용해봤지만 반응이 없었다.

그러다 혹시 내부적으로 충돌이 있어서 그런것이 아닌가 확인을 해보다 다음 링크를 발견했다.

https://www.raspberrypi.org/forums/viewtopic.php?t=198158

결론적으로 Bluetooth와 GPIO의 UART가 서로 같은 IO를 이용하기 때문에 둘중 하나는 사용하지 못한다는 것이고 Bluetooth가 기본으로 설정되어있어 UART가 반응이 없었다는 이야기이다.

일단 현재 Bluetooth를 이용해서 작업할 일은 없고 키보드, 마우스도 무선 동글을 따로 사용해서 이상은 없지만 추후 Bluetooth를 같이 이용할 경우라면 문제가 될지도 모르겠다.

어쨌든 지금은 Bluetooth를 Disable시키고 UART를 Enable시켜주면 됨으로 다음과 같이 처리하면된다.

/boot/config.txt의 마지막 줄에 다음 두줄을 추가해주면 된다.


enable_uart=1

dtoverlay=pi3-disable-bt



추후 Bluetooth를 사용하고 싶다면 두줄을 주석처리('#')해주면 된다.


혹시 이글을 보는 사람중에 UART와 Bluetooth를 둘다 사용하고 싶은 경우가 있을 것이다.

그럴경우라면 위 두줄을 주석처리하고 USB<->UART 장치를 구하거나 만들어서 이용하는게 좋을 것이다.


P.S. : 위와 같이 했는데 serial permission denied가 나올 경우

sudo raspi-config 를 한 후 Interface의 Serial부분에서 login은 Disable하고 Serial 은 Enable을 해주어야한다.


Posted by codebank
,