본문 바로가기

IT 인터넷

RS-232 UART serial 케이블 이상유무 확인법

타겟 보드를 가지고 디버깅을 막 시작할 때..
 
시리얼 통신.. RS-232.. UART로 뭔가를 하려고 할 때..
 
입출력이 전혀 안되는 상황에서.. 아주 기초적인 체크포인트긴 하지만..
 
혹시나 시리얼 케이블이 단선된건 아닌지.. 핀맵이 잘못된건 아닌지 확인해보고 싶을 때가 있다..

아는 사람들은 이미 알겠지만.. 간단한 팁이 있다..
 
뭘 이런걸 포스팅하나 싶지만.. 케이블 단선이나 핀맵 오류로 의미없는 삽질한적이 꽤나 자주 있었다.. ㅡ.ㅡ
 
확실히 정상 동작하는 다른 타켓 보드가 있으면 연결해서 확인해보면 간단하겠지만..
 
그도 없을때.. 이렇게 확인해 보면 되시겠다.. 간단하니 알아두면 좋겠다..
 
9pin RS232 cable socket의 핀맵은 이러하다..
 

2, 3번이 각각 RX, TX 크로스로 연결되며, 5번이 GND이다..
 
RS232, UART 통신은 기본적으로 꼭 필요하다..
 
원리는 간단하다..
 
PC에 연결한 케이블의 TX-RX를 쇼트시켜서.. PC에서 보내는 출력을 케이블을 통해서..
 
RX로 Loop back 받아서 확인하는 것이다..
 

 
자세히 보면 소켓에 핀번호가 친절히 적혀있다..
 

 
PC에 케이블 한쪽을 연결하고.. 디바이스 타겟에 연결되는 소켓 측 (PC에 연결된 케이블 끝부분)에 RX, TX를 쇼트시켜준다..
 
PC에 연결된 케이블 반대편이 Male type이라면 점퍼로 쇼트 시켜주면 간단하고..
 
Female type이라면 클립이나 점퍼를 꼽은 핀헤더를 연결하면 된다.
 
없으면 핀셋이든 뭘로든 전도체로 쇼트 시키면 되시겠다.. (칼, 가위, 전선 나부랭이 전도체 뭐든..)
 
양쪽을 저렇게 하는것이 아니라.. ㅡ.ㅡ
 
PC에 연결된 반대쪽 끝 하나만 저렇게 하는거다.. 케이블이 정상인지 체크하는 것이니.. ㅡ.ㅡ
 
혹시나 소켓 타입이 사진과 다를까봐 두가지 케이스를 모두 설명하는 것이니 오해없기 바란다..
 

 
 
터미널 프로그램으로 COM port를 열어서 타이핑(TX) 해본다..
 

 
타이핑 한 문자열이 터미널에 출력되면.. 케이블은 정상 동작 하는 것..
 
타이핑 TX로 보낸것이 케이블을 타고.. 되돌아와서 RX로 출력된 것이다.. 물리적인 Loop back..
 
케이블을 분리하거나.. 쇼트시킨 것을 빼고 테스트 해보면 차이점을 바로 알 수 있다..
 
Loop back Tx->Rx가 정상동작 하지 않는 경우에는, 타이핑 해도 아무 반응없다.. 
 
즉, 케이블이 문제가 있다는 것이지..
 
!!주의
 
1. Terminal 설정에 echo 기능이 활성화 되어 있으면, 케이블이 연결되지 않아도 타이핑한 문자가 출력되므로 주의한다.. putty의 경우는 설정메뉴에 Terminal - Line discipline options - Local echo 에 설정되어 있음..
이 설정이 되어 있는 경우에 정상이면 타이핑한 문자가 2번씩 찍히게 된다..
 
2. RX, TX 핀 맵이 반대로 잘못 연결되어 있는 경우에도 위 테스트에서는 정상출력 되시겠다.. 이해되지?
RX, TX 핀맵이 우리가 예상했던것과 반대로 되어 있지만, 결국 연결은 되었으니.. Loop back test는 동작..
하지만 실제 타겟에 연결한 경우에 RX-TX 짝이 맞지 않으니 정상 동작하지 않는다.
(혹시 또 모르지, 운이 좋은건지 나쁜건지.. 타겟도 똑같이 뒤집혀 있으면 정상동작 할지도.. ㅡ.ㅡ)
 
그래서 나는 짧막한 크로스 케이블(2,3.. RX-TX cross)을 하나 가지고 있다.. RS-232 반응 없을때, 혹시나 뒤집힌건 아닌지.. 가장 먼저 중간에 크로스 케이블을 추가하여 연결해 본다. RX, TX, GND만 3핀헤더 소켓으로 뽑아서 PC에 연결하는 경우가 있는데.. 경험상 꽤나 뒤집힌 경우가 많았다.. 여러장치에 케이블을 옮겨가며 사용한다면.. 크로스 케이블 젠더 하나 가지고 있으면 상당히 편하다.
 
3. 2,3,5.. Tx, Rx, Gnd, 3개의 pin map assign이 애초에 잘못되어 있으면 당연히 동작 안하것지..ㅋ
  그럴땐 회로와 데이터 시트를 다시 확인하고, 케이블도 까서 신호는 나오는지.. 찍어본다.. 테스터든.. 오실로스코프든..
 
4. Loop-back은 Baud rate 설정과 상관없이 잘 돌아온다. 주는대로 그대로 받을테니까....
실제 디바이스에 연결할때는 Baud rate, parity, stop bit 등 설정을 디바이스와 동일하게 맞춰줘야 함을 다시 확인하자..
  
 
적고보니 설명이 구질구질하네..
 
그닥.. 마음에 안들지만.. 나중에 다시 고쳐써야겠다.. 그럴일 없을 것 같다...
 
누구라도 자그마한 도움이 되길 바란다..

끝.

반응형