PPM SUM - это просто (очередное простое решение проблемы)

X3_Shim

Добрался я до PPMSUM

Напомню. Arduino pro mini. Спаял по схеме из первого поста. Но там прошивка для 168 (у меня на 328).
Есть прошивка …3drobotics.com/…/8-channel-ppm-encoder-version-2
Она для 328. Но по какой схеме то она спаяна фиг поймешь. Пойдет она для pro mini ? Смотрю там по дефолту частота 8 MHz в мейкфайле прописана. Но у mini pro она же 16 ?
Фьюзы не трогать ? Загрузчик ардуиновый помрет после прошивки ?

SergDoc

то что написано для 168, спокойно пойдёт на 328 без перекомпиляции…
V2 и выше если есть на 16МГц…

SergDoc
X3_Shim:

Фьюзы не трогать ? Загрузчик ардуиновый помрет после прошивки ?

фьюзы трогать не надо, стереть флеш и еепром перед заливкой, лодырь помрёт - но это не страшно, всегда можно новый залить если понадобится…

X3_Shim:

“8 Channel PPM Encoder Version 2”

от неё паршивка пойдёт…

wiki.paparazziuav.org/…/ATmega_PPM_Encoder_Board

X3_Shim
SergDoc:

Ага, читаю. Но фьюзы то они там вроде прошивают
avrdude -p m328p -P <Insert port here> -c <Insert ISP type here> -U lfuse:w:0b11110111:m -U efuse:w:0b111:m hfuse:w:0b11011001:m -U flash:w:ppm_encoder_v4_3+bootloader_16Mhz.hex

SergDoc

не ну если в дудке настроено - эт нормально атмега по умолчанию идёт просто 1МГц на внутреннем генераторе…
если это ардуино, то можно фьюзы и не трогать - они уже правильно стоят 😃
если шить дудкой то просто по инструкции - ничего страшного и не будет 😃
блин уже начал забывать, что такое AVR 😦

X3_Shim
SergDoc:

если это ардуино, то можно фьюзы и не трогать - они уже правильно стоят

Ага, становится понятнее.

Прошил. PPM на выходе есть судя по осцилографу. Ща проверим что там.

Работает все кроме первого канала. На ардуину PWM 1-го канала точно приходит.

UPD разобрался. У меня ардуина поддельная. И RXI по длинной стороне не звонится на RXI по короткой стороне. Перепаял на короткую сторону, все заработало.

Все упаковалось внутрь приемника.

А вот только у меня мысль появилась глупая. Можно ли заюзать стабилизатор стоящий на ардуине для питания приемника ? Ну а снаружи все это питать 12 вольтами.

X3_Shim

В общем таки выкинул BEC из схемы. Вроде все норм работает, на приемник ровно 5 вольт приходит с ардуины, ардуина запитана от 3S (вместе с передающим модулем)
Всем спасиб 😃

alexeykozin
dollop:

Алексей, все немного не так.
Для FlySky приемников (типа hk-tr6a) нужен ВЧ модуль на A7105. Например XL7105-CL
Далее по той теме есть куча работающих проектов под разные нужды. Есть на С подобном языке - arduino. Уже с ppm выходом.

модули наконецто пришли…
сначала решил проверить как работает оригинальная схемка прошивка с внутренним осцилятором на 8мгц
взял последнюю версию схемы, платы скомпилировал и прошил хекс в ардуинку, но поскольку выриантов схем было много ввтч на 328 атмеге не обратил внимание что опубликованы фьюзы для M8 (а у меня только 328 в наличии)
по ошибке влив в нее фьюзы от m8 окирпичил ее.
поскольку времени на раскирпишивание жалко - побыстрому перепаял на новую и оставил заводские фьюзы, вроде как заводские на внутренний осцилятор 8 мгц - но почему то ардуинка не запустилась (наверное с фюзами чтото не так) получасовые поиски инфы о том какой набор фьюзов используется для 328 на 3,3 вольта с внутренним 8 мгц осцилятором успеха не принес, - полно конфигов на 8 мгц 3,3 вольта с внешим кварцем, а с внутренним нет.
попробовал пару вариантов от фьюз-калькулятора - невышло. сделал простейший скетч чтоб в сериал писал строку - для проверки - молчит.

немного поразмыслив о том что в финале мне все равно 8мгц 3 вольтовая вресия нужна не будет по следующим причинам:

  • ппм и пвм выходные сигналы мне будут нужны пятивольтовые
  • при использовании низкой частоты возможен джиттер по каналам
    посему пришел к выводу что нужно соединять радиомодуль с ардуинкой через конвертеры уровней
    из дополнительного ништяка это позволит на стадии “доработки скетча” использовать стандартную ардуину (с бутлоадером) с стандартным 5 вольтовым ftdi без риска спалить радиомодуль
    но с другой стороны искать сейчас чип левел-конвертера - потерять кучу времени.
    простенький левел конвертер который используют в сд-кард ардуино адаптере выглядит так:

    но у меня есть некоторые сомнения касательно не будет ли такой конвертер заваливать фронты на той частоте на которой работает радиомодуль с ардуинкой.
    есть идея заменить нижний резистор в этой схеме стабилитроном на 3 вольта, а номинал верхнего уменьшить до 200 Ом
    в даташите на чип радиомодуля пишут что критическое напряжение питания 3,6 критическое напряжение по сигнальным линиям 3,9

странным показалось что в рцгрупс прошивка под 16мгц есть а как сделали схему - нет

SergDoc

как в USB на тех же 2313 - стабилитроны висят прямо на лапах (программатор на ней собран) могу поискать гдето схема валялась…

типа вот:

alexeykozin

я забыл отписаться,
со стабилитронами все получилось,
очень удобно когда ардуино стандартно от 5 вольт на 16 мгц работает и прошивается через arduino ide
при этом не надо отсоединять передатчик чтоб не сжечь его.
все прибиндилось, сигналы есть, фаилсэйв работает
осталось сделать тест на дальность, антенка не переделывалась - вытравленный на печатной плате патч - если будет работать на 1 км то ничего переделывать не буду

16 days later
flygreen

Народ подскажите, как из PPM получить PWM ? На AIOP надо максимум (мне ) 6 каналов. Остается еще 2 (фриска 8 кан.) . Как эти два выдрать из PPM и сделать именно 7 и 8 канал обычным ШИМом ? Хочу камерой крутить курсовой. Может есть какое решение “на коленке” ?

ЗЫ Я так понял вы тут обсуждаете как из PWM получить PPM… Мне надо наоборот =)

alexeykozin

самое логичное если используете по с открытым кодом для AIOP то дописать вывод нужных каналов на свободные выходы напрямую

mataor

как раз вчера это делал… делается банально, правда у меня на другом проце вий так что могу ошибится… я правда делал на 1 канал… попробую на 9 и 10 пин АИО сча сделать

в def.h добавляем строчку, чтобы можно было отключать

#define AUX34_ON_OUTPUT

в output.ino в ф-ции void initOutput() в конце добавляем

#if defined(AUX34_ON_OUTPUT)
// timer 2 is a 8bit timer so we cant change its range
TCCR2A |= _BV(COM2B1); // connect pin 9 to timer 2 channel B
TCCR2A |= _BV(COM2A1); // connect pin 10 to timer 2 channel A
OCR2B = 1500>>3; //  pin 9
OCR2A = 1500>>3; //  pin 10
#endif

далее в mixTable() после кода

  /****************     neutralize Servos during calibration of gyro&acc   ******************/
  #ifdef SERVO
	if ( (!f.ARMED) && ((calibratingG > 0) || (calibratingA > 0)) ) servos2Neutral();
  #endif

вставляем

  #if defined(AUX34_ON_OUTPUT)
	OCR2B = rcData[AUX3]>>3; //  pin 9
        OCR2A = rcData[AUX4]>>3; //  pin 10
  #endif

это справедливо для любого приемника, что ппмсум что стандартного, что сбас и т.п.

4 months later
fat_hamster

и так тему пытаюсь читать, и эдак… нифига не погу понять 😃
то 2313, то ардуина, то фьюзы шить дудкой - “смешались в кучу кони, люди…”

ra3vld:

От нефиг делать сделал PPM SUM со встроеным RSSI метром для турниги

вот это интересно - но только мне похоже, никакого отклика в теме; стоит повторять - там автор про какие-то проблему некритичные, но неприятные писал - насколько они неприятные?

хочется отвязаться при подключении к мультивию от пачки проводов + индикатор rssi был бы полезен для осд; правда я пока не знаю, полезен ли и как его использовать

fat_hamster

у меня такой передатчик, но приемников уже 5 штук не-телеметрийных, что ж их, ради такого менять?.. не, надо что-то выдумывать 😃

gorbln

Я делал на Tiny 2313. Работает. Работает как надо, и фейлсейв есть. Что ещё для счастья надо?

serenya

А у меня так и не заработал FS на 2313, так и забил на него. Может конечно руки кривые. А телеметрийность приемника разве связана с CPPM?

fat_hamster
serenya:

А телеметрийность приемника разве связана с CPPM?

ну _вроде_ перепрошить (или “из коробки” там) на ппмсум можно телеметрийные приемники фрски, а не-телеметрийные - нет

в общем я почитал-почитал и понял для себя, что (что касается использования ардуины, а не 2313…а у меня как раз сейчас ардуин много, и есть на 3.3/8 МГц, которые в общем никуда не нужны) надо взять прошивку с сайта “папараци-чтото-там” и попробовать с ней чтото сделать