OrangeRx Open LRS 433MHz TX Module

тигромух
baychi:

Мне лень по английски спорить. 😃

Надо заставлять себя 😃
Пора, пора выходить на международный уровень! 😃

тигромух

Для тех, кто интересуется индикатором качества сигнала и розумиет ангельску мову: почитайте.
Дискасс?

baychi
тигромух:

Дискасс?

Константин, если хотите обсудить RSSI, повторите Ваш пост по русски. 😃

Для начала, я хотел бы понять, что Вы ждете от RSSI? Чего хотите в итоге получить? Возможны варианты:

  1. Уровень сигнала только целых пакетов (непринятые не учитываются).
  2. Средний уровень приема, когда непринятые пакеты считаются нулевым уровнем.
  3. Уровень сигнала или помех на принимаемых каналах (воообще не смотрим принят пакет, или нет).
  4. Отношение сигнал/шум на целых пакетах (меряем шум после целого пакета и вычитаем).

Насколько я понимаю у Эксперта и у KHA реализован вариант 2.

тигромух
baychi:

Константин, если хотите обсудить RSSI, повторите Ваш пост по русски.

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

baychi:

Насколько я понимаю у Эксперта и у KHA реализован вариант 2.

Я пытаюсь разобраться, как сделано у KHA и похоже, что вопреки его словам это ближе к варианту 1.
Если посмотрите вывод, то увидите, что при двух заглушенных каналах RSSI не уменьшается. Заглушенные каналы имеют noisefloor=0. А нулю он равен оттого, что пакет не принят и, соответственно, не был измерен уровень шума.

RSSI в выводе не равен тому, что выставляется на пине. KHA при потере пакета сразу дергает пин RSSI в ноль. Но он не отражает этот факт в сэмплированном RSSI, который и виден в выводе и выставляется на пине через каждые 20 пакетов.
По идее, это перекладывает проблему с программного уровня на аппаратный. Наверное, хорошо подобранный RC-фильтр позволит обнаружить теряющиеся пакетики. Но мне это не нравится.

То, что я предлагаю, описано там псевдокодом. Если говорить словами, то я предлагаю:

  1. Взять средний RSSI пакетов (RSSI) и шума (NOISE) на каждом канале за период.
  2. Составить индикатор качества связи как сумму по всем каналам ((RSSI - NOISE)/ЧИСЛО_КАНАЛОВ).
baychi
тигромух:
  1. Взять средний RSSI пакетов (RSSI) и шума (NOISE) на каждом канале за период.

Да, только целых пакетов. Замер во время приема и после.

тигромух:

Составить индикатор качества связи как сумму по всем каналам ((RSSI - NOISE)/ЧИСЛО_КАНАЛОВ).

Вот здесь я бы битые пакеты не сумировал бы.

тигромух:

Наверное, хорошо подобранный RC-фильтр позволит обнаружить теряющиеся пакетики.

У Эксперта ШИМ RSSI перестраивается после каждого пакета. Если пакет принят и целый, выдается его RSSI, если нет - 0.
Усреднение фактически делается в OSD.

тигромух
baychi:

Вот здесь я бы битые пакеты не сумировал бы.

Хммм. Почему?

Я для непринятого пакета считаю 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 - общий индикатор качества линка.

baychi
тигромух:

Я для непринятого пакета считаю RSSI=0.

Можно и так.

тигромух:

Вот первые тесты: pastebin.com/raw.php?i=uJfsvWmV

Хмм. Получается неплохо.
Только вот когда включаете рацию 5 Вт рядом с приемником на границе связи и теряется только один-два канала - это фантастика какая-то!
У меня в такой ситуации стабильно гаснут все даже на 1 Вт помехи.
У Вас точно рация исправна? 😃 Тогда почему ее RSSI меньше RSSI родного передатчика рядом?

тигромух
baychi:

Только вот когда включаете рацию 5 Вт рядом с приемником на границе связи и теряется только один-два канала - это фантастика какая-то!

Тоже удивился. Но тут каналы сильно разнесены, может поэтому.

baychi:

У Вас точно рация исправна? Тогда почему ее RSSI меньше RSSI родного передатчика рядом?

С Эдиком измеряли на КСВ-метре, и получали почти честную заявленную мощность… Ладно, посмотрел спеки, 4Вт там на 433 😃
RSSI рации в пасте нигде нет. Т.к. при включенной рации принятых пакетов нет, то и измерения получаются фиксированные: RSSI=0, NOISE=200.
Во время отладки я оставлял пробу RSSI при любых условиях и видел, что на включенной рации RSSI поднимается до ~230-240. Можно посмотреть сколько это будет в dBm.

baychi
тигромух:

Но тут каналы сильно разнесены, может поэтому.

Не достаточно, 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 Вт.

тигромух
baychi:

NF-sum - это и есть RSSI при сигнала рации.

Для битого пакета я не могу это посчитать. Вернее, могу, но пока не сделал. Сейчас если пакет битый, то NF=200.
Наверное, буду считать уровнем шума измеренный RSSI пакета, если он окажется битым. Надо подумать, есть ли в этом смысл…

baychi:

А там мощность не регулируется? В моей можно выбрать 1, 2.5 и 5 Вт.

Регулируется. Стоит HIGH.

baychi
тигромух:

Наверное, буду считать уровнем шума измеренный RSSI пакета, если он окажется битым. Надо подумать, есть ли в этом смысл…

Есть смысл считать шум после любого пакета. А для битого предпологать уровень пакета равный уровню шума.

тигромух:

Регулируется. Стоит HIGH.

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

тигромух
baychi:

Есть смысл считать шум после любого пакета. А для битого предпологать уровень пакета равный уровню шума.

Как посчитать шум после пакета, если пакета не было? 😃
При уровень пакета=уровень шума так и так в результате будет ноль. То есть, для конечного результата этот подсчет бессмысленен, только ради поиграться с отладкой…

baychi:

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

Передатчик в микроволновку, на приемнике анализатор, и включить рацию?

baychi
тигромух:

Как посчитать шум после пакета, если пакета не было?

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

тигромух:

Передатчик в микроволновку, на приемнике анализатор, и включить рацию?

Ну да. В той-же ситуации очень бы зотелось увидеть спектр, а то какая-то фантастика получается. 😃

тигромух
baychi:

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

Это слишком глубоко лезть в потроха прошивки и даташит РФМки 😃
Не перелопачивая код KHA это сделать нельзя.

Сканы:
Приемник без антенны, передатчик рядом

Приемник без антенны, передатчик в микроволновке

Приемник без антенны, передатчик в микроволновке, рация включена

baychi
тигромух:

Приемник без антенны, передатчик в микроволновке

Рация гдето -15 дБм, передатчик -30 рядом (значит рация действительно 4 Вт) и -90 в микроволновке. Виден подъем обшего уровня пола при работе рации и фактическое отсечение всех пиков передатчика кроме 2-х крайних.
Может дело в том, что приемник без антенны? Явно видна неравномерность уровня прыжков. Хотя, это может быть из-за нелостаточного усреднения…
Я делал немного не так - приемник с антенной. Передатчик на 100 мВт, заглушенный аттенюатором 20 дБ (с антенной), в микроволновке. Приемник явно на границе срыва - идут потерянный пакеты. В таком режиме 1 Вт рация полностью глушит связь уже в 5 м.
По крайне мере так было, пока не поставил SAW фильтр. 😃

тигромух

Я думаю тут дело еще и в том, что передачи от РФМки очень дискретные. Они и так-то далеко не постоянные (20 пакетов в секунду), а разнесенные по каналам, становятся совсем редкими. Так что спектроанализатором надо анализировать маяк или хотя-бы одну частоту, без прыжков.

baychi
тигромух:

дело еще и в том, что передачи от РФМки очень дискретные

Зато рация излучает непрерывно. 😃
В общем то я ничего сверхнеобычного не увидел. У Эксперта полное глушение наступает при превышении уровня помехи над полезным сигналом на 70-75 дБ (если частота помехи в середине диапазона). Просто хоелось бы понять, что меняет заведомо большая ширина канала? У Вас кстати какая скорость п девиацияя стоит?

тигромух
baychi:

Зато рация излучает непрерывно.
В общем то я ничего сверхнеобычного не увидел. У Эксперта полное глушение наступает при превышении уровня помехи над полезным сигналом на 70-75 дБ (если частота помехи в середине диапазона). Просто хоелось бы понять, что меняет заведомо большая ширина канала? У Вас кстати какая скорость п девиацияя стоит?

Рацию отлично видно. Чего не скажешь о передатчике 😃
Я экспериментирую на скорости 4800, а девиация у KHA не меняется, 1.25кГц.

baychi
тигромух:

а девиация у KHA не меняется, 1.25кГц

Нверное все-таки 12.5 кГц? В исходной прошивке все 30 было…

тигромух:

Я экспериментирую на скорости 4800,

А вот это может значить. По сравнению с 7200 эксперта, почти 4 дБ преимущества…

тигромух
baychi:

Нверное все-таки 12.5 кГц? В исходной прошивке все 30 было…

spiWriteRegister(0x72, 0x02);   // fd (frequency deviation) 2*625Hz == 1.25kHz
baychi
тигромух:

Код:

Не понял юмора! Это противоречит требованию даташита (да и вообще теории передачи информации).
Девиация не может быть меньше половины бодовой скорости. (См. понятие индекс модуляции).
Плюс ко всему с такой узкой девиацией очень сильно возрастают требования к совпадению частот…
Может это фрагмент кода маяка?

В исходном 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)