ttyTHS1은 Jetson nao의 40Pin 헤더로 출력된다. 8번핀과 10번핀, 그리고 그라운드를 연결하여 GPS나 외부 UART를 붙혀서 사용할 수 있다. 

     

     물론, 해당 40핀은 디폴트로 Debug 포트로 이용된다. 따라서 표준 STD UART로 이용하기 위해서는 Debug 기능을 제거 하던지 아니면 ttyTHS2를 사용할 수 있도록 DTB를 수정해야 한다. 필자가 지금 진행해야 하는 부분에서 시간이 있다면 Alternative 기능을 이용해서 ttyTHS2를 살리겠지만, 당장 설정하기는 힘들고 해서 Debug 포트의 기능을 제거하는 것으로 처리하고자 한다. 

     

    방법은 단순하다. 

     

    Jetson Nano의 동작을 보면 부팅할 때 예를들면 부트로더라던지 이런 메시지가 표시되지 않고, 리눅스 로그인 메시지가 출력된다. 따라서 아마도 커널이 시작되고 서비스에서 해당 기능을 설정하는것 같은 느낌이다. 물론, 확실하지 않아서 검색을 한 결과 아래와 같이 간단한 명령을 통해서 제어할 수 있었다. 

     

    1. nvgetty 서비스를 중단한다.

    $ sudo systemctl stop nvgetty

     

    2. 해당 서비스를 비활성화 시킨다. 
    $ sudo systemctl disable nvgetty

     

    3. 미니컴 설치

    설정이 완료되었으니 다음 할 일은 minicom을 다운로드 받아서 터미널을 연다.

    $ sudo apt install minicom

     

    4. 미니컴 속성은 적당히 맞춰준다. 

    $ sudo minicom -s

    필자의 경우 115200, 8-n-1, 흐름제어는 모두 없음으로 맞추었다.

     

    5. 윈도우 PC의 테라텀 프로그램을 실행

    Jetson과 Host PC를 시리얼 케이블로 연결한다. Host의 UART를 USB UART케이블을 사용하였다면 크로스젠더와 핀 변환 젠더가 필요할 수 있다. PC와 Jetson이 RX-TX, TX-RX로 연결될 수 있도록 하드웨어 요소를 맞춘다. 

     

    6. 결과확인

    Jetson Nano의 Minicom에서 "Jetson Nano!!!"를 키보드로 입력하면, 아래와 같이 PC의 테라텀에 출력이 되어야 한다. 

    Jetson에서 입력한 문자열

     

    반대로 PC의 테라텀에서 "my PC!!"를 입력하면, Jetson Nano의 Minicom에 해당 문자열이 출력되어야 한다. 

     

    7. 앞서 서비스를 제거하지 않고 그냥 하면 안되나?

      설정 없이 그냥 시리얼 케이블을 연결하면 이런저런 문제가 발생될 수 있다. 

     

    1) PC의 터미널에 오류메시지등이 전송된다. 

    2) PC로 전송하는 데이터가 nvgetty등으로 입력되어 PC로 전송이 되지 않는 경우가 발생할 수 있다. 

       예를들면 10번 입력했는데 2~3번만 출력된다던지.. 반대의 경우에도 문제가 될수 있을거 같고..

     

    어쨋거나 서비스만 제거하면, 급한데로 기능은 이용할 수 있다는것! 시간이 되면 DTB를 수정해서 ttyTHS1는 디버그 터미널로 놔두고 ttyTHS2를 이용한다던지해서 외부와 통신할 수 있다. ttyTHS3은 WiFi 모듈과 연결된다(블루투스 때문에..) 그래서 직접 캐리어 보드를 만들지 않는거나, PCIe에서 UART만 사용하는 보드를 사용하거나 하지 않으면 다른 목적으로는 사용할 수 없다. 

     

    어쨋든... 끝.

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기