RTC в STM32f1 и GPS NEO-6m

j777
Offline
Зарегистрирован: 20.08.2018

Всем привет!!! В целом такая ситуация. Решил использовать RTC в STM32f1, а инициализировать точную дату и время(и заодно корректировать погрешность RTC) с помощью GPS модуля NEO-6M. Ну суть какая, GPS приемник потерял спутники(или устройство выключили на некоторое время) - над подсчетом времени трудится RTC, GPS установил связь с космосом - RTC синхронизируется с приемником. И тут до меня доперло, когда GPS приемник выключаешь(конечно если к нему подключена батарейка и если он до этого установил связь с космосом), потом включаешь, смотришь, что он передает, а он и передает в одном из пакетов данных дату и время, несмотря на то что он еще незаконнектился со спутниками. Выходит GPS модуль можно использовать вместо RTC в моем случае? Мож знат кто???

b707
Offline
Зарегистрирован: 26.05.2017

j777 пишет:

 Выходит GPS модуль можно использовать вместо RTC в моем случае? Мож знат кто???

ну я точно не знаю, но что-то мне кажется, что если на плате GPS нет своей батарейки - выдавать точное время ДО КОННЕКТА к спутнику он никак не сможет

sadman41
Offline
Зарегистрирован: 19.10.2016

В каком "одном из пакетов"? Как имя этого sentence/message?

j777
Offline
Зарегистрирован: 20.08.2018

Спасибо большое! Сейчас тестирую этот момент. Отключил приемник от внешнего питания(батарейка на модуле есть). Позже подключу его без антенны к усб ту ттл)), где-нибудь "поглубже" в квартире, посмотрю, какие данные передает. Напишу, может кому интересно будет, или пригодится.

j777
Offline
Зарегистрирован: 20.08.2018

Имя, сейчас. Вот пакет полностью при получении сигнала со спутников:

$GPRMC,115316.00,A,5514.48383,N,06123.51113,E,0.276,,180420,,,A*7D
$GPVTG,,T,,M,0.276,N,0.512,K,A*26
$GPGGA,115316.00,5514.48383,N,06123.51113,E,1,04,12.91,224.5,M,-13.3,M,,*4F
$GPGSA,A,3,17,19,02,06,,,,,,,,,15.14,12.91,7.92*0E
$GPGSV,3,1,12,02,72,146,37,03,01,012,,04,00,038,,05,08,155,25*7D
$GPGSV,3,2,12,06,56,070,34,14,04,310,32,17,05,084,36,19,24,082,42*74
$GPGSV,3,3,12,24,12,210,16,25,53,291,18,29,18,265,21,39,27,176,38*7D
$GPGLL,5514.48383,N,06123.51113,E,115316.00,A,A*68
Я понимаю, что в строке "$GPRMC....." 115316 - это время UTC, а 180420,, - дата.
sadman41
Offline
Зарегистрирован: 19.10.2016

Насколько я помню, в GPRMC валит время сразу же, как ресивер пакет поймал. А спутники он может начать рисовать и попожжа, если поймёт, что они устойчиво передают.

У самого ублоха есть какой-то функционал с выдачей внутреннего времени, но в GPRMC он, вроде, не суёт этот таймштамп - только в свой набор мессейджей. 

j777
Offline
Зарегистрирован: 20.08.2018

Ок, понял, спасибо!!!

Antsanv
Antsanv аватар
Offline
Зарегистрирован: 18.12.2018

Пока нет спутников GPS модуль ничего не передает. Просто строка со временем принимается первой, если не ошибаюсь, для этого достаточно одного спутника. Но полностью доверять этому времени нельзя, как показала практика. После установки устойчивого приема со спутников это время может скорректироваться на несколько секунд.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Можно включить прием всего одного пакет UBX-NAV-PVT, а все остальные отключить. В этом пакете есть координаты, дата, время,

скорость, количество спутников и флаги по которым можно понять - можно уже доверять

данным или еще нет.

Antsanv
Antsanv аватар
Offline
Зарегистрирован: 18.12.2018

Можно. Не помню с какого пакета беру время, но ситуация такая: при HDOP < 8 синхронизируюсь, но через несколько минут в 50% случаев GPS приемник корректирует время на 3 секунды. И вот вторая синхронизация уже никуда не плывет. Заметил это когда наблюдал за несколькими часами одновременно.
Дело точно не в скетче и не в библиотеке. Именно приемник выдает такие данные.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018