Простой поисковый радио маячок.

armor66

Ясно, это я напутал. Допаяю маячек, разберусь.

Pavel_liev

по просадке питания и зависании: когда АКБ заряжен полностью то все работает нормально, но при попытке разбудить при полуразряженном АКБ все виснет, передатчик вообще не отвечает на запросы, при этом если зарядить АКБ то всеравно не будет отвечать пока не снять полностью питание тини13 передатчика и не включить обратно, и проблема там кажется не в транзисторе а именно режиме сна тини13 при ФЮЗах что отключают ногу “ресет”, не хватало выходов для управления питанием GPS, и такие проблемы начались именно когда в ФЮЗах настроил “ресет” на выход сигнала, а если эту настройку убрать то все работет штатно до полного разряда АКБ в 2.8в и будится нормально аж до входа АКБ в защиту по разряду. Из-за чего решил что проблема именно в том, что нельзя использовать пониженное напряжение при питании тини13 с ФЮЗами что переключают “ресет” на выход сигнала(виртуальная внутренняя подтяжка слетает), и думал взять другой чип где больше ножек, например тини44, что позволит добавить новых плюшек, типа светодиодной подсветки.

armor66

Да, фигово что так с ресетом. Неплохо было бы еще пару ног - на вход с полетника (приемника) и выход на бузер (светодиод).

armor66

Что-то меня понесло:) Делал на tiny13 и ключе IR3313 включение / отключение питания борта удержанием кнопки и отключение без PWM. Можно бы и такое добавить.

Гена_Большой

Павел, хорошую работу делаете, а не думали посмотреть в сторону STM32F030/G030 в корпусе TSSOP20,
там на порядок больше “всего”, а вес процессора будет не больше и никаких ФЮЗов.

Pavel_liev

Спасибо, об STM’ках думал и много, продвинутые чипы с хорошими характеристиками, но их в моем случае нужно практически с нуля осваивать, а AVR ассемблер знаю достаточно неплохо, сложно собраться с мыслями и переходить на новую платформу что идет на языке высокого уровня, когда почти все время проводил в более древних штуковинах, а так все идет к тому что будущее за STM32, при чем у этих тварей даже потребление ниже, аж обидно как-то, прогресс.

Гена_Большой

Павел, честное слово пол года назад сам так думал ), а сейчас пишу для STM32.
Зная ASM Вы без труда освоите Си, плюсы даже не нужны.

Pavel_liev:

при чем у этих тварей даже потребление ниже, аж обидно как-то, прогресс.

и не только потребление, количество портов в/в, таймеров и прочих фич, включая офигительную FreeRTOS,
к которой я сам начал подбираться ).

я сам начинал с ассемблера, правда IBM370 )) в OS MFT в далекие 80-е.

Pavel_liev

armor66 у тини13 ножек маловато для разных плюшек, уже заняты все выводы, и та же мега8 отлично обеспечивает питанием GPS модуль просто с одной ноги, хватает силы тока ее внутренностей, а вот у тини13 просаживается, там всплеск при холодном старте более 50мА, и если его не выдержать то не включится, а дальше падает до 10-18мА, высока вероятность что у другого чипа два или три вывода в параллель потянут по току.

Гена_Большой
Pavel_liev:

там всплеск при холодном старте более 50мА

а если питать через эмиттерный повторитель ?

armor66

После запроса пишет got signal, gps на маячке включается и мигает, но приемник данные не получает, и gps координаты на втором экране одинаковые a) и b) и Ub-0.00V

Pavel_liev

обычные транзисторы не понятули, а мосфет справился, и мега8 одной ногой тянет, нужны дополнительные тесты, а еще GPS модули разные попадаются, из тех что тестировал больше всего понравились Quectel L80R, и хуже всего себя вели Neo6m.

Гена_Большой
Pavel_liev:

обычные транзисторы не понятули

любопытно, у BC847 максимальный ток коллектора 100мА, должно по идее хватать.
но у него падение около 0,5-0,6В, а напряжение питание какое ?

Pavel_liev

got signal означает что приемник получил ответ от маячка, еще там должно показывать уровень с каким маячек увидел запрос приемника, и вблизи они отталкиваясь от этого уровня будут уменьшать мощность передачи, а вот то что GPS моргает но не выдает координат на пульт скорее всего означает что тини13 не видит сообщение с GPS на ноге UART, при чем это может быть как ошибка монтажа так и завышенное напряжение питания, если питаете от +5в то для правильной бод* синронизации софтварного UART придется тайминги изменить внутри кода тиньки.

Pavel_liev

Гена_Большой BC847 пробовал, не работало, первичный всплекс мультиметром смотрел, там не все могло показать, может все дело в падении напряжения, а питаю обычно от одиночного литиевого АКБ с 4.2в, а GPS согласно мануалу при 3.3в нормально работает, на деле и при 2.9в работает, детально дело не изучил, просто от лени бахнул мосфет и на этом остановился.

Pavel_liev

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

LoRa_GPS_TX_korpus2.zip

Pavel_liev

в коде замерил сделанные ранее пометки про внутреннее сопротивление ножек у тини13, оно пипец огромное и не одинаковое, а уже и успел позабыть об этом 😔

;Rвн.портов: PB0/1=20R; PB2/3/4=28R; PB5=32R
armor66

Да, got signal и уровень показывает, питается напрямую от аккумулятора, попробую подзарядить. Кроме gps еще и напряжение не передает (делитель 470к / 33к). Подключение проверил, может с Ra-01 какие проблемы.

Pavel_liev

а напряжение передастся только в пакете с GPS, пока не прочитает корректно UART то не будет отправки и показаний

armor66

Может действительно, Quectel L80R купить, а то я везде пихаю BN-220/250, хотя протокол и там NMEA. Попробую прошить без reset.

Pavel_liev

а разве BN250 чем-то плох? Мне не понравился только Neo6m, самый медленный по поиску, потребляет больше других и ловит хуже, просто у Нео6 древний чип и код. Тини13 осуществляет выборку координат из сообщения, в пакете GPS много чего перечислено, обычно они стандартизированы но есть небольшие отличия между фирмами, местами запятая не там и местами нулей после замятой может быть другое количество, с теми модулями что у меня были старался прописывать чтобы все было универсальным, хотя там один и тот же код выборки на меге8 приемника и тини13 передатчика, и на меге8 так же применен софтварный UART ибо он работает стабильнее и лучше хардварного. Просто если у вас один и тот же GPS то не понимаю почему на меге8 все работает а с тини13 нет, софтварный код с задержками там идентичен, разве что тайминги у меги8 чуть отличаются.

armor66

Нет, не плох, и мега8 определяет координаты. Да, а какая скорость должна быть у gps модуля?

Pavel_liev

стандартные настройки таких модулей 9600 бод, если бы были проблемы то мега8 не читала бы, а поскольку не читает только передатчик с тини13 то вероятно дело в синхронизации UART, пробуйте подергать по пару значений задержки что писал выше, там просто больше нечему не работать, либо для теста поискать другой GPS. Тини13 использует подстроку $GPGGA, в протоколе NMEA формат данных и запятые с точками и их позиции строго стандартизированы, обычно там все хорошо.

armor66

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

armor66

у BN-220 baudrate 9600, protocol out UBX+NMEA, а у BN-250 дикие 230400 и protocol out только UBX. В прошивке 4 блока по 10 (sbic PinGPS,data_gps ;выполнить если бит порта "1"inc R17). Просто в конце, перед (;80мкс) добавить или убрать пару строк? Может сделать отправку фейковых данных с маячка в качестве теста?

armor66

ААААААААААА! Убрал два вызова sbic/int и заработало, спасибо тебе огромное!