IoT/RaspberryPi

[Raspberry Pi 3 B] 라즈베리파이3과 PC간 시리얼 통신하기 (USB to TTL)

쩡 (개발꿈나무) 2020. 12. 24. 09:05

* 개인 공부 환경에서 기록 용도로 작성된 글입니다.

 

* 원래 라즈베리파이4로 작업을 하다가, 부팅 이미지 변강하려고 부트 설정 막 바꾸다가 부팅시스템깨짐. 눈물 ㅠㅠ fsdk?로 복구하라던데, 난 단순히 이미지랑 로그 설정 건드린거니까 내부가 아예 깨지진 않았을 것 같고.. 일단 잘 아는 지인에게 수리를 부탁했다. 내가 하면서 글도 적고 싶었는데, 지금 시간이 너무 없어서..ㅠ (사진추가예정)

 

1. 라즈베리파이 설정

블루투스 꺼주기

: 시리얼 통신과 블루투스의 포트(?)가 서로 겹쳐서, 정상적으로 시리얼 통신을 하려면 블루투스를 꺼줘야 한다고 한다.

sudo nano /boot/config.txt

해당 파일을 열어 맨 끝에 하단 문장을 추가한다.

dtoverlay=pi3-disable-bt

블루투스 컨트롤러 정지

sudo systemctl disable hciuart

==> 재부팅 (sudo reboot -h가 무슨 옵션인지 확인해보기)

정상 적용 확인

dmesg | grep Bluetooth

했을 때, [숫자] 블루투스 : 어쩌구저쩌구 하는 로그 메시지들이 뜨지 않는다면 성공이다.

 

시리얼 포트 활성화 및 시리얼 콘솔 비활성화

: 시리얼 콘솔이 뭔지부터 정확히 모르겠다. 파이 BIOS모드 같은걸로 들어가서 5번 메뉴의 6번 시리얼 항목 선택 후에 enable 관련해서 yes눌러주고 그랬는데, 포트랑 콘솔 둘 다 enable되기도 했고 음음..

결론은 그냥 인터페이스 모드에선 인터페이스 설정으로 사용하자.

(메뉴사진 + 설정사진)

 

2. USB 연결하기

: 라즈베리파이의 gnd, tx, rx <=> PC의 gnd, rx, tx 를 서로 연결하고 (tx와 rx를 연결하는 것에 주의),

USB를 꽂는다. 내 경우엔 usb to ttl 사용. (사진 추가 예정)

 

3. 통신해보기

- 포트 확인

컴퓨터

lsusb

ttyUSB0 (처음에 인식 안 됐는데, 노트북의 해당 포트가 그냥 인식이 안 되는 거였음. lsusb 쳤을 때 아예 목록에도 안 뜨면 유에스비나 포트 단자에 문제가 있는거임)

라즈베리파이

ttyAMA0인줄 알았는데, ttyS0이었음. AMA는 블투라는 말도 있고, 얘는 연결된게 뭔지 확인하는 방법을 모르겠다ㅜ

- 속도 확인 및 맞추기

stty -F 포트 [속도]

- 권한 주기

chmod 777 (따로 설정해주지 않는 이상, 터미널 껐다 켤 때마다 다시 줘야함)

 

PC

sudo cat /dev/ttyUSB0

라즈베리파이

echo "hi, JJung" > /dev/ttyS0

: 깨진다. 이유 찾아서 추가 예정

(결과 사진)

 

* 현재 졸려서 3번부터 정리가 잘 안 됐음ㅜ

 

-->21.01.11 깨져서 putty 로 해봤는데 화면이 안 떴었다.

그래서 다시 원래 방법대로 했는데 갑자기 안 깨진다 ㅜㅜ 진짜 그대로 했는데요..

pc (ubuntu)

pi 3