OrangeRx Open LRS 433MHz TX Module
Константин, если хотите обсудить RSSI, повторите Ваш пост по русски.
Мне лениво переводить. Там и так почти русский, тока английскими словами 😃
Я хочу обсудить индикатор качества сигнала. Как мы уже выяснили, это не обязательно RSSI.
Насколько я понимаю у Эксперта и у KHA реализован вариант 2.
Я пытаюсь разобраться, как сделано у KHA и похоже, что вопреки его словам это ближе к варианту 1.
Если посмотрите вывод, то увидите, что при двух заглушенных каналах RSSI не уменьшается. Заглушенные каналы имеют noisefloor=0. А нулю он равен оттого, что пакет не принят и, соответственно, не был измерен уровень шума.
RSSI в выводе не равен тому, что выставляется на пине. KHA при потере пакета сразу дергает пин RSSI в ноль. Но он не отражает этот факт в сэмплированном RSSI, который и виден в выводе и выставляется на пине через каждые 20 пакетов.
По идее, это перекладывает проблему с программного уровня на аппаратный. Наверное, хорошо подобранный RC-фильтр позволит обнаружить теряющиеся пакетики. Но мне это не нравится.
То, что я предлагаю, описано там псевдокодом. Если говорить словами, то я предлагаю:
- Взять средний RSSI пакетов (RSSI) и шума (NOISE) на каждом канале за период.
- Составить индикатор качества связи как сумму по всем каналам ((RSSI - NOISE)/ЧИСЛО_КАНАЛОВ).
- Взять средний RSSI пакетов (RSSI) и шума (NOISE) на каждом канале за период.
Да, только целых пакетов. Замер во время приема и после.
Составить индикатор качества связи как сумму по всем каналам ((RSSI - NOISE)/ЧИСЛО_КАНАЛОВ).
Вот здесь я бы битые пакеты не сумировал бы.
Наверное, хорошо подобранный RC-фильтр позволит обнаружить теряющиеся пакетики.
У Эксперта ШИМ RSSI перестраивается после каждого пакета. Если пакет принят и целый, выдается его RSSI, если нет - 0.
Усреднение фактически делается в OSD.
Вот здесь я бы битые пакеты не сумировал бы.
Хммм. Почему?
Я для непринятого пакета считаю RSSI=0.
Вот первые тесты: pastebin.com/raw.php?i=uJfsvWmV
Комментарии по полям:
Channel - номер канала
Freq - частота
RSSI_sum - сумма RSSI принятых пакетов за интервал. Для битого пакета RSSI=0.
RSSI_count - количество проб RSSI принятых пакетов
RSSI - посчитанный средний RSSI за период
NF_sum - сумма RSSI шума за интервал. Для битого пакета, для простоты, считаю = 200
NF_cnt - количество проб RSSI шума
NF - посчитанный средний уровень шума за период
LQI_ch - качество сигнала на данном канале.
LQI - общий индикатор качества линка.
Я для непринятого пакета считаю RSSI=0.
Можно и так.
Вот первые тесты: pastebin.com/raw.php?i=uJfsvWmV
Хмм. Получается неплохо.
Только вот когда включаете рацию 5 Вт рядом с приемником на границе связи и теряется только один-два канала - это фантастика какая-то!
У меня в такой ситуации стабильно гаснут все даже на 1 Вт помехи.
У Вас точно рация исправна? 😃 Тогда почему ее RSSI меньше RSSI родного передатчика рядом?
Только вот когда включаете рацию 5 Вт рядом с приемником на границе связи и теряется только один-два канала - это фантастика какая-то!
Тоже удивился. Но тут каналы сильно разнесены, может поэтому.
У Вас точно рация исправна? Тогда почему ее RSSI меньше RSSI родного передатчика рядом?
С Эдиком измеряли на КСВ-метре, и получали почти честную заявленную мощность… Ладно, посмотрел спеки, 4Вт там на 433 😃
RSSI рации в пасте нигде нет. Т.к. при включенной рации принятых пакетов нет, то и измерения получаются фиксированные: RSSI=0, NOISE=200.
Во время отладки я оставлял пробу RSSI при любых условиях и видел, что на включенной рации RSSI поднимается до ~230-240. Можно посмотреть сколько это будет в dBm.
Но тут каналы сильно разнесены, может поэтому.
Не достаточно, 14 МГц всего, а рация в центре. Когда помеха на 70 дБ превышает полезный сигнал, RFM-ка гарантированно затыкается.
RSSI рации в пасте нигде нет.
Channel: 4, Freq: 438920000, RSSI_sum: 0, RSSI_count: 3, RSSI: 0, NF_sum: 800, NF_cnt: 4, NF: 200, LQI_ch: 0
NF-sum - это и есть RSSI при сигнала рации. 😃
посмотрел спеки, 4Вт там на 433
А там мощность не регулируется? В моей можно выбрать 1, 2.5 и 5 Вт.
NF-sum - это и есть RSSI при сигнала рации.
Для битого пакета я не могу это посчитать. Вернее, могу, но пока не сделал. Сейчас если пакет битый, то NF=200.
Наверное, буду считать уровнем шума измеренный RSSI пакета, если он окажется битым. Надо подумать, есть ли в этом смысл…
А там мощность не регулируется? В моей можно выбрать 1, 2.5 и 5 Вт.
Регулируется. Стоит HIGH.
Наверное, буду считать уровнем шума измеренный RSSI пакета, если он окажется битым. Надо подумать, есть ли в этом смысл…
Есть смысл считать шум после любого пакета. А для битого предпологать уровень пакета равный уровню шума.
Регулируется. Стоит HIGH.
Любопытно было бы взглянуть на картину глушения в микровлновке через прошивку спектроанализатора. Там все видно.
Есть смысл считать шум после любого пакета. А для битого предпологать уровень пакета равный уровню шума.
Как посчитать шум после пакета, если пакета не было? 😃
При уровень пакета=уровень шума так и так в результате будет ноль. То есть, для конечного результата этот подсчет бессмысленен, только ради поиграться с отладкой…
Любопытно было бы взглянуть на картину глушения в микровлновке через прошивку спектроанализатора. Там все видно.
Передатчик в микроволновку, на приемнике анализатор, и включить рацию?
Как посчитать шум после пакета, если пакета не было?
При установившейся связи Вы же знаете, когдга он должен быть и когда должен закончится.
Или если поймана преамбула, Вы все равно получите информацию о завершении приема пусть и битого пакета.
Передатчик в микроволновку, на приемнике анализатор, и включить рацию?
Ну да. В той-же ситуации очень бы зотелось увидеть спектр, а то какая-то фантастика получается. 😃
При установившейся связи Вы же знаете, когдга он должен быть и когда должен закончится.
Или если поймана преамбула, Вы все равно получите информацию о завершении приема пусть и битого пакета.
Это слишком глубоко лезть в потроха прошивки и даташит РФМки 😃
Не перелопачивая код KHA это сделать нельзя.
Сканы:
Приемник без антенны, передатчик рядом
Приемник без антенны, передатчик в микроволновке
Приемник без антенны, передатчик в микроволновке, рация включена
Приемник без антенны, передатчик в микроволновке
Рация гдето -15 дБм, передатчик -30 рядом (значит рация действительно 4 Вт) и -90 в микроволновке. Виден подъем обшего уровня пола при работе рации и фактическое отсечение всех пиков передатчика кроме 2-х крайних.
Может дело в том, что приемник без антенны? Явно видна неравномерность уровня прыжков. Хотя, это может быть из-за нелостаточного усреднения…
Я делал немного не так - приемник с антенной. Передатчик на 100 мВт, заглушенный аттенюатором 20 дБ (с антенной), в микроволновке. Приемник явно на границе срыва - идут потерянный пакеты. В таком режиме 1 Вт рация полностью глушит связь уже в 5 м.
По крайне мере так было, пока не поставил SAW фильтр. 😃
Я думаю тут дело еще и в том, что передачи от РФМки очень дискретные. Они и так-то далеко не постоянные (20 пакетов в секунду), а разнесенные по каналам, становятся совсем редкими. Так что спектроанализатором надо анализировать маяк или хотя-бы одну частоту, без прыжков.
дело еще и в том, что передачи от РФМки очень дискретные
Зато рация излучает непрерывно. 😃
В общем то я ничего сверхнеобычного не увидел. У Эксперта полное глушение наступает при превышении уровня помехи над полезным сигналом на 70-75 дБ (если частота помехи в середине диапазона). Просто хоелось бы понять, что меняет заведомо большая ширина канала? У Вас кстати какая скорость п девиацияя стоит?
Зато рация излучает непрерывно.
В общем то я ничего сверхнеобычного не увидел. У Эксперта полное глушение наступает при превышении уровня помехи над полезным сигналом на 70-75 дБ (если частота помехи в середине диапазона). Просто хоелось бы понять, что меняет заведомо большая ширина канала? У Вас кстати какая скорость п девиацияя стоит?
Рацию отлично видно. Чего не скажешь о передатчике 😃
Я экспериментирую на скорости 4800, а девиация у KHA не меняется, 1.25кГц.
а девиация у KHA не меняется, 1.25кГц
Нверное все-таки 12.5 кГц? В исходной прошивке все 30 было…
Я экспериментирую на скорости 4800,
А вот это может значить. По сравнению с 7200 эксперта, почти 4 дБ преимущества…
Нверное все-таки 12.5 кГц? В исходной прошивке все 30 было…
spiWriteRegister(0x72, 0x02); // fd (frequency deviation) 2*625Hz == 1.25kHz
Код:
Не понял юмора! Это противоречит требованию даташита (да и вообще теории передачи информации).
Девиация не может быть меньше половины бодовой скорости. (См. понятие индекс модуляции).
Плюс ко всему с такой узкой девиацией очень сильно возрастают требования к совпадению частот…
Может это фрагмент кода маяка?
В исходном Open было:
//_spi_write(0x72, 0x1F); // frequency deviation setting to 19.6khz (for 38.4kbps)
_spi_write(0x72, 0x2E); // frequency deviation setting to 28.8khz(for 57.6kbps)
До 25 января там было так:
spiWriteRegister(0x72, 0x30); // frequency deviation setting to 19.6khz (for 38.4kbps)
Закоммичено с умыслом, явно не опечатка. Сам в этой теме не силен, поэтому прокомментировать не могу 😃
Я прикрутил к приемнику пищалку. Он теперь ругаеццо на каждый потерянный пакетик. 😃
Очень занятно это выглядит, если начать баловаться рацией 😃
Мне кажется, вывод LQI на ОСД и писк на потерянные пакеты - это то, что меня полностью устроит 😒
Кстати, кто силен в архитектуре атмеги: насколько корректно вешать такую пищалку напрямую на вывод PC4 (A4 в адруине)?
насколько корректно вешать такую пищалку напрямую на вывод PC4 (A4 в адруине)?
Предельный ток для Меги - 40 мА. Реально там будет меньше, так как нагрузочная способность выхода 25-30 мА.
Пищалка на 30 мА. Выход не сгорит. Но небольшой резистор 10-20 Ом и кондер 1-10 мкФ парралельно пищалке я бы добавил.
Почему то буржуи рекомендуют 100 ом последовательно ставить.