Простой поисковый радио маячок.
обычные транзисторы не понятули
любопытно, у BC847 максимальный ток коллектора 100мА, должно по идее хватать.
но у него падение около 0,5-0,6В, а напряжение питание какое ?
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 не понял, что значит комментарий “;значение с приемника”?