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

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.

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

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

Да, конечно.

Надо попробывать пищалку к св.диоду подцепить через транзистор. Хочется одновременно и писк о потерянных пакетов слышать и на экране РССИ видеть.

F_R

Писк очень удобен! Не всегда успеваешь на РССИ смотреть… а в “ушах” уже попискивает 😃 А, бывает, чт оРССИ топчется в районе 10% а писка - битых пакетов нету…

ССМ=
F_R:

Не всегда успеваешь на РССИ смотреть…

Совершенно верно, особенно когда летиш очень низко и быстро, чуть взгляд отвел и ты в земле))))
Было бы очень здорого, что б появилась возможность использовать в прошивке одновременно бип и РССИ на экране.

baychi
тигромух:

Но у одного таймера, вроде, два ШИМа?

F_R:

Писк очень удобен!

Посмотрел детали. Ситуация такова. У Меги168/328 3 таймера и 6 ног для генерации ШИМ (D3, D11, D5, D6, D9, D10).
Но таймер 0 занят под время, таймер 1 работает на генерацию PWM/PPM. Свободен только таймер 2, поэтому гарантированно можно вывести писк (не теряя RSSI) на ножку D11- это 7-й выходной канал PWM.
Возможно сосуществовние с TIMER0 тоже не исключено и выходы 2,3 тоже смогут генерить звук аппаратно. Проверю…

Или можно забить на “чистый” звук и озвучивать потери пакетов “кряканьем” - типа щелчка в 1-2 мс на каждую потерю (10-20 колебаний). Это примерно как иммитация звука клавишь в мобильниках. Зато можно выдать куда угодно.
Какой вариант народу более интересен?

F_R

Писк лучше. “Кряк” из-за шума мотора/ветра можно и не услышать.
Сейчас используем зуммеры с драйвером. Достаточно подать на них ток и она завопит. Т.е. потерянный пакет - зажигает светодиод и пускает ток на би-би. Если пакеты постоянно теряются, то би-би идет тоже постоянно. Что тоже удобно, для поиска в траве 😃

baychi
baychi:

гарантированно можно вывести писк (не теряя RSSI) на ножку D11- это 7-й выходной канал PWM. Возможно сосуществовние с TIMER0 тоже не исключено и выходы 2,3 тоже смогут генерить звук аппаратно. Проверю…

Уточнил.
Аппаратный звук или RSSI можно, кроме вывода RSSI, выдать на 5 и 6 каналы выходного разъема Tiny.
Или 1,2 и 7-й каналы Orange…

Частота тона на 5-6 (1,2) канале в 2 раза выше - около 976 Гц.
Нужен такой вариант кому-либо?
Остальное - только программно.

ВладимирВл
baychi:

Нужен такой вариант кому-либо?

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

baychi
ВладимирВл:

Из хотелок по новому протоколу - возможно реализовать индивидуальную компоновку пакета(количество, разрядность каналов) под каждый конкретный случай(модель).

Так и делается.

ВладимирВл:

как быть в случае наличия более одной модели…

Все настройки на стороне приемника. Передатчик узнает о формате в начале связи и подстраивается под приемник.

ВладимирВл:

но хотелось бы конфигурировать приемник через регистры(ППМ, ПВМ и т.д.) без использования перемычек -

Если давать произвольный звук/RSSI по другому и не получится.
А жаль, новичкам перемычки понятнее. 😃