Другое

Полное руководство по исправлению сообщений Ublox M10Q UBX

Устранение неполадок с сообщениями Ublox M10Q UBX, когда появляются только сообщения NMEA. Узнайте, как включить вывод UBX, правильно настроить интерфейс UART и решить проблемы с конфигурацией в этом полном руководстве.

Ublox M10Q не отправляет сообщения UBX: Устранение неполадок с конфигурацией

Мы начинаем работу с GPS-модулями и создали печатную плату с M10Q. При подключении к интерфейсу UART через USB-TTL с использованием u-center мы получаем сообщения NMEA, но нет информации о типе интерфейса, прошивке или конфигурации. При попытке изменить конфигурацию мы не можем отправить какие-либо обновления, и появляется символ предупреждения без объяснения. Мы подозреваем, что это происходит потому, что устройство не подтверждает изменения конфигурации через протокол UBX. Нам нужно, чтобы сообщения UBX начали работать, так как мы читали, что они должны быть включены по умолчанию. Как можно устранить и решить эту проблему с сообщениями UBX?

Модуль Ublox M10Q, скорее всего, сконфигурирован с включенным выводом NMEA, но отключенным выводом UBX на интерфейсе UART, что требует внесения соответствующих изменений в конфигурацию для включения сообщений UBX. Вам потребуется проверить настройки интерфейса, убедиться, что устройство подтверждает команды UBX, и настроить вывод сообщений через систематические шаги устранения неполадок.

Содержание

Начальные шаги диагностики

Когда вы можете принимать сообщения NMEA, но не сообщения UBX, это указывает на то, что интерфейс UART работает, но типы сообщений сконфигурированы differently. Начните с проверки текущего состояния конфигурации вашего модуля M10Q.

Проверка текущих настроек протокола:

  • Откройте u-center и подключитесь к вашему M10Q через UART
  • Перейдите на вкладку Configuration и наблюдайте за доступной информацией
  • Обратите внимание на любые красные индикаторы предупреждения рядом с параметрами конфигурации
  • Запишите, видите ли вы какие-либо сообщения, связанные с UBX, в потоке данных

Проверка параметров подключения:

  • Убедитесь, что ваш адаптер USB-to-TTL правильно подключен к правильным выводам UART
  • Подтвердите, что скорость передачи соответствует ожидаемой скоростью M10Q (распространенные скорости: 9600, 57600, 115200)
  • Проверьте, что интерфейс UART включен и не сконфигурирован для другого протокола

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

Проблемы конфигурации интерфейса

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

Конфигурация интерфейса UART:
Согласно Руководству по интеграции SAM-M10Q, скорость вывода сообщений UBX должна быть установлена явно. Для сообщений UBX_NAV_PVT на UART1 необходимо настроить CFG-MSGOUT-UBX_NAV_PVT_UART1 = 1, чтобы включить вывод сообщения для каждой эпохи навигации.

Совместимость сообщений конфигурации:
Как указано в документации u-blox, старые методы конфигурации, такие как UBX-CFG-PRT, больше не поддерживаются в серии M10Q. Модуль по-прежнему принимает старый формат, но для правильной конфигурации требуется использовать более новые сообщения UBX-CFG-MSGOUT.

Конфигурация скорости передачи:
Несоответствие скорости передачи - это распространенная проблема, которая препятствует правильной связи UBX. Если модуль сконфигурирован на скорость передачи, отличную от используемой в u-center, он не будет подтверждать команды. Вам необходимо:

  1. Сначала определить текущую скорость передачи (попробуйте распространенные скорости: 9600, 57600, 115200)
  2. Использовать соответствующее сообщение UBX-CFG-PRT для изменения скорости передачи при необходимости
  3. Сохранить конфигурацию в слоях RAM и BOLD

Конфигурация протокола и сообщений

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

Включение вывода UBX:
Чтобы включить сообщения UBX на интерфейсе UART, вам необходимо отправить соответствующие сообщения конфигурации UBX. Ключевым сообщением является UBX-CFG-MSGOUT, которое контролирует, какие типы сообщений выводятся на каждом интерфейсе.

Конфигурация вывода сообщений:

  • UBX-CFG-MSGOUT-UBX_NAV_PVT_UART1 = 1 (включает сообщения UBX NAV PVT)
  • UBX-CFG-MSGOUT-UBX_NAV_STATUS_UART1 = 1 (включает статусные сообщения)
  • Убедитесь, что вывод NMEA отключен, если вам нужны только сообщения UBX

Переключение протокола:
Как упоминалось в обсуждении сообщества SparkFun, вы можете установить интерфейс для вывода только UBX с помощью GNSS.setI2COutput(COM_TYPE_UBX) в коде или эквивалентной конфигурации в u-center.

Сохранение конфигурации:
При внесении изменений в конфигурацию вам необходимо:

  1. Отправить сообщение конфигурации
  2. Дождаться ответа ACK (0x06/0x00)
  3. Сохранить в RAM (немедленный эффект)
  4. Сохранить в BOLD (сохраняется после цикла питания)

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

Проблемы физического подключения и оборудования

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

Требования к подключению UART:
В Руководстве пользователя EVK-M10QSAM указано, что следует подключаться через RS-232 или через 14-контактный разъем. Важно: Изменение положения переключателя интерфейса при включенном EVK может повредить чип GNSS-приемника. Всегда отключайте питание перед изменением настроек переключателя интерфейса.

Проверка подключения:

  • Убедитесь, что ваш адаптер USB-to-TTL подключен к правильным выводам UART (TX к RX, RX к TX)
  • Подтвердите, что соединение заземления установлено правильно
  • Убедитесь, что уровни напряжения совместимы (3.3V для M10Q)
  • Проверьте наличие любых ослабленных соединений или поврежденных кабелей

Настройки переключателя интерфейса:
Если вы используете оценочную плату, убедитесь, что переключатель интерфейса установлен в правильное положение для работы UART. Неправильная настройка переключателя может помешать правильной связи независимо от вашей программной конфигурации.

Проблемы с источником питания:

  • Убедитесь, что модуль получает стабильное питание 3.3V
  • Проверьте падения напряжения во время передачи, которые могут вызвать сбои связи
  • Убедитесь, что источник питания может обеспечить достаточный ток (обычно 30-50mA в нормальном режиме работы)

Методы advanced-устранения неполадок

Если базовое устранение неполадок не решает проблемы с сообщениями UBX, вам потребуется использовать более продвинутые диагностические методы.

Анализ протокола:

  • Используйте логический анализатор или осциллограф для захвата фактической связи UART
  • Убедитесь, что модуль отправляет сообщения UBX (проверьте заголовки 0xB5 0x62)
  • Мониторьте ответы ACK на ваши команды конфигурации
  • Проверьте наличие любых сообщений об ошибках или поврежденных пакетов

Сброс к заводским настройкам:
Если подозревается повреждение конфигурации, выполните сброс к заводским настройкам:

  1. Отправьте сообщение UBX-CFG-CFG (сброс конфигурации)
  2. Дождитесь сброса модуля
  3. Подключитесь снова и проверьте конфигурацию по умолчанию
  4. Перенастройте с нуля с правильными сообщениями UBX

Обновление прошивки:

  • Проверьте, имеет ли ваш M10Q последнюю версию прошивки
  • Устаревшая прошивка может содержать ошибки, препятствующие правильной связи UBX
  • Используйте u-center для проверки версии прошивки и обновления при необходимости

Последовательность инициализации:
Как показано в GitHub issue, правильная инициализация требует ожидания ответа ACK. Журнал отладки показывает:

Waiting for ACK 0x06 / 0x00
U-Blox sent 28 bytes: [b5 62 6 0 14 0 1 0 0 0 d0 8 0 0 0 c2 1 0 1 0 1 0 0 0 0 0 b8 42]

Если вы не получаете эти ответы ACK, связь не работает на уровне протокола.

Реализация решения

На основе результатов исследования, вот пошаговое решение для отправки сообщений UBX вашим M10Q:

Пошаговая конфигурация:

  1. Подключение с правильной скоростью передачи:

    • Начните со скорости 9600 бод (распространенная заводская настройка по умолчанию)
    • Если это не сработает, попробуйте 57600 и 115200
    • Используйте мастер подключения u-center для автоопределения, если доступно
  2. Включение сообщений UBX:

    • Отправьте сообщения UBX-CFG-MSGOUT для включения вывода UBX на UART1
    • Установите CFG-MSGOUT-UBX_NAV_PVT_UART1 = 1
    • Установите CFG-MSGOUT-UBX_NAV_STATUS_UART1 = 1
  3. Отключение NMEA (опционально):

    • Если вам нужны только сообщения UBX, отключите вывод NMEA для уменьшения шума
    • Установите CFG-MSGOUT-NMEA_GGA_UART1 = 0
    • Установите CFG-MSGOUT-NMEA_RMC_UART1 = 0
  4. Сохранение конфигурации:

    • Отправьте UBX-CFG-CFG (сохранить в RAM)
    • Отправьте UBX-CFG-CFG (сохранить в BOLD)
    • Убедитесь, что настройки сохранились, отключившись и подключившись снова
  5. Тестирование связи UBX:

    • Мониторьте интерфейс UART на наличие сообщений UBX (заголовки 0xB5 0x62)
    • Убедитесь, что вы получаете сообщения NAV_PVT
    • Проверьте правильность форматирования сообщений и контрольных сумм

Альтернативный подход - Использование кода:
Если конфигурация в u-center продолжает не работать, вам может потребоваться настроить модуль программно. Как показано в примере SparkFun:

cpp
GNSS.setI2COutput(COM_TYPE_UBX); // Установить вывод только UBX
GNSS.setNavigationFrequency(10);  // 10 решений в секунду
GNSS.setAutoPVT(true);            // Включить автоматические сообщения PVT

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

Источники

  1. Руководство по интеграции SAM-M10Q - Конфигурация UBX
  2. Руководство пользователя EVK-M10QSAM - Подключение UART
  3. Сообщество SparkFun - Конфигурация SAM-M10Q UBX
  4. GitHub Issue - Отладка подключения M10 UBX
  5. Stack Overflow - Сообщения Ublox M10Q UBX не работают
  6. Форум IntoFPV - Пользовательские настройки M10Q
  7. Oscar Liang - Настройки GPS в U-Center

Заключение

Ключевые выводы:

  • M10Q, скорее всего, имеет сообщения UBX отключены по умолчанию на интерфейсах UART
  • Проблемы конфигурации возникают из-за использования устаревших сообщений CFG-PRT вместо CFG-MSGOUT
  • Правильная настройка скорости передачи имеет решающее значение для подтверждения протокола UBX
  • Физическое подключение и стабильность питания часто вызывают сбои связи

Рекомендуемые действия:

  1. Начните с правильной скорости передачи (9600, 57600 или 115200)
  2. Используйте сообщения UBX-CFG-MSGOUT для включения вывода UBX
  3. Сохраните конфигурацию в слоях RAM и BOLD
  4. Проверьте с помощью инструментов анализа протокола, если проблемы сохраняются
  5. Рассмотрите возможность сброса к заводским настройкам, если подозревается повреждение конфигурации

Связанные вопросы:

  • Почему мой M10Q отправляет сообщения NMEA, но не сообщения UBX? - Это указывает на то, что вывод UBX отключен на интерфейсе UART
  • Как изменить скорость передачи на M10Q? - Используйте сообщение UBX-CFG-PRT с правильным параметром скорости передачи
  • В чем разница между конфигурацией RAM и BOLD? - RAM является временной, BOLD сохраняется после цикла питания

Систематически проработав эти шаги устранения неполадок и了解了 специфические требования конфигурации M10Q, вы должны решить проблемы с сообщениями UBX и заставить ваш GPS-модуль работать как ожидается.

Авторы
Проверено модерацией
Модерация