Baychi OpenLRS - дружелюбная ЛРС с широкими возможностями )

polarfox

Александр,спасибо.Ещё один вопросец.В руководстве к передатчику есть фраза ,касающаяся подстройки частоты:“2 - Freq Corr – индивидуальная поправка частоты. Позволяет точно синхронизировать частоты приемников и передатчиков. Обычно лежит в пределах 180-220. Подстройку можно производить по параметру A= выдаваемым приемником, добиваясь близости значения к 0/255.”
Что это за параметр А?Где его смотреть?Или это аналоговый режим РССИ?

PARSEK
polarfox:

A= выдаваемым приемником

Приемник по UART выдаёт во время работы. Смотреть в терминале.
У меня тоже были проблемы с биндом, после замены RFM23BPS в передатчике, приёмник никак не хотел биндиться с передатчиком, в автомате ловил 1-2 канала только, процесс бинда не прекращался.
Помогло уменьшение регистра 2 в передатчике до 185-190, после этого бинд стал проходить быстро и чётко.

baychi
polarfox:

Подстройку можно производить по параметру A= выдаваемым приемником, добиваясь близости значения к 0/255."

Сейчас еще добавлена команда Fxxx на передатчик и удобнее всего при наличии рации (или частотометра), подстроить передатчик по рации. Например выбставить на ней 433.075 МГц (1-й канал LPD) с минимальным шагом. На передатчике дать команду F0 и по подстраивать смещение кнопками ‘<’ и ‘>’ по чистоте звука. Для запоминания нажать Enter. А приемник уже подстраивать под настроенный передатчик командой rebind или вручную.

тигромух

Я тоже накопил парочку вопросов 😃

Александр, у вас в доке написано, что обычные значения регистра 2 “в пределах 180-220”. Я подстраиваю одноваттный орандж под сканнер в режиме частотомера и получаю лучший результат при значении регистра в 127. И при этом не дотягиваю до точного значения еще около 10кГц.
Соответственно, ребинд нормально не проходит. Находит один или два канала и все.
Если вписать каналы в приемник вручную - все работает, но непонятно как корректировать частоту, ведь команды Fx на приемнике почему-то нет.

Еще поэкспериментировал с таким приемником в качестве источника PPM (для ретранслятора).
Примерно от 0% до 30% стика газа передатчик вообще не реагирует на него, показывая 988. Выше - все ок.
Это какой-то нестандартный PPM? Как-то проверить без осциллографа можно?

BAU
тигромух:

ведь команды Fx на приемнике почему-то нет

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

baychi

Код в регистре 9 (RFMки) влияет на частоту изменением емкости на кварце. Что бы этот механизм работал, старший бит должн быть 1. Так что реальный диапазон регулировки +/- 64 относительно 192-х. Я пока не встречал модулей с коррекцией менее 195 или больше 215. Либо у Вас на RFM ее кварц аномальный, либо кондеры, либо Ввы подстраиваете частоту под неверный источник. Можно попробовать что-то сделать аппаратно, или задействовать регистры поправки частоты.
Команды Fxxx на приемнике нет, но можно туда временно залить прошивку передатчика.
Насчет странного PPM: гляньте какие длительности выдает прошивка в режиме R6=3… Там от 800 мкс ловится.

тигромух
baychi:

Код в регистре 9 (RFMки) влияет на частоту изменением емкости на кварце. Что бы этот механизм работал, старший бит должн быть 1.

Да, я смотрел код и даташит, однако факт. Могу завтра показать табличку изменения частоты в зависимости от регистра 2.

Кажется, нашел источник моих проблем. Это мелкий баг в строчке 662 в rfm22b.ino
Serial.print(fCh%1000);
Вместо 433.075 рисует 433.75. Мне кажется у меня в маяке такой же баг возможен, надо будет проверить 😃
Отстроил с точностью до килогерца. Теперь все нормально, спасибо 😃

baychi
тигромух:

Вместо 433.075 рисует 433.75. Мне кажется у меня в маяке такой же баг возможен

Врядли дело в этом. 700 кГц разности - никаким 9м регистром не перекрыть…
А ошибочку в коде можно заткнуть строчкой
if(fCh < 100) Serial.write(‘0’);
перед
Serial.print(fCh%1000);

тигромух
baychi:

Врядли дело в этом. 700 кГц разности - никаким 9м регистром не перекрыть…

Ну почти перекрыл же. 😃
Завтра покажу табличку - на работе осталась.
Все завелось после того, как я стал настраивать на .075, а не .75.
Получилось 214 на передатчике и 198 на приемнике (с прошивкой передатчика).

Насчет странного PPM:
PPM5 mode: T=53 Tc=-3 M=324 A=31
988 1199 1200 1201 1753
Еще и не все каналы иногда ловит.

baychi
тигромух:

Насчет странного PPM: PPM5 mode: T=53 Tc=-3 M=324 A=31 988 1199 1200 1201 1753 Еще и не все каналы иногда ловит.

Надо смотреть осциллом.
При отлове логика простая. Все что длиннее 800 мкс и короче 2500 - считается импульсом. Импульс длиннее 2500 мкс - межпакетной паузой.

Вы через PPM через ICP ловите или по прерыванию?
Если по прерыванию вот в этом месте (ppmsbus.ino)
#ifndef USE_ICP1 // неправильный режим - использованиие прерывания
pCntr++; // так как наш драйвер ловит оба фронта
if(!(pCntr&1)) { // половину нужно игнорировать
lastP=pulse;
return;
}
pulse+=lastP;
#endif
попробуйте поменять четность: if(pCntr&1) вместо if(!(pCntr&1)), может что даст?

тигромух
baychi:

Код в регистре 9 (RFMки) влияет на частоту изменением емкости на кварце. Что бы этот механизм работал, старший бит должн быть 1. Так что реальный диапазон регулировки +/- 64 относительно 192-х.

Даташиты RFM и Si44 немного различаются. В даташите RFM сказано, что старший бит добавляет 3.7пФ к емкости, и по дефолту он в нуле (0x7F = ). А в даташите Si про него сказано только, что он нужен для грубой подстройки частоты и все. По дефолту тоже в нуле (0x40).

Вообще параметр крайне неочевидный: прерывный, нелинейный, да еще и имеет обратное действие: увеличивая значение (емкость), уменьшаем частоту.
Имхо лучше его вообще не трогать, ребинд подгонит его сам. 😃
Табличка.

baychi:

Вы через PPM через ICP ловите или по прерыванию?
Если по прерыванию вот в этом месте (ppmsbus.ino)

По прерыванию. Поменял код, результат такой же.
Еще заметил, что пока стик газа в нуле (988) на остальные стики реакции нет.
Ладно, это неважно, все равно 6-ти канальный ретранслятор - вещь бесполезная 😃

baychi
тигромух:

Вообще параметр крайне неочевидный: прерывный, нелинейный, да еще и имеет обратное действие:

Да, пожалуй в новом проекте, надо будет перейти на подстройку частоты через Frequensy offset (0x73,0x74), там и точность повыше - 156.25 Гц и нелинейности нет.

тигромух:

Поменял код, результат такой же.

По логике и не должно было.

тигромух:

что пока стик газа в нуле (988) на остальные стики реакции нет.

Не меняется код на входе? Или на приемнике. У Вас случайно R4=1 не стоит? Это специальный режим для ретрансляторов = прекращает передачу при отсутствии исходного сигнала, о оно определяется по выходу любого канала за пределы 1000-1999 мкс (рассчитано на настройку FS ретранслятора). Но коль у Вас при нижнем положении стика 988 мкс - эту фичу использовать нельзя.

тигромух:

неважно, все равно 6-ти канальный ретранслятор - вещь бесполезная

Жаль, что загадка осталась. Кто-то еще писал про подобное. А мне повторить не на чем.
Есть один 6-ти канальный ретранслятор. Внизу у него все в порядке. Проблемма когда все 6 каналов на максиммум ставишь (2 мс), он межканальную паузу меньше 2 мс оставляет. 😦
А вобщем-то обычные приемники приемники с sbus или PPM выходом - лучшее решение для ретранслятора. 😃

тигромух
baychi:

Да, пожалуй в новом проекте, надо будет перейти на подстройку частоты через Frequensy offset (0x73,0x74), там и точность повыше - 156.25 Гц и нелинейности нет.

Вы AFC разве не используете? Они же вместе не работают.
А чем плохо просто прибавить поправку в герцах к центральной частоте?

baychi:

Не меняется код на входе? Или на приемнике.

Смотрю на передатчике в отладке PPMа. R4=0. Передача не прекращается, просто все каналы замирают в своих положениях.

baychi:

А вобщем-то обычные приемники приемники с sbus или PPM выходом - лучшее решение для ретранслятора.

Да, я прицелился на 9-ти канальный DSM2 оранж с SBUS 😃

baychi
тигромух:

Вы AFC разве не используете? Они же вместе не работают.

Хочу уйти от AFC в новом протоколе. ИМХО, достаточно будет посткорекции. Нам точность важнее оперативности.

тигромух:

А чем плохо просто прибавить поправку в герцах к центральной частоте?

Строго говоря там не смещение, а kx, и нужно пересчитывать поправку в зависимости от частоты. С другой стороны на RFM69 регистра прыжков вообще нет…

Raider

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

baychi
Raider:

как доработать приемник чтобы показания RSSI не скакали постоянно.

  1. Поставить на выход первого разъема (RSSI) конденсатор в 1 мкФ между землей и сигналом.
  2. Использовать усредение с нужным коэффициентом в регистре 40 (обычно достаточно R40=10).
Raider

Конденсатор неполярный использовать? Или электролит?

тигромух
baychi:
  1. Использовать усредение с нужным коэффициентом в регистре 40 (обычно достаточно R40=10).

Кстати, если выбрать режим писка и повесить RSSI на другой пин, то усреднение включить нельзя?

baychi
тигромух:

то усреднение включить нельзя?

В текущей версии не получится, так как R40 задает одновременно режим и усреднение.
Но если что-то праввить и на другой pin вывести писк, R40 сможет работать только на усреденение.
Другой вопрос получится ли одновременно ШИМ RSSI и писк? Я не вникал, но там вроде один таймер на это задействован…

Raider:

Конденсатор неполярный использовать?

Разумееется. Если не найдете на 1 мкФ, можно и меньше поставить. От 0.1 уже эффект есть…

тигромух
baychi:

Другой вопрос получится ли одновременно ШИМ RSSI и писк? Там вроде один таймер на это задействован…

Исходники на эту тему еще не читал. Но у одного таймера, вроде, два ШИМа?
В конце-концов, есть пищалки с генератором, им ШИМ не нужен. Я пищал такой из прошивки Kha на пине SDA.

ССМ=
тигромух:

Я пищал такой из прошивки Kha на пине SDA.

На микрофон ,а далее на передатчик?