• 전체강좌

    [WAD-MX6W] Windows 10 IoT 에서 UART 테스트하기

    twitter facebook

    안녕하세요? 러찌입니다.


    이번 시간에는 Windows 10 IoT Core OS가 실행된
    WAD-MX6W 보드에서 UART를 테스트해 보았습니다.


    임베디드 개발자 분이라면,

    "UART"란 용어에 익숙하실 거라 생각됩니다.


    왜냐하면 임베디드 보드에 전원을 켜고
    이 보드가 제대로 동작하는지 확인하기 위해서

    가장 먼저 사용하는 것이 UART 포트를 이용한

    Serial 디버그 메세지 일테니까요.


    OS가 제대로 실행되는지,

    부팅되다가 Abort가 발생했는지 등을 확인하기 위해서는
    UART 포트를 이용한 Serial 디버그 메세지를 대부분 활용합니다.


    i.MX6 Quad CPU에는 UART가 최대 5개를 지원합니다.
    Full FlowControl 포트로는 UART1이 지원됩니다.


    i.MX6 CPU가 탑재된 WAD-MX6W 보드에는 아래 사진과 같이

    2개의 Serial 포트를 헤더핀으로 지원하고 있습니다.
    하나는 디버깅을 위해, 나머지 하나는 Serial 연결을 위해 설계되었습니다.



    물론 UART가 더 필요하다고 하면,

    WAD-MX6W 보드의 Extension Interface에 있는
    UART 포트를 사용하실 수 있습니다.


    WAD-MX6W 보드를 지원하는 Windows 10 IoT Core OS 에서는
    UART 디바이스 드라이버를 제공합니다.


    어플리케이션에서는 이 드라이버를 이용하여

    SerialDevice Class에 대한 객체를 생성하고,
    필요한 Serial 동작을 구현하시면 됩니다.


    Microsoft에서는 이러한 Serial 테스트용

    어플리케이션 소스를 제공하고 있습니다.


    바로 ms-iot gitHub 에서 제공합니다.
    Samples 프로그램들 중에

    "SerialUart" 프로그램을 이용하시면 되겠습니다.


    C++과 C#을 사용할 수 있도록

    예제 소스를 둘 다 지원하고 있습니다.


    https://github.com/ms-iot/samples


    SerialUart 프로그램의 소스를 보시면,
    비록 영어이긴 하지만 함수 하나하나에

    Microsoft가 친절하게 주석을 달아 주었습니다.


    주석을 보시고 따라하시면 프로그램을 구현하는데

    어렵지 않으실 거라 생각됩니다.


    소스에 대해 간략히 설명 드리자면,
    프로그램이 실행되면서, ListAvailablePorts 함수를 통해
    사용가능한 Serial 장치들을 받아와서 리스트에 추가합니다.


    "Connect", "Disconnect" 버튼을 만들어서,
    Serial 장치를 연결하거나 해제하도록 하였습니다.


    Serial 장치 연결 시에,

    Baudrate, Stop bit, Data bit, Parity, Flow control 등의
    설정을 하도록 되어 있습니다.


    또한, Serial 데이터 송 수신을 사용자 인터페이스(UI)에

    보여주기 위해, TextBox를 별도로 두었습니다.


    특히 Serial로부터 수신된 데이터를 화면에 보여주기 위해,
    Listen 이라는 함수를 실행하였습니다.
    이 함수에서는 while 문을 반복하며, 수신된 데이터를 기다리다가
    데이터를 수신하면, 화면에 데이터를 보여주도록 구현되어 있습니다.


    Serial 데이터가 언제 수신될 지 모르기 때문에,
    UI와 비동기적으로 동작되도록 만들었습니다.


    구현 소스를 하나하나 확인한다면, 쉽게 이해하실 수 있으실 겁니다.


    위에 설명드린 샘플 소스를 이용해 WAD-MX6W 보드에서 동작시켜 보았습니다.

    아래 영상을 보시면 아시겠지만, 잘 동작됩니다.


    Windows 10 IoT OS를 지원하는 임베디드 보드에서,

    하드웨어적으로 TX, RX, GND 연결을 꼭 확인하시고,

    테스트하신다면, 문제없이 동작을 확인하실 수 있으실 것입니다.


    지금까지 Windows 10 IoT Core OS가 실행되는
    WAD-MX6W 보드에서 UART 동작을 확인해 보았습니다.


    글 읽어 주셔서 감사합니다.
    아래는 관련 영상입니다.

    꼭 한번씩 봐주시면 감사하겠습니다.



    유튜브 채널 구독 부탁 드립니다. 아래 주소에 가시면 쉽게 하실 수 있습니다.


    https://www.youtube.com/channel/UCZuDcO4s6m8lt916Nj5SjcA


    미리 감사드립니다.^^