본문 바로가기
RaspberryPi

[Raspberry Pi] PC와 USB로 SERIAL 연결하기

by TYB 2024. 2. 2.
반응형

HW 결선을 먼저 해준다.

이런 선이고 usb는 컴퓨터에 gpio 핀은 라즈베리파이의 gpio핀에 꽂아주면됨.

USB 케이블 흰색선(RXD)-> 라즈베리파이 TXD(GPIO 14)

USB 케이블 초록색선(TXD)-> 라즈베리파이 RXD(GPIO 15)

USB 케이블 흑색선(GND)-> 라즈베리파이 GND

 

윈도우 장치관리자의 포트 봐보면

 

드라이버 설치 전에는  이렇게 뜬다.

 

 

마우스 오른쪽 클릭으로 디바이스 제거

 

PL2303_Prolific_DriverInstaller_v1_12_0.zip
4.27MB

 

 

 

 

 

 

재부팅하면 뜨죠?

 

 

parity flowcontrol none으로

putty 설정 변경

 

 

 

serial로 선택하고 이름 쓰고 저장

 

다시 load하고 좌측의  serial 들어가서 flow control none 으로 변경!!

 

 

 

이제는 라즈베리파이 설정해야됨

 

 

 

sudo vi /boot/config.txt

 

 

enable_uart=1

추가해주고



sudo vi /boot/cmdline.txt

 yy, 커서가 위치한 줄 복사 p 커서 다음에 붙여넣기 해서 원본 내용 아래에 남겨주고 #으로 주석처리

 

이제 원본을 바꿔보면 기존 tty1을 ttyS0로 바꿔주고,  rootwait 이후 내용은 전부 삭제

명령모드에서 커서이동하고 shift d 누르면 커서 이후로 해당 줄 내용 다 삭제됨

 

이렇게 저장해주고

 

 

putty serial로 되어있는거 연결 열어주고 라즈베리파이 재부팅해주면 시리얼통신 터미널에 부팅 메시지가 

쭈루룩 뜨고

그 후에 로그인까지 잘 되면 굿..!인거임.

만약에 로그인이 안된다? 그러면 usb의 tx라인과 라즈베리파이의 rx라인의 결선이 정상인가? 를 다시 봐야함.

 

 

 

 

UART 관련 지식을 잠시 정리하자면

 

디지털 비트가 PC Tx -> Target Rx로 1로 가다가 0을 주면 그게 uart의 start bit

그 후에 8bit data를 보냄.  MCU에 따라 5~9비트까지 한번에 전송 가능(보통 8비트로 많이 보냄.)

그 뒤에 데이터 에러 여부 확인을 위해 pariry bit를 붙여줌.

짝수 패리티 비트를 쓰면 1의 갯수가 홀수면 1을 붙여서 짝수를 맞춰주고, 1의 갯수가 짝수면 0을 붙여서 짝수를 맞춰주고

홀수 패리티 비트라면 1의갯수가 홀수가 되도록 패리티 비트를 부여해줌

 

데이터를 다 보냈다면 stop bit를 보내야 하는데

서로 동일한 기종일 때라면 상관이 없음.

그러나 이기종 간의 시리얼 통신은 115200으로 딱 안맞음. main cpu clock을 가지고 sampling clock을 만드는데 아주 작은 시간만큼 오차가 생기기 마련임. 보통 5~10%정도의 오차를 가지고 있음.

그 오차의 마진에 걸려서 데이터가 씹히는 경우가 있음.

AVR->ARM간의 uart 통신이 제대로 안되는 경우에는 stop bit를 1bit or 2bit를 부여해가면서 바꿔봐야됨.

stop bit가 1bit로도 잘되면 그대로 하면되고 잘 안된다? 그러면 stop bit가 2bit로 늘려서 clock이 밀리더라도 잘 정지가 되도록 해주면됨. 

 

 

putty에서 serial configuration 하는 부분이 그런 부분인거임.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형