nRF2401+PA - мала дальность связи

Тема в разделе "Проводная и беспроводная связь", создана пользователем ВАлерий99, 8 июн 2017.

  1. ВАлерий99

    ВАлерий99 Нерд

    проблема связи двух модулей при Ардуино
    nRF с усилителем работает метров на 30
    даже в чистом поле
    Менял каналы с 5 на 101, задал минимальную скорость
    С одной антенны по необходимости снял пластмассовый корпус, оставил только прикрутку антенны и сам кабель с 1\4 волновой гильзой и 2.5 см центральной жилы.
    Попутно обнаружил, что оплётка антенны не контачит с уголковым штекером на модуле. Деформировал немного юбку штекера -контакт появился, но результата не дало.
    Есть подозрение , что было высокое напряжение на модуль, в связи с чем мог сгореть выходной усилитель
    Однако подключение и отключение антенны влияет на дальность .
    Можно ли вставить 1\4 волны вывод прямо в уголковый выводной штекер как антенну? теоретически можно, но эффекта нет.
    Модуль стоит прямо на плате с Ардуинкой, возможны ли какие нить наводки-помехи
     
  2. sslobodyan

    sslobodyan Гик

    Питание какое к модуля? Может получить 120 ма?
     
  3. ВАлерий99

    ВАлерий99 Нерд

    питание следующее
    на одной ардуине+модуле -от нетбука USB( стандарт тока там кажется не менее 400ма) , а потом S1117 на 3.3 от 5В платы ардуины
    второйй модуль от платы, запитаной от регулятора оборотов бесколлекторного двигателя котрый в свою очередь от батарей 12в, там внутренний стабилизатор на 5 вольт, расчитан на питание 4 сервомашин. Там уж наверняка ток больше, при том что я сервы не подключаю. 3.3 получаю также от S1117.
    Сегодня ещё поменял кондёры и вместо антенн вставил проволочки 2.5см
    Толку нет.
    Ардуинки наны. но 5в там собственно транзитом.
     
    Последнее редактирование: 9 июн 2017
  4. sslobodyan

    sslobodyan Гик

    Ну если в питании есть уверенность, то остается антенна и софт. Я на таких модулях при 250к скорости и пакете до десятка байт получал в поле свыше 500 метров дальности без автоподтверждения и межпакетным интервалом 25мс. Софт свой.
     
  5. ВАлерий99

    ВАлерий99 Нерд

    дней через 10 у меня будет ещё один модуль, тогда попробую подменять один и другой по очереди в надежде что оба дефектные маловероятно. Также получу два 430 Мгц SI4432 говорят у них дальность болше да и с антенной попроще ибо кусок провода тоже можно просто припаять(предусмотрено на плате)
    В софт модуля я не въезжал особо использовал стандартную библиотеку nRF24 изАрдуинки. старый уже распылятся по дебрям, но тут вопрос
    -а как может софт Арды(скеч) влиять на дальность? или имеется ввиду"свой софт" -для настройки модуля во включениях?
    второй вопрос повторюсь-я вставил в выходную центральную жилу 2.5 см проволоки, что означает теоретически туже антенну, но дальность не поменялась.Правда я на одном модуле пытался выпаять уголок, но не получилось, может что там нарушил.
    И ещё закавыка. На выходе модуля перед антенной стоит конденсаторный П-фильтр(как я понял), это значит, что центральная жила не должна звонится с корпусом , а там- КЗ в 2ома на обоих модулях( стрелочный тестер)!
     
    Последнее редактирование: 9 июн 2017
  6. rkit

    rkit Гуру

    Этим модулям нужен хороший фильтрованный источник питания. и сам модуль нужно экранировать. Без этого даже 30м - удивительно хороший результат.
     
  7. ВАлерий99

    ВАлерий99 Нерд

    это типа балдеет от собствнной антенны?
    Когда то в детстве баловался 27 мгц, навесным монтажём, с длинными коцами с открытими каскадами. Ничего не получилось, а потом через несколько лет понял, что при трёх каскадах без экранировки последний будет возбуждать первый
     
  8. sslobodyan

    sslobodyan Гик

    Посмотрите тогда на OpenLRS - как раз под него.
    Для НРФки есть несколько библиотек под ардуинку и все они работают по разному. Тем более, что что кроме обслуживания радиомодулей софт еще какую-то работу должен делать. И если вы поллите готовность данных вместо работы по прерываниям, а главный луп отрабатывает по 50мс цикл при 20мс цикле передачи, то естественно что первые три пакета уйдут быстро, попадут в буфер приемника, а остальные будут буфер забивать и начнутся огромные затыки.
    Теоретически - да, не должна. Но что вы хотите от модуля за 0.7 бакса? Там может вообще не быть согласования, идут на удешевление. Кстати, не боитесь стрелочным прибором тыкать в схемку с максималкой 3.6 вольта? Сколько там у вас на щупах при прозвонке?
     
  9. ВАлерий99

    ВАлерий99 Нерд

    за первый пункт спасибо
    смысл второго понял, но что наваял чётко не вспомню смысл следующий(тема -беспилотник, задача-тренировать моск на старости лет)
    Итак. основной лоп приёмника обрабатывает все датчики, включая звуковой высотомер и НРФ
    В пакете НРФ есть байт инкремента 1-256 за каждую посылку. таким образом я контролирую приход нового пакета..Дилеем в передатчике я подобрал длительность его лопа так, что лоп приёмника составляет 11-13 мс при том что инкримент определяется в каждом принятом пакте, а потом добавляет разницу до 20 мс. Когда приём нарушается, лоп передатчика становиться около 30 мс за счёт повторных попыток(но иногда было полсекунды почемуто) и тогда в передатчике включается аварийный зумер.
    Так я контролирую наличие связи.
    Короче интуитивно я решил проблему совместимомти циклов ПРД и ПРМ, хоть может и не корректно.
    На этут тему можно говорить долго, но не стоит ибо бесполезно.Каждый всё решает по своему и в меру глубины понимния. А я пока плаваю по поверхности, но кое что интуичу по прошлому опыту
    И по третьему пункту-оно то так, только КЗ и упрощения это разные вещи. Может там какая индуктивность скрытая на землю, но схемы ...+PA+AN не нашёл , а визуально там кондёры.
     
    Последнее редактирование: 10 июн 2017
  10. ВАлерий99

    ВАлерий99 Нерд

    дневник темы
    взял алюминиевые пластины для газовой печки(конфорки от грязи накрывать), они толще, чем обычная фольга, умотал один модуль, только антенна торчит. А второй модульь в коробке 6 *10*2 см на плате умотал вместе с коробком, тоже только антенна торчит - результат тот же. Захожу за две стены в квартире- потеря связи в том же географическом месте глобуса, в тамбуре около лифта.
    печалька
     
  11. sslobodyan

    sslobodyan Гик

    О, вижу коллегу ;) Тоже делал радиоуправление, только на катер. Рекомендую отключить автоподтверждение от слова совсем. Этим вы отключите самую вкусную фичу данных трансиверов, зато увеличите дистанцию работы. И зачем вам отслеживать прием пакета? Отправляйте с передатчика с определенным интервалом. Быстрее 20мс делать незачем - цикл сервы 20мс. А приемник пускай шлет телеметрию после приема каждой посылки как подтверждение работоспособности канала. На передатчике послали пакет - уменьшили переменную на 1. Приняли телеметрию от приемника - увеличили ту же переменную на 2 и ограничили скажем до 32. Таким образом если переменная близка к 32 - радиоканал работает хорошо, сильно меньше - кричим караул. И старайтесь работать на скорости 250к с минимального размера пакетами, даже можно уменьшать црц и размер адреса. Чем быстрее трансивер выплюнет пакет в воздух, тем точнее будет частота и выше дальность. Личный опыт.
     
  12. ВАлерий99

    ВАлерий99 Нерд

    я тоже реализовывал контрольприхода пакетов програмно, приблизительно также.За признак прихода я брал неравенство инкриментного байта предидущему значению.А дальше был подсчёт принятых до 30 и отнимание до 0. Я выше упоминал.
    Ну не хочу я вникать в суть работы модуля, хотя может и придётся
    Но....
    Наличие автоподтверждения НЕ может влиять существенно на качество работы СВЧ тракта, какая разница какими импульсами кидаться, собственно импульсами дальности или импульсами автоподтверждения или телеметрии..
    Речь идёт не о том что он добивает на 500 м а не на 1000 заявленых, а о том , что он работает не более 50 м при максимальной мощности по настройкам.
    Тут может какие дефекты в библиотеке, что нить напутали с настройкой модулей. Типа в определении MAX POW прицепили код в соответствующий регистр для настройки в минимальную мощность.
    только вот как то не хочется забивать голову глубоким копанием в голове у модуля.
    Тут предстоит на днях передислокация на другое место на время и там меня ждут модули SI 4432
    Попробуем на них.
    Чтоб исключит подозрения, что изначально китайцы продают дефектные модули, писалось и такое.
    И ещё будет один nRF24 из другого источника, ну типа если дело было в одном битом модуле
    Померял осцилом питание 5в на арде, присутствуют шумы от импульсов, 0.4 в, уменьшил раза в 3 кондёром 1000.0. хотя может они с USB приходили. после 3.3в с s1117 на модуль вообще чистые
     
    Последнее редактирование: 12 июн 2017
  13. sslobodyan

    sslobodyan Гик

    Вы можете ошибаться :) Разработчики трансивера, а тем более его клона, не предусматривали, что будет стоять еще и усилитель, у которого тоже есть свое время переключения. Так вот по отзывам забугорных коллег (лично я не проверял, но верю им), время переключения данного усилителя практически на грани. Получается, что трансивер уже ждет ответ, а усилитель еще на передаче. Почему я и отказался от автоподтверждения и стабильно на таких модулях имел полкилометра в поле.
    А библиотеки надо писать самому, иначе потом в разы увеличивается время отладки, проходили - знаем.
     
  14. ВАлерий99

    ВАлерий99 Нерд

    я думаю, что такой принципиальный глюк имел бы общепринятый отве,ткоторый бы гулял по сети, как и рекомендации по кондёру на входе питания.
    Ну ладно. Я ещё "юный " пользователь nRF24 поэтому оспаривать не буду, а просто попрошу подсказать как отключить автоответ, ибо в готовых командах настроек я этого не нашёл, а ковыряться в 24.h настойчивости и опыта не хватает. (если я вообще правильно понимаю ситуацию вокруг сего девайса)
    Неполный список команд я находил в сети, но там не было рассматриваемой. А может есть источник с полным набром команд настроек, приму с благодарностью.
     
    Последнее редактирование: 13 июн 2017
  15. sslobodyan

    sslobodyan Гик

    http://tmrh20.github.io/RF24/classRF24.html#aec71746d59da978bcbb975167886a2cc
    Разработчики трансивера наверняка не предусматривали, что китайцы будут лепить к нему усилитель с большим временем переключения. Но это мое мнение, может быть ошибочным :)
     
  16. ВАлерий99

    ВАлерий99 Нерд

    RF24_CRC_DISABLED = 0
    это ЭТО?(сам нашёл до прочтения поста в 24.h)
    я так понял это вставить в setup?
     
    Последнее редактирование: 13 июн 2017
  17. sslobodyan

    sslobodyan Гик

    Я ж вам дал точную ссылку на
    void RF24::setAutoAck ( bool enable )
    Куда вставлять - это вам решать. Рекомендую хотя бы онлайн-переводчиком посмотреть доку на библиотеку.
     
  18. ВАлерий99

    ВАлерий99 Нерд

    я написал свой пост и отправил его одновременно с вашим, те ваш не читал
    Спасибо, посмотрел, буду разбираться
     
  19. ВАлерий99

    ВАлерий99 Нерд

    с рекомендованной вами функцией не разобрался, компилятор матерился
    сработало это- radio.setAutoAck(0);
    но в поле пока не выходил, определил по длительности лопа, он расчётной длины без увеличения на автоподтверждени
    напрашивается вопрос -
    а если из предложеной void RF24::setAutoAck ( 0 ) взять строку
    write_register(EN_AA, 0); то так тоже можно?
    А компилятор не жуёт!
     
  20. sslobodyan

    sslobodyan Гик

    А кто сказал, что писать надо RF24::setAutoAck? У вас экземпляр класса как называется? radio? Вот так и обращайтесь к нему по его имени radio.setAutoAck . Аналогично с функцией записи в регистр.