MCU는 CPU나 GPU와 다르게 낯설지만, 가장 많이 사용되는 반도체 중 하나다. ST 시스템 솔루션 랩의 유지 카와노 매니저에게 MCU의 활용성과 가능성이 얼마나 큰지 들어보자.
“‘X-NUCLEO-GNSS1A1’ 지도상 궤적 구현 가능”
지도상 자신의 위치 확인/로그 기록
NMEA 메시지 모니터·기록 송신 가능
[편집자주]일반적으로 반도체라 하면 컴퓨터의 CPU와 메모리처럼 일반인에게 익숙한 반도체를 떠올리기 마련이다. 반면에 전자제품 구동을 위해서 핵심 반도체로 쓰이는 MCU(Micro Controller Unit)의 경우 일반적으로 우리가 쉽게 접하는 모든 전자제품에서 사용되고 있으면서도 일반인에게는 아직 낯선 반도체다. 이런 MCU가 최근 반도체 부족 사태로 인해 언론에 오르내리며, 일반인들에게 주목받기 시작했다. 이에 본지는 MCU 반도체 전문기업인 ST마이크로일렉트로닉스의 유지 카와노 매니저의 연재기고를 통해 MCU에 대해 전문적으로 알아보는 자리를 마련했다.
ST마이크로일렉트로닉스의 범용 32bit 마이크로 컴퓨터 개발 보드 ‘NUCLEO-F401RE’와 GNSS 측위 IC를 탑재한 기능 확장 보드 ‘X-NUCLEO-GNSS1A1’을 사용해 지도상의 트래킹을 시도해 보겠다(Global Navigation Satellite System : 세계 위성 항법 시스템).
확장 보드에 탑재된 차재용 GNSS 측위 IC는 ‘Teseo III’라 하며, ST의 GNSS 모듈 ‘Teseo-LIV3F’로 설치돼 있다. 이번에는 간단하게 세부 설정이 가능한 GUI 툴로 조작해, 지도상에서 자신의 위치를 트래킹/로그하는 부분까지 해 보겠다.
■ 우선, 하드웨어 준비
NUCLEO-F401RE와 X-NUCLEO-GNSS1A1을 접속. NUCLEO-F401RE는 GUI 툴 내에 이미 대상 애플리케이션이 구비되어 있다.
또한 X-NUCLEO-GNSS1A1에 동봉된 안테나는 동작 확인 시 접속한다.(여기에서는 미접속 상태여도 OK).
■ 다음으로 소프트웨어를 준비
○ STM32CubeProgrammer 인스톨(이미 인스톨이 완료되었다면 건너뛰기)
처음으로 PC에서 STM32NUCLEO 보드를 사용할 경우, STM32CubeProgrammer(이전 툴 : ST Link Utility)를 인스톨해, COM 포트 드라이버 등을 준비한다.
이 툴은 STM32의 보드 상에 펌웨어 프로그램을 기록할 때 필요다다.
다운로드 파일을 푼 후, 실행 파일을 열어 안내에 따라 인스톨한다. 이미 STM32CubeProgrammer를 인스톨한 경우, 이 작업은 할 필요가 없다.
○ GUI 툴 준비(TESEO-SUITE)
이 페이지에서 툴의 인스톨 파일을 내려받아 PC에 인스톨한다.
■ TESEO-SUITE를 기동
○ STM32 NUCLEO에 펌웨어를 기록
TESEO-SUITE 인스톨이 종료되면 STM32 Nucleo 보드(+X-NUCLEO-GNSS1)를 PC에 USB로 접속한 상태에서 TESEO-SUITE를 기동시킨다.
NUCLEO-F4O1RE에는 아직 펌웨어가 들어 있지 않으므로 Teseo-LIV3F 모듈과 PC를 UART에 접속시키기 위해 VirtualCOMport로 동작하는 펌웨어를 다음의 조작으로 기록합니다.
메뉴 바의 ‘툴’에서 Tools>X-NUCLEO-GNSS1을 선택.
팝업 창 내의 ‘Update my STM32-NUCLEO board for X-NUCLEO-GNSS’를 클릭.
펌웨어 선택 화면에서 STM32_Nucleo64-xxxxx_UARTBridge.bin을 선택한 상태로 Upload가 있는 곳의 STM32 Nucleo 보드의 이미지를 클릭한다(STM32_Nucleo64-xxxxx_I2CBridge.bin도 선택 가능. 여기서 UART/I2C는 GNSS 모듈 -STM32간의 인터페이스를 선택한다. 모두 동작 가능하다).
이것으로 기록이 완료. 여기서 TESEO-SUITE를 한 번 닫아 종료시킨다.
■ 동작 확인
보드를 PC에 USB로 접속하고, 안테나도 접속한 상태에서 TESEO-SUITE를 재기동시킨다.
정상적으로 동작할 경우, TESEO-SUITE가 자동으로 인식돼, Signal Level 창과 Sky View 창이 표시된다.
이 2개 외에도 각종 정보 창은 메뉴 바 아래의 아이콘으로 표시 및 비표시할 수 있다.
Signal Level : 현재 보충 중인 위성의 정보를 표시.
Sky View : 자신을 중심으로 어떤 위치에 어떤 위성이 있는지, 천구 지도상에 표시.
위성 시그널 레벨
천구 위성 지도
○ 지도상에서 자신의 위치를 확인/로그 기록
메뉴 바 아래의 ‘Open Map’ 아이콘을 클릭하면, 지도창이 표시된다.
이동하면서 로그를 기록하고자 할 경우, ‘Start/Stop Recorder Control Port’ 아이콘을 사용한다. 클릭하면 기록이 시작되고, 다시 한 번 클릭하면 기록이 정지된다.
로그 파일은 디폴트로 C:\Users(use name)\Documents\ST_Teseo_Suite\Logs에 저장된다. 저장 경로를 변경하고자 할 경우, 메뉴의 바의 파일에서 File>Preferences를 선택한다. Preferences 창 내의 ‘NMEA/BINARY/DEBUG log path’로 설정할 수 있다.
지도상에서 마우스를 우클릭한 후, 메뉴에서 ‘View Settings’를 선택하면, 지도 오른쪽에 설정 틀이 표시된다. 이동한 궤적을 표시하고자 할 경우, ‘History’에 체크해 둔다.
상기와 같은 조작으로 지도상의 궤적을 확인, NMEA 로그로 기록할 수 있다.
저장한 로그 파일은 player 창에서 재생할 수 있다. 재생 시, 지도 창을 열어 두면 궤적의 모습을 체크할 수 있다.
○ 빌딩 주변 걷기
도심의 빌딩 사이를 걸어 봤을 때의 궤적이다. 여기에서는 GPS, GLONASS, QZSS를 On으로 하여 데이터를 취득했다.
○ NMEA 메시지 확인하기
메뉴 바 아래의 ‘View Monitor’ 아이콘을 클릭하면, NMEA 메시지를 직접 모니터할 수 있다.
디코드된 정보가 표시되어 위도 경도 데이터 등을 직접 모니터할 수도 있다. NMEA 명령어를 script로 기록해 송신할 수도 있다. 오른쪽의 파일 설정 화면에서는 표시할 메시지를 필터링할 수 있다.
NMEA Command 창에서 명령어를 송신할 수도 있습니다. Send commands 아이콘을 클릭한다.
$PSTMDUMPALMANAC 명령어를 송신하여(메모리 내의 위성 궤도 데이터 읽기),
$PSTMALMANAC 메시지를 수신한 예
■ 결론
어떤가. 다음은 GNSS 모듈 내의 설정을 변경하는 방법에 대해 살펴보겠다.