GPS-модули NEO-6M и NEO-M8N: подключение и NMEA
Как устроены и подключаются популярные приёмники u-blox NEO-6M и NEO-M8N: что они принимают и с какой точностью, сколько потребляют и почему их входы нельзя подключать к 5 В напрямую, зачем батарейка и активная антенна и как читать строки NMEA.
Обновлено Редакция GAW
GPS-модуль — готовый приёмник спутниковой навигации на небольшой плате: антенна, приёмник и память настроек. Он сам находит спутники, вычисляет координаты, время и скорость и раз в секунду отправляет их текстом по UART в формате NMEA 0183. Микроконтроллеру остаётся читать строки и разбирать поля. Самые распространённые в любительских проектах — модули на приёмниках u-blox NEO-6M и NEO-M8N.
NEO-6M и NEO-M8N
| NEO-6M | NEO-M8N | |
|---|---|---|
| Каналы | 50 | 72 |
| Системы | GPS, SBAS | GPS, ГЛОНАСС, Galileo, BeiDou, QZSS, SBAS |
| Холодный старт | 27 с | 26 с (GPS и ГЛОНАСС) |
| Горячий старт | 1 с | 1 с |
| Чувствительность при слежении | −161 дБм | −167 дБм |
| Горизонтальная точность | 2,5 м CEP | 2,5 м CEP |
| Частота обновления | до 5 Гц | до 5 Гц при двух системах, до 10 Гц при одной |
| Питание | 2,7–3,6 В | 2,7–3,6 В |
| Ток при слежении | 39 мА | 30 мА (GPS и ГЛОНАСС) |
| Ток в режиме экономии, 1 Гц | 11 мА | 13 мА |
| Ток в пике | до 67 мА | до 67 мА |
Данные — из даташитов NEO-6 (GPS.G6-HW-09005-E, разд. 1.3, табл. 10–11) и NEO-M8 (UBX-15031086, табл. 1, 10–11). Точность CEP — радиус круга, в который попадает половина отсчётов за сутки неподвижной работы при хорошем сигнале; время первого решения — при сильном сигнале от всех спутников. Под деревьями, в городе среди высоких домов и тем более в помещении всё это хуже.
Подключение к микроконтроллеру
По умолчанию оба модуля выдают в UART на 9600 бит/с (8 бит, без чётности, 1 стоп-бит) сообщения GGA, GLL, GSA, GSV, RMC, VTG и TXT раз в секунду. Подключение — четыре провода:
| Модуль | Микроконтроллер |
|---|---|
| VCC | 3,3 В (или 5 В, если на плате модуля есть свой стабилизатор) |
| GND | GND |
| TX | RX UART |
| RX | TX UART — через делитель или преобразователь уровня, если МК на 5 В |
Уровни. Выводы приёмника рассчитаны на напряжение не выше его питания: у NEO-6 диапазон входного напряжения — от 0 до VCC (табл. 10), у NEO-M8 абсолютный максимум на входе — 3,6 В, и даташит отдельно предупреждает, что защиты от перенапряжения нет (табл. 9). Поэтому выход TX микроконтроллера на 5 В (Arduino Uno, Nano, Mega) к входу RX модуля подключают через делитель напряжения или преобразователь уровней. Обратное направление — выход модуля на вход 5-вольтового микроконтроллера — работает на грани: ATmega328P при питании 5 В гарантированно видит единицу от 3,0 В (0,6 · VCC), а модуль обещает на выходе не меньше VCC − 0,4 В. С ESP32, STM32 и Raspberry Pi Pico, у которых логика 3,3 В, модуль соединяется напрямую.
Строки удобно сначала посмотреть в мониторе порта и разобрать в инструменте NMEA: он проверит контрольные суммы и переведёт координаты в градусы. Скорость UART при необходимости поднимают командой приёмнику, а лишние сообщения отключают собственным сообщением u-blox PUBX,40 — например, $PUBX,40,GLL,0,0,0,0,0,0*5C отключает GLL на всех портах; контрольную сумму для своей команды посчитает тот же инструмент.
Батарейка и время старта
Вывод V_BCKP питает часы и память приёмника, когда основное питание выключено: ток — около 22 мкА у NEO-6 и 15 мкА у NEO-M8 при 1,8 В. Пока батарейка держит данные о спутниках и время, после включения приёмник делает горячий старт — около секунды вместо 26–27 с холодного.
Антенна
Приёмник работает с пассивной антенной или с активной: в активной стоит малошумящий усилитель, который компенсирует потери в кабеле, когда антенну выносят на крышу или за пределы корпуса. Питание активной антенне модуль подаёт через вывод VCC_RF: напряжение VCC − 0,1 В, ток до 50 мА (табл. 10 обоих даташитов). Антенне нужен вид на небо: параметры из таблицы выше получены при сильном сигнале, а в помещении приёмник может вообще не найти решения.
Частые вопросы
Можно ли подключить NEO-6M к Arduino Uno напрямую?
Питание — только если на плате модуля есть свой стабилизатор: сам NEO-6M работает от 2,7–3,6 В. Линия TX модуля на вход Arduino — на грани: ATmega328P при питании 5 В гарантированно видит единицу от 0,6 · VCC = 3,0 В, а модуль гарантирует на выходе не меньше VCC − 0,4 В при токе 4 мА; при питании модуля 3,3 В и слабой нагрузке это обычно работает, но с запасом надёжнее преобразователь уровней. А вот выход TX Arduino на вход RX модуля напрямую подключать нельзя: по даташиту напряжение на входах не должно превышать напряжение питания модуля, у NEO-M8 абсолютный максимум — 3,6 В. Нужен делитель или преобразователь уровней.
Сколько ждать, пока GPS найдёт координаты?
После включения без сохранённых данных о спутниках (холодный старт) NEO-6M по даташиту находит решение примерно за 27 с, NEO-M8N при приёме GPS и ГЛОНАСС — за 26 с. Это время для сильного сигнала при открытом небе. Если модуль недавно работал и данные сохранены — горячий старт, — на это уходит около секунды. Батарейка на выводе V_BCKP сохраняет эти данные при выключении основного питания.
Чем NEO-M8N лучше NEO-6M?
NEO-6M принимает только GPS (с SBAS), NEO-M8N — GPS, ГЛОНАСС, Galileo, BeiDou и QZSS, по умолчанию GPS и ГЛОНАСС одновременно. У M8N выше чувствительность при слежении (−167 дБм против −161), он обновляет решение до 10 раз в секунду при одной системе и потребляет меньше: около 30 мА при слежении за GPS и ГЛОНАСС против 39 мА у NEO-6M. Горизонтальная точность по даташитам одинаковая — 2,5 м CEP.
Нужна ли активная антенна?
Не всегда. Активная антенна со встроенным малошумящим усилителем нужна, когда антенну выносят на кабеле — на крышу, за пределы корпуса: усилитель компенсирует потери в кабеле. Модуль питает её через вывод VCC_RF напряжением VCC − 0,1 В и током до 50 мА.
Источники
- u-blox. NEO-6 u-blox 6 GPS Modules Data Sheet (GPS.G6-HW-09005-E) — табл. 1 — исполнения NEO-6; разд. 1.3 — время первого решения, чувствительность, частота обновления, точность; конфигурация по умолчанию (NMEA, 9600 бит/с); табл. 10 и 11 — рабочие условия и ток
- u-blox. NEO-M8 Data Sheet (UBX-15031086), R14, 2025 — табл. 1 — характеристики по системам; табл. 9 — предельные напряжения на входах; табл. 10 и 11 — рабочие условия и ток; разд. 8 — сообщения по умолчанию
- u-blox. u-blox 8 / u-blox M8 Receiver Description including Protocol Specification (UBX-13003221), R28 — разд. 31 — NMEA 4.10, Talker ID, сообщение PUBX,40 для включения и отключения сообщений
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B), 2020 — разд. 29.2 — порог высокого уровня на входе 0,6 · VCC при питании 2,4–5,5 В
Нашли ошибку?
Смотрите также
- Разбор NMEAПоля GGA, RMC, GSV и других, контрольная сумма, координаты
- ДатчикиТок и температура: шунты, датчики Холла, термисторы, термопары — подключение и расчёт
- UARTКадр 8N1, скорость и допуск, TX и RX, уровни, USB–UART, AVR и STM32
- Скорость UARTUBRR, BRR, TH1 и ошибка скорости
- Делитель напряженияВыход, ток, нагрузка, подбор пары резисторов
- Время работы от батареимА·ч, средний ток, сон МК, Вт·ч