Простой поисковый радио маячок.
got signal означает что приемник получил ответ от маячка, еще там должно показывать уровень с каким маячек увидел запрос приемника, и вблизи они отталкиваясь от этого уровня будут уменьшать мощность передачи, а вот то что GPS моргает но не выдает координат на пульт скорее всего означает что тини13 не видит сообщение с GPS на ноге UART, при чем это может быть как ошибка монтажа так и завышенное напряжение питания, если питаете от +5в то для правильной бод* синронизации софтварного UART придется тайминги изменить внутри кода тиньки.
Гена_Большой BC847 пробовал, не работало, первичный всплекс мультиметром смотрел, там не все могло показать, может все дело в падении напряжения, а питаю обычно от одиночного литиевого АКБ с 4.2в, а GPS согласно мануалу при 3.3в нормально работает, на деле и при 2.9в работает, детально дело не изучил, просто от лени бахнул мосфет и на этом остановился.
armor66 вот исходники передатчика на тини13, в нем используется софтварный UART, при 4.2в на моих рандомных тиньках проблем небыло, но возможно у вас несовпадают задержки для чтения и там просто кашу по RX видит вместо сообщения с GPS.
Вот так выглядит система определения лог0 или лог1 на UART, это простая переборка опроса чтения с инкременацией счетчика:
sbic PinGPS,data_gps ;выполнить если бит порта "1"
inc R17
sbic PinGPS,data_gps ;выполнить если бит порта "1"
inc R17
sbic PinGPS,data_gps ;выполнить если бит порта "1"
inc R17
sbic PinGPS,data_gps ;выполнить если бит порта "1"
inc R17
sbic PinGPS,data_gps ;выполнить если бит порта "1"
inc R17
sbic PinGPS,data_gps ;выполнить если бит порта "1"
inc R17
Если читается каша и тайминги не совпадают то в конце этого блока можно добавить или убрать еще пару запросов.
sbic PinGPS,data_gps ;выполнить если бит порта "1"
inc R17
обычно при входе в синхро погрешность в три-четрые запроса проканывает но если разбежность больше то тини13 не может определить текст с UART корректно и тогда после вызова не сможет передать координаты с GPS. Код кажется топорным но когда пытался внедрить цикл с красивым чтением, то все работало намного хуже из-за времени на переходы, а вот именно такой топорный вариант определения бита UART получился самым помехоустойчивым. Так же тестировал UART в морозилке и на жаре, с заряженной и севшей АКБ, тинька нормально себя показала, но при питании с 5в тайминги могут отличаться, и этого уже не помню. Чтобы не лочить тини13 фюзами отладку можно делать запитав GPS напостоянно иизменив в коде ногу ввода, это первые строчки с .equ data_gps=5 ;data in UART GPS
в коде замерил сделанные ранее пометки про внутреннее сопротивление ножек у тини13, оно пипец огромное и не одинаковое, а уже и успел позабыть об этом 😔
;Rвн.портов: PB0/1=20R; PB2/3/4=28R; PB5=32R
Да, got signal и уровень показывает, питается напрямую от аккумулятора, попробую подзарядить. Кроме gps еще и напряжение не передает (делитель 470к / 33к). Подключение проверил, может с Ra-01 какие проблемы.
а напряжение передастся только в пакете с GPS, пока не прочитает корректно UART то не будет отправки и показаний
Может действительно, Quectel L80R купить, а то я везде пихаю BN-220/250, хотя протокол и там NMEA. Попробую прошить без reset.
а разве BN250 чем-то плох? Мне не понравился только Neo6m, самый медленный по поиску, потребляет больше других и ловит хуже, просто у Нео6 древний чип и код. Тини13 осуществляет выборку координат из сообщения, в пакете GPS много чего перечислено, обычно они стандартизированы но есть небольшие отличия между фирмами, местами запятая не там и местами нулей после замятой может быть другое количество, с теми модулями что у меня были старался прописывать чтобы все было универсальным, хотя там один и тот же код выборки на меге8 приемника и тини13 передатчика, и на меге8 так же применен софтварный UART ибо он работает стабильнее и лучше хардварного. Просто если у вас один и тот же GPS то не понимаю почему на меге8 все работает а с тини13 нет, софтварный код с задержками там идентичен, разве что тайминги у меги8 чуть отличаются.
Нет, не плох, и мега8 определяет координаты. Да, а какая скорость должна быть у gps модуля?
стандартные настройки таких модулей 9600 бод, если бы были проблемы то мега8 не читала бы, а поскольку не читает только передатчик с тини13 то вероятно дело в синхронизации UART, пробуйте подергать по пару значений задержки что писал выше, там просто больше нечему не работать, либо для теста поискать другой GPS. Тини13 использует подстроку $GPGGA, в протоколе NMEA формат данных и запятые с точками и их позиции строго стандартизированы, обычно там все хорошо.
Проверю для начала GPS модули, они к разным полетникам подключались. Потом уже прошивку маячка посмотрю.
у BN-220 baudrate 9600, protocol out UBX+NMEA, а у BN-250 дикие 230400 и protocol out только UBX. В прошивке 4 блока по 10 (sbic PinGPS,data_gps ;выполнить если бит порта "1"inc R17). Просто в конце, перед (;80мкс) добавить или убрать пару строк? Может сделать отправку фейковых данных с маячка в качестве теста?
ААААААААААА! Убрал два вызова sbic/int и заработало, спасибо тебе огромное!
Работает у меня в диапазоне от -2 до -5 опроса от исходного кода. Питание GPS можно ведь повесить на вывод Reset?
Выводы тини13 не равносильны по току, ресет у нее при работе в качестве выхода самый слабый, а как дальше извращаться с исходниками вам виднее. Как по мне там добавить в приемнике компас хардварный(сейчас там север определяется по GPS) и ЖКИ поновее и будет неплохо, вся эта штука прототип, пилить и пилить еще ее.
Почитаю про компасы. А с ЖКИ предпочтительнее LCD12864 или что-то еще есть на примете?
про гирокомпасы тонны видео, но там есть чего кодить, а с LCD12864 один из похожих и доступных на нокиашный, альтернатива цветные LED но там без STM32 делать нечего.
Может для начала, режимы М/А сместить вниз на место статуса, а на этом месте разместить азимут? Да, цветной экран скорее излишество.
Добрый день. Подскажи пожалуйста, зачем после приема CAD в маячке если канал свободен, делаем еще 10 запросов? Или я неправильно понял - там где комментарий “;выждем освобождение канала”. И в первом ответе отправляем только RSSI? Тогда почему длину пакета в FIFO пишем ldi R17,12 не понял, что значит комментарий “;значение с приемника”?
При пробуджении маячек сразу не может выдать координаты GPS потому что модулю нужно время на разогрев, но чтобы знать что все нормально передается уровень силы сигнала который принял маячек, по этому уровню уже можно грубо судить о расстоянии, и так же понятно что все работает, затем как GPS будет готов маячек передаст координаты но на границе дальности бывают ситуации когда пакет не принимается без ошибок, и чтобы этого избежать маячек пакет передает повторно через пару секунд и так пять раз подряд, при этом если между передачами придет активность с приемника то это будет означать еще +5 передач координат, это используется для непрерывного режима, там приемник после каждого пакета отвечает в духе “слать еще”, на практике в лесу такая схема связи дала хорошие результаты. Если же сразу делать ответы без ожидания то на больших расстояниях бывают ситуации когда приемник еще не окончил передачу а маячек этого не понял, и они друг друга не поймут.