Запускаем ГЛОНАСС-плату X-NUCLEO-GNSS1A1: пошаговая инструкция

24 июля

телекоммуникациисистемы безопасностиавтомобильная электроникапотребительская электроникаинтернет вещейуниверсальное применениеST Microelectronicsстатьябеспроводные технологиисредства разработки и материалыGPSGLONASSGALILEOBeiDou

Оценочная плата X-NUCLEO-GNSS1A1 позволяет начать работу с многосистемным GPS/Galileo/Glonass/BeiDou/OZSS-приемником Teseo III от STMicroelectronics, используя Arduino™ UNOR3, STMorpho, STM32 Nucleo. 

Отслеживание перемещений грузового, пассажирского транспорта, мониторинг пройденного расстояния и маршрута движения служебного или прокатного транспорта являются одними из востребованных и актуальных задач как для бизнеса, так или иначе связанного с автотранспортом, так и для повседневной жизни. Преимущества при внедрении таких систем очевидны – это оптимизация маршрутов и графиков движения, предотвращение хищений грузов и топлива, планирование ресурсов, выделяемых на автопарк. Основой систем мониторинга транспорта являются модули систем глобального позиционирования, выполняющие прием и обработку сигналов спутника одной или нескольких систем.

Teseo-LIV3F — простой в использовании малогабаритный модуль на основе однокристального многосистемного приемника Teseo III, работающего с сигналами GPS, Galileo, Glonass, BeiDou, QZSS [1…3].

Обладая небольшими размерами – всего 9,7×10,1 мм – Teseo-LIV3F имеет встроенную Flash-память на 16 Мбит, позволяющую ему выполнять роль логгера, а также дающую модулю возможность составлять и хранить прогнозы размещения спутников на семь дней вперед на основе их текущего положения. Встроенная перезаписываемая память также позволяет модулю хранить текущую конфигурацию программного обеспечения и производить его обновление.

Термокомпенсированный тактовый генератор 26 МГц и независимый генератор часов реального времени уменьшают временные промежутки между включением модуля и первым определением координат. Заявленный рабочий диапазон температур модуля составляет -40…85°С, чувствительность приемника равна -163 дБм.

Внешний вид и структурная схема модуля представлены на рисунке 1.

Рис. 1. Структурная схема модуля Teseo-LIV3F

Рис. 1. Структурная схема модуля Teseo-LIV3F

Изучить возможности навигационного модуля можно с помощью оценочной платы X-NUCLEO-GNSS1A1 производства компании STMicroelectronics (рисунок 2). Данная плата по разъемам совместима с Arduino™ UNOR3 и STMorpho, может подключаться к отладочной плате STM32 Nucleo и дает возможность подсоединить дополнительные платы расширения (рисунок 3).

Рис. 2. Оценочная плата X-NUCLEO-GNSS1A1

Рис. 2. Оценочная плата X-NUCLEO-GNSS1A1

Напряжение питания Teseo-LIV3F находится в пределах  3,3…5 В, модуль имеет интерфейсы I2C, UART, конфигурируемый тактовый выход, вход EXTINT для активации модуля, разъем для подключения антенны и слот для батареи.

Рис. 3. Распиновка разъемов подключения платы X-NUCLEO-GNSS1A1 – Ардуино-совместимые разъемы и разъемы для расширения STmorpho

Рис. 3. Распиновка разъемов подключения платы X-NUCLEO-GNSS1A1 – Ардуино-совместимые разъемы и разъемы для расширения STmorpho

Экосистема разработчика для X-NUCLEO-GNSS1A1 (рисунок 4) состоит из отладочной платы STM Nucleo, программного пакета X-CUBE-GNSS1, примеров прикладных программ.

Рис. 4. Экосистема разработчика для X-NUCLEO-GNSS1A1

Рис. 4. Экосистема разработчика для X-NUCLEO-GNSS1A1

Пакет расширения X-CUBE-GNSS1 для STM32Cube [5, 6] работает на контроллерах семейства STM32 и включает в себя драйверы для навигационного модуля Teseo-LIV3F (Глобальная навигационная спутниковая система GNSS), программное обеспечение промежуточного уровня для разбора сообщений протокола NMEA и операционную систему FreeRTOS. Так как X-CUBE-GNSS1 построен на базе фреймворка/программной технологии STM32Cube, между различными микроконтроллерами STM32 обеспечивается взаимозаменяемость [7, 8].

Примеры прикладного программного обеспечения реализованы для оценочной платы X-NUCLEO-GNSS1A1, подключенной к одной из отладочных плат серии STM32 Nucleo – NUCLEO-F401RE, NUCLEO-L476RG или NUCLEO-L073RZ.

Также представлен пример приложения для оценочной платы IoT-устройства – B-L475EIOT01A Discoverykit [8].

Для работы с X-NUCLEO-GNSS1A1 потребуются (рисунок 5):

Рис. 5. Комплектующие для начала работы

Рис. 5. Комплектующие для начала работы

  • сама плата X-NUCLEO-GNSS1A1;
    • отладочная плата STM32 Nucleo (NUCLEO-F401RE/NUCLEO-L476RG/NUCLEO-L073RZ/BL475E-IOT01) [4];
    • антенна GPS/GLONASS/Beidou;
    • USB-кабель (type A в Mini-B);
  • компьютер с операционной системой Windows 7 и выше.

Также потребуется установить следующее программное обеспечение:

  • драйвер STSW-LINK009: ST-LINK/V2-1 USB driver;
  • пакет обновления для драйверов STSW-LINK007: ST-LINK/V2-1 firmware upgrade;
  • пакет X-CUBE-GNSS1 (расширение программного пакета STM32Cube; предполагается, что сам программный пакет уже предустановлен);
  • одну из сред разработки, поддерживающую микроконтроллеры STM (коммерческие IAR, Keil, свободная фирменная среда AC6 System Workbenchfor STM32).

Процесс установки и начало работы со средой AC6 System Workbench и конфигуратором STM32Cube MX описаны в статье «CubeMX и Workbench: создание проекта на базе STM32 с помощью бесплатного ПО».

Дальнейшая подготовка состоит из нескольких шагов.

Необходимо перейти на страницу, где в разделе «Tool&Software» будут доступны три программных пакета – два для узлов-трекеров интернета вещей и пакет X-CUBE-GNSS1. После короткой процедуры регистрации (если она ранее не производилась) пакет доступен для скачивания.

Для дальнейшего применения пакета достаточно распаковать его в папку “c:\ProgramFiles (x86)\STMicroelectronics\” (рисунок 6).

Рис. 6. Структура папок пакета X_CUBE-GNSS

Рис. 6. Структура папок пакета X_CUBE-GNSS

Далее необходимо установить на ПК драйверы USB driver для отладочных плат STM32 Nucleo ST-LINK/V2-1, открыть и откомпилировать любой из примеров, скажем,  базовый GetPos.

В принципе, особенной необходимости в перекомпиляции проектов нет (если требуется только посмотреть их функциональность) – предварительно скомпилированные образы доступны в папках “Binary” проектов (рисунок 7). Если установка драйверов и подключение платы прошло успешно, то она отобразится как дополнительный диск с меткой “Nucleo”, и загрузка проекта в нее осуществится простым копированием (рисунок 8).

Рис. 7. Варианты предварительно скомпилированных образов проекта GetPos

Рис. 7. Варианты предварительно скомпилированных образов проекта GetPos

Для следующего шага потребуется программа-терминал для работы с СОМ-портом, в данном случае – виртуальным. Нужно ее запустить, выбрать порт, соответствующий виртуальному СОМ-порту платы STM32 Nucleo и настроить на скорость 115200 бит/с, 8 бит данных, 1 стоп-бит, без контроля потока.

Рис. 8. Копирование образа приложения на отладочную плату

Рис. 8. Копирование образа приложения на отладочную плату

После сброса платы STM32 Nucleo в окне терминала выведется текстовое «меню», в котором будут отображены возможные варианты действий (рисунок 9). На рисунке 10 – пример ответа от STM32 Nucleo при выборе опции «1 – getpos» (при первом включении GPS-модуля до первого корректного определения координат может пройти достаточно длительное время – до нескольких минут).

Рис. 9. Меню возможных действий в проекте GetPos

Рис. 9. Меню возможных действий в проекте GetPos

Рис. 10. Пример выдачи результата при выборе опции «1 – getpos»

Рис. 10. Пример выдачи результата при выборе опции «1 – getpos»

GetPos построен как приложение поверх операционной системы FreeRTOS и состоит и двух задач: одна – для приема и парсинга сообщений, приходящих от модуля Teseo-LIV3F, вторая – для разбора и выполнения команд, поступающих с последовательного терминала.

Также приложение демонстрирует три опции, поддерживаемые модулем Teseo-LIV3F:

  • определение геозон позволяет приемнику Teseo-LIV3F выдавать сообщение, когда позиция GNSS близка к заданной области либо модуль входит или выходит из нее;
  • одометр предоставляет информацию о пройденном расстоянии;
  • ведение лога данных позволяет приемнику Teseo-LIV3F локально сохранять на Flash-памяти свои текущие координаты.

Модуль Teseo-LIV3F периодически генерирует и передает сообщения GNSS (протокол NMEA 0183 версии 4.0) по интерфейсу UART или I2C (интерфейс можно выбрать во время компиляции проекта в файле gnss_app_cfg.h).

GetPos:

  • позволяет устанавливать последовательное соединение между STM32 Nucleo, X-NUCLEO-GNSS1 и ПК;
  • может выдавать различные данные о местоположении и спутниках в приемлемом для пользователя формате: координаты, количество и положение спутников, активные спутники и прочее;
  • дает пользователю возможность обновлять прошивку Teseo-LIV3F (опция «0» в меню приложения).

Прошивку Teseo-LIV3F также можно обновить при помощи специальной утилиты из поставки пакета X-CUBE-GNSS1 – FWUPG.jar. Необходимо запустить утилиту. После выбора правильного последовательного порта нажать кнопку «Открыть», чтобы установить соединение с платами расширения STM32 Nucleo и X-NUCLEO-GNSS1A1. Если версия FW на модуле Teseo-LIV3F не самая последняя – нажать кнопку «Обновить FW», чтобы начать процесс обновления прошивки (нужно будет удерживать кнопку сброса на плате Nucleo до тех пор, пока не начнется процедура обновления).

Заключение

Программно-аппаратная экосистема разработчика от STMicroelectronics позволяет достаточно быстро освоить новые решения, предлагаемые компанией. Связка оценочных плат STM32 Nucleo и X-NUCLEO-GNSS1 дает возможность опробовать макетные образцы устройств и приложений, связанных с работой с данными о местоположении и перемещении, а также служит отличной платформой для учебных задач.

Постепенная модификация или комбинация примеров приложений поможет начинающему разработчику сократить время на получение приложения с нужным функционалом и перейти к его оптимизации под конкретную задачу.

Литература 

  1. X-NUCLEO-GNSS1A1 – GNSS expansion board based on Teseo-LIV3F module for STM32 Nucleo. STMicroelectronics
  2. Teseo-LIV3F Tiny GNSS module
  3. Вячеслав Гавриков.TESEO-LIV3F – первый навигационный модуль STMicroelectronics
  4. B-L475E-IOT01A – STM32L4 Discovery kit IoT node, low-power wireless, BLE, NFC, SubGHz, Wi-Fi. STMicroelectronics
  5. Виктор Чистяков. CubeMX и Workbench: создание проекта на базе STM32 с помощью бесплатного ПО
  6. Начинаем работать в STM32CubeMX. Часть 1. Хабр
  7. X-CUBE-GNSS1 – Global navigation satellite system software expansion for STM32Cube. STMicroelectronics
  8. Quick Start GuideGNSS expansion board based on Teseo-LIV3F module for STM32 Nucleo (X-NUCLEO-GNSS1A1)
•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее

Товары
Наименование
TESEO-LIV3F (ST)
TESEO-LIV3R (ST)
X-NUCLEO-GNSS1A1 (ST)