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

Pavel_liev

По работе логики в маячке пришел к вот такой схеме, где основным идет спящий режим, но из-за длительного разогрева GPS маяк при выходе из сна сразу отвечает коротким одиночным пакетом, в котором уровень RSSI, и мы сразу видим, что он проснулся и насколько он “видит” нас. Дальше в зависимости от RSSI маяк ставит у себя конфиг мощности, если мы близко то зачем валить 100мВт, ведь можно экономить батарейку, и подает питание на свой GPS, сам процесс прогрева очень рандомный, а ждать не всегда выгодно, поэтому пришел к выводу что удобнее дать модулю 8 сек. после приема валидных спутников, и передавать на пульт что есть. Дрейф в 30-50 метров первого пакета может не мешать, а дальше у нас есть выбор, если на пульте активна опция “работать непрерывно”, то после приема с маячка пульт сразу пошлет короткий пакет, и маячек увидев активность канала пойдет на повторный GPS с повторным прогревом 8 сек, и уже третий или четвертый пакет будет точным.
Такой алгоритм позволяет работать как одиночно так и непрерывно, что кажется удобным. Код маячка кажется готов, а пульт еще допиливаю.

Vladimir_N

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

Pavel_liev

Порой очень не хватеет такого гиромодуля, у меня направление идет с GPS, а он любит потупить пару секунд и работает лишь в прямолинейном движении, еще видел ряд видео где дешевые модули компасов работали очень нестабильно, им мешали любые устройства что рядом, и осиливать связку компаса с акселерометром HMC5883 + MPU6050 пока руки не дошли. А у вас оно работает здорово, практически как на телефоне, к стати еще один вариант поиска - вбить координаты в гугл карту 😁

Pavel_liev

Кажется допилил тестовую программу маячка до вида на блок-схеме выше(режимы сна), памяти тини13 чудом хватило, включая софтварный UART с плюшками. Впереди испытания 😒

Pavel_liev

Предварительные замеры выявили серьезную проблему режима сна, быстрый CAD запрос наличия сигнала, что длится 60мс не видит сигналы ниже уровня шума, то есть не срабатывает с запросами менее rssi=58(-106дБм), при том сама кодировка LoRa работает гораздо дальше, до rssi=42(-122дБм), получается при использовании быстрого опросчика дальность маяка падает вдвое, до уровня Si4432. Еще очень короткие сообщения в 1 байт недостаточны для сработки уровня и хорошей работы протокола LoRa, нету той чувствительности пока не будет хотя бы несколько байт в пакете, в результате для корректной работы по дальности нужно вводить в прием RX, который длится в 10-20 раз дольше чем CAD, и не получается такой экономии батарейки как у Si4432 😦

Vladimir_N

Да, нехорошие грабли. 😦
Я тоже проверял дальность с уже разбуженным маяком. 😃
Может там проблема кроется в точной настройке частоты, у разбуженного маяка срабатывает автоподстройка и дальность возрастает.

Есть еще один момент, очень не желательно трясти микросхему запросами по шине SPI во время приема, от этого точно падает дальность даже у si4432.

Pavel_liev

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

Pavel_liev

Заменил модуль и повторил замеры, попутно исправил пару багов в коде, и оказалось что CAD сканирование работает корректно, сигнал LoRa вменяемо определяется когда есть, проблема была именно со старым модулем, не знаю что его замучило.
Но не все так гладко, двухсторонняя связь все-равно не так дальнобойна как односторонняя, без сна сигнал 100мВт удавалось ловить проволочной антенной до 1км в лесу, а иногда чуть больше, когда с режимом сна дальность упала до 700-800 метров. Пара таких мелких модулей работает примерно как радейка баофенг с аналоговым Si4432, тоже неплохо но всегда хочется большего. Еще возможен вариант разместить в пульте 1Вт модуль, такой гарантированно разбудит маячек, и в программе указать непрерывную работу на несколько минут, такой вариант связи может оказаться более дальнобойным, но 1Вт модули дороги и дефицитны.

По шине SPI, в мануале о запросах ничего не указано, а в реальности опрашиваю статусный регистр модуля раз в 10…20мс, но разницы по связи даже при постоянном опросе статусного регистра не заметил.

Vladimir_N

Есть чем померить выходную мощность?

Настройки по умолчанию:
RFM_Write(0x09,0x8F); //power =8f основной усилитель 80-8F -16 значений
RFM_Write(0x4D,0x84); // power default дополнительный усилитель ток 80-8F -16 значений
RFM_Write(0x0B,0x32); // current control on 100ma default. Для максимальной мощности согласно доке должно быть 120мА. 😃

Если поставить:
RFM_Write(0x09,0xFF); //Set maximum transmit power settings
RFM_Write(0x4D,0x8F); //мах power PA_boоst +20db
RFM_Write(0x0B,0x32); //current control on 150ma. Ток сильно задирать не стал, антенна не очень хорошая.

Мощность излучения должна быть больше.

Pavel_liev

Эти плюшки проходились еще пол года назад, регистр 0х09=8F максимальное значение, и FF для него вне конфига, будет пользоваться “по умолчанием”. Регистр 0х4D не принадлежит ЛоРа, он с пачки FSK/OOK и в режиме ЛоРа его не существует, только нативная таблица ЛоРы оказывает влияние на ее работу, отдельным особняком идут пины dio, но они больше бесполезны. С конфигом тока игрался ранее, и перебрав множество настроек пришел к выводу что максимальные значения по мощности и эффективности стоят по умолчанию, и любые правки сделают либо тоже самое либо хуже. А так 100мВт модуль при максимальной мощности потребляет около 120мА тока, это его предел, правда недавно вышли на Али модули SX1262 150мВт ревизии, ну 22дБм.
Еще очень охота спустить частоту на 170-315 МГц, согласно мануалу эти модули SX1278 это умеют, только развязка выходных фильтров не подходит, уже пробовал, при 370МГц завал был такой что реального выхода излучения почти не было, а номиналы неизвестны, и в самом Китае перестали продавать модули такой частоты, а раньше то были.

7 days later
Pavel_liev

В процессе работы по маячку вылезли неприятные грабли, проблема с питанием GPS. Для экономии акб необходимо отключать модуль приема спутников, но как это делать? Оказалось у тини13 не все выводы одинаковые по токоотдаче, РВ5 самый хилый, а РВ0/1 самые токовые, но даже с ними модуль что потребляет 25мА просаживается на 0.5в, что крайне плохо, ибо еще с рабочим АКБ получаем нерабочий GPS.
Отключать у GPS нужно именно провод “плюс”, ведь при отключении “минуса” потеряем запитку резервной памяти орбит “горячего” старта. Использование транзистора п-р-п не помогает, там так же просадка по переходу, а для р-п-р надо делать развязку, хочется простое компактное и надежное решение 😃

Vladimir_N

А чем p-n-p транзистор не нравится? Там из обвязки всего пара сопротивлений. Один с базы на вывод контроллера для ограничения тока 1-10кОм, второй высокоомный с базы на эмиттер 50-200К для надежного запирания транзистора. Второе сопротивление можно и не ставить, но нужно следить программно чтобы вывод не оказался воздухе. Транзистор эмиттером к аккумулятору коллектором к потребителю. Вместо биполярного можно поставить и полевой транзистор Р-типа c изолированным затвором, тогда вообще сопротивления можно не ставить.

V_Alex

Есть “цифровые” PNP транзисторы с обвязкой внутри, например - PDTA124. Очень экономят место на плате.

Pavel_liev

Почитал про транзисторы с составными резисторами, прикольно придумали, кажется мелочь а меньше рассыпухи что может отвалится, а значит выше надежность, только уже прошил тини13 под ногу “ресет”, а теперь получается надо управлять не положительным а отрицательным импульсом, когда тинька уже залочилась 😒
Варианты с неотключением ноги лучше не использовать, это лишние токи с АКБ и для автономности это критично. Думал еще о мелком тиристоре но у них зачастую токи удержания 20мА, что соизмеримы с потреблением GPS, а значит тиристор не выключится. Кажется для экономии Р-мосфет маленький в SOT23 будет лучше всего, у р-п-р транзистора выше ток утечки и управления, но затвору полевика понадобится подтяжка на “плюс”, а это еще один резистор 😃

V_Alex

Еще есть EMD9: fscdn.rohm.com/en/products/…/emd9t2r-e.pdf
Достаточно просто лапки между собой скоммутировать и с тиньки будете управлять NPN, а выходом - PNP. И тоже никаких лишних резисторов.

Pavel_liev

EMD9T2R дефицитка, днем с огнем не сыщешь, те же цифровые транзисторы так же не везде есть, а вот р-мосфет мелкий реально достать много где, и как запчасть он проще, думаю проще это лучше.
Заметил некрасивую особенность, собирал как-то платку сбрасывания ФЮЗ’ов для тинек, она корректно резетит лоченные в 8МГц чипы, но 1МГц не восстанавливает, а у меня уже 3шт таких тинек и новые закончились 😦

V_Alex
Pavel_liev:

…а вот р-мосфет мелкий реально достать много где, и как запчасть он проще, думаю проще это лучше.

В принципе, да. Причем, там можно обойтись без дополнительного места под резистор. Резистор 0603 нормально помещается на контактные площадки самого транзистора между лапками, просто лапку транзистора и контакт резистора нужно паять одновременно.

Вахтанг
Pavel_liev:

EMD9T2R дефицитка, днем с огнем не сыщешь, ,

вот www.terraelectronica.ru/product/312848 в наличии 55 тысяч штук. Думаю нам хватит.
или в другом магазине: www.smd.ru/katalog/tranzistory/sborki/

правда, в последнее время, так быстро компоненты со складов исчезают, что набрав корзину не успеваешь их заказать, приходится искать аналоги!

Pavel_liev

Вахтанг спасибо за ссылки на заграничные магазины, в окошке же написано, что с Украины 😁

Мелкие полевики уже заказал по месту, как приедут припаяю и продолжу тесты, надо снять еще одно видео в лесу с реальным режимом пробуждения и экономии акума, в режиме сна мультиметр показал 28мкА, плюс замеры радио раз в 8 сек на 20мА длительностью 60мс, кажется среднее потребление 180мкАч, что означает мелкого 3.5г акума на 100мАч должно хватить на 550 часов, или 22 дня режима сна, и это немного хуже чем у Si4432.

Вахтанг
Pavel_liev:

Вахтанг спасибо за ссылки на заграничные магазины, в окошке же написано, что с Украины

Извини Павел, на город не посмотрел.😒 как-то привык считать участников любимого форума друзьями и земляками.
Ну, за границей вы сами захотели находится, как и мой земляки, если что всегда ждём в гости. 😁
Что касается расчета жизни АКБ: к сожалению теоретический расчет не всегда совпадает с практикой. Как правили сами аккумуляторы имеют собственную утечку (хотя на литии это сведено к минимуму), на плате возникает не предвиденная утечка, опят таки имеет значение влажность и температура окружающей среды, качество аккумуляторов разное и т.д.
Я как-то таким вопросом занимался, по ТЗ флешка должна была прожить год в режиме хранения, и при этом в случае не санкционированного доступа уничтожить внутри себя секретную информацию. Решение вопроса оказалось не такой лёгкой, как показалось в начале проекта.