Самодельный передатчик (часть 1)
Изучил мануал. Появились вопросы и предложения. Не очень то понятно что значит виртуальный орган управления? приведите пример его использования? Далее с переключением мжеду режимами полета, чем задается? трехпозиционным SW или мжно назначить на любй SW? Вот еще вопрос-предложение. Посути каждый полетный режим это свободный микс? Есть предложение отказаться от употребления слова полетный режим и ввести возможность обзывать их самостоятельно и иметь возможность назначить его на любой SW а так же расширить их до 5ти штук.
Если я правильно понимаю. То все выглядит так. Заходим в Mix1 (название по умолчанию) Обзываем его как нам надо (“Start” например), идем в конструктор и собираем режим. Далее идем в Mix2 и там тоже собираем из конструктрора. Паралельно наначаем им SW. Вот еще один вопрс. Елероны, высота,руль и газ зашиты сторого каждый на свою ручку? А если я использую газ слева? Значит в программу нужно ввести либо выбор модов управления Mod1, Mod2… либо иметь функцию настройки, присвоение джойстикам названия. Что скажете на это? С нетерпением жду ответа!
Вполне готов проверить, высылай прошивку.
Выложена в этой ветке. Используйте версию rcu_20060713.rar.
Не знаю, хватит ли производительности. Попробую. Ведь для ЮСБ жесткие временные рамки… Выкладывай исходники. А я попробую включить их.
Включить так просто не получится, поскольку использованный вариант USB поддержан только для двух компиляторов - gcc (WinAVR) и IAR. Портировать его под другие компиляторы может быть непростой задачей, так как там есть ассемблерный модуль, и очень активно используется препроцессор, который у указанных компиляторов доступен и для ассемблерного текста, и совместим (точнее, тот же самый) с сишным.
Тем не менее, я исходники rcu_20060713_source.rar под IAR компилятор выложил на общее обозрение в той же ветке. Я бы предложил кодер переписать в более структурированном виде. Когда сделаю железку, то и сам займусь таким вопросом, а пока могу лишь предлагать.
В любом случае респект автору за достаточно законченное, как я могу судить, изделие, имеющее открытый исходный код. Будет у меня железка и время - тоже приложу руку у буту для него и, может, к чему-то еще.
Если я правильно понимаю. То все выглядит так.
собери, включи и все станет понятно.
Женя, епром при включении неплохо бы проверять… И при несовпадении кс, к примеру - выдавать предупреждение. А вобще его можно сделать внешним и побольше… А особые гурманы - могут оформить ввиде сменной карты… Или вобще SD или mmc заюзать, хотя это уже излишество…
Уже собираю 😉 А там я хотел сказать БУДЕТ. Ну да ладно, не будем в ступе воду толочь. Пока не соберу не вернусь 😈 Что бы по пустому языком не мелить.
На главном экране ( там где часики) имя модели прописывается только 3 знакоместа. Остальное иногда появляется при нажатии кнопок.
Ага. Нащел этот глюк. Скоро исправлю. А еепром надо просто весь нулями зашивать…
Женя, епром при включении неплохо бы проверять… И при несовпадении кс, к примеру - выдавать предупреждение.
Незнаю… постараюсь сделать… если времени хватит.
Ага. Нащел этот глюк.
Причем кол-во невыводимых символов зависит от количества каналов в ППМ пакете.
Нашел еше один крупный глюк. Смотрел что реально грузится в таймер. В нейтральном положении джойстика 2250. Это эквивалентно периоду 1.5 милисекунды. Но это ведь период, т.е. вместе с паузой в 410 микросекунд. Осцилографом проверил, все подтвердилось: пауза между каналами 0,41 милисек. ППМ импульс 1.1 милисек., длительность пакета ППМ 20 милисек.
Женя, тебе центрироваться надо не относительно 2250, а относительно 2250+616.
Да и еще, как по мне, то ППМ не инвертированый - это когда паузы в нулях, а у тебя наоборот.
Но это бай зе вей.
Успехов!
я в отпуск!
У себя уже поправил.
В math.c один раз заменить 2250 на 2866. ППМ стал на свое место.
Теперь сделал длительность межканального импульса 0.3 милисекунды, как по стандарту.
Для этого заменил 2866 на 2250+450=2700, и изменил OCR1AH=0x01; OCR1AL=0xС2;
Тут это… Корочче я последних два своих мессага тормозил. Сорри. Можно грохнуть их.
Да-да… Пауза тоже учитывается 😃))
Доброго времени суток! Че-то тема стоит… Ну ничего. Решил разбавить немного. Глюки и баги прошивки в ближайшую неделю исправить не смогу - уезжаю. Но думаю придумать схемку с DDS синтезатором. Очень удобно получается. Только вот один вопросик. Допустим пусть у меня опорная частота 40.685МГц, то при частотной модуляции на сколько она должна изменяться на выходе. Т.е. какая частота должна быть, когда в РРМе 0 и когда 1. Скорости хватает. Смена частоты в синтезере происходит за ~17 тактов (на частоте 120МГц). Загрузка параллельная по 8 бит. Управляющее слово 32 бита. Весь пакет - 40 бит.
З.Ы. Хоть я и в отъезде буду, но все равно буду в инет лязять…
Но думаю придумать схемку с DDS синтезатором. Очень удобно получается.
Евгений, при такой частотной манипуляции с использованием DDS спектр выходного сигнала будет неприемлемо широким. Ширина спектра ЧМ определяется как сумма девиации и верхней частоты модулирующего сигнала. Цифровой РРМ или РСМ имеет крутые фронты и, следовательно, очень широкий спектр. Подавать такой сигнал на модулятор нельзя. В обычных передатчиках перед варикапом обязательно ставится фильтр НЧ с частотой среза 2.5-3кГц.
Кроме того, DDS выдает довольно грязный сигнал, к-рый надо будет тщательно фильтровать по ВЧ. Фильтры будут гораздо сложнее, чем П-контур обычного передатчика.
Евгений, при такой частотной манипуляции с использованием DDS спектр выходного сигнала будет неприемлемо широким. Ширина спектра ЧМ определяется как сумма девиации и верхней частоты модулирующего сигнала. Цифровой РРМ или РСМ имеет крутые фронты и, следовательно, очень широкий спектр. Подавать такой сигнал на модулятор нельзя. В обычных передатчиках перед варикапом обязательно ставится фильтр НЧ с частотой среза 2.5-3кГц.
Кроме того, DDS выдает довольно грязный сигнал, к-рый надо будет тщательно фильтровать по ВЧ. Фильтры будут гораздо сложнее, чем П-контур обычного передатчика.
Немного не соглашусь… Современные синтезаторы позволяют менять частоту без разрыва фазы, за счет чего резко снижается уровень побочных спектров. Да и фильтр не очень сложный будет.
Tak kak v RC ispoljzujetsa uzkopolosnaja moduljacija i shag kanalov 10kHz to 4astota izmenjajetsa v predelah 3-3,5 kHz t.e. na takuju velje4inu, 4tobi polosovoi filjtr v prijemnjike smog normaljno rabotatj.
U raznih proizvoditeljej filjtri v prijemnjikah ispoljzujutsa raznije. Jestj kto ispoljzujet 3,5kHz, jestj i na 5kHz. Jesli peredat4ik normaljnij i polosa sostavljajet 3,5kHz, to mozho budet ljetaj i na sosednjih kanalah. t.e. njebudet pomehi.
4ashe vsego pri 0 F=F0 a pri 1 F=F0+3,5kHz.
Jeslji postavitj F=F0 a pri 1 F=F0+5kHz i pri uslovije, 4to u drugovo prijemnjika kotorij nahodetsa v zonje prijoma v prijemnjike stoit filjtr s polosoi 5kHz i on poljzujetsa odnjim kanalom vishe, to u njevo vozmozhno budet pomeha.
P.S.
gdeto bila statja ob peredat4ikah i tam bilo vsjo opisano.
Немного не соглашусь… Современные синтезаторы позволяют менять частоту без разрыва фазы, за счет чего резко снижается уровень побочных спектров. Да и фильтр не очень сложный будет.
Неразрывность фазы - это само собой. Я имею в виду, что в нашем случае нельзя грузить в DDS синтезатор только две частоты, соответствующие 0 и 1 кодера. Это будет разрывность частоты и она приведет к сильному расширению спектра и к залезанию в соседние каналы. Нужно сглаживать фронты смены частоты, т.е. прогружать в DDS несколько промежуточных значений. Проц типа AVR, возможно, не потянет.
Что касается фильтров. На выходе DDS, кроме фундаментальной частоты будут еще палки собственной частоты DDS, зеркальный канал и гармоники всех этих компонентов, а также продукты их интермодуляций. Сложность фильтра зависит в первую очередь от соотношения частот, но в любом случае все это надо уметь рассчитывать и/или иметь хороший спектроанализатор. Иначе можно засветить в эфир всякую гадость.
А что скажете про ето LTC6905 - 17MHz to 170MHz Resistor Set SOT-23 Oscillator.
Добился такую и решил експериментировать. Вставил как установочном резисторе что то вроде R-2R матрицу и включил к механическим шифратором(двоичньiм). Все около 2гр. Так получил генератор 9 переключаемьiх честот в диапазоне 35МХц. Погршность генерации(неустойчивость честот) при питание 3В. и установочной резистор в пределе 12кОм, бьiла в диапазоне 100-300 Hz(вполне приемливо). Думаю изпользовать ету щуку как внешним хетеродином к приемника типа ИГВА.
А в передатчику можно изпользовать подобную схему с PLL синтезатором. Я заменил синтезатор LMX2306 с MC145151, у которого паралелное програмирование. В конечном каскаде тоже подменил транзистором 2SC2314. Генератор Колпица такой же, но на честоте 35МHz. Еще не доделал все, но когда то будеть.
Петля фапч зарезает нискочастотную составляющую модулирующего сигнала. Наверно имеет смысл воспользоваться дополнительно и модуляцией ОГ синтезатора, а не только ЗГ. (вспоминается, что фапч для модулирующего сигнала является фильтром порядка=(порядок фнч между синтезатором и ГУН +1). при определенном сочетании глубины модуляции ОГ и ЗГ можно приблизиться к приподнято-косинусоидальной форме импульса, что нам будет ой как наруку.)
А что скажете про ето LTC6905 - 17MHz to 170MHz Resistor Set SOT-23 Oscillator
LT6905 как гетеродин для узкополосной ЧМ совершенно не годится. Температурная стабильность 20ррм/С, т.е. при изменении температуры на 10 градусов частота будет уплывать на 7 кГц. Плюс нестабильность по питанию 0.5%/В: изменение питания на 50 мВ - уход частоты на 9кГц. Плюс неприемлемый фазовый шум.
многие DDS имеют функцию свипа, так что частоту можно сдвигать с заданной скоростью, получится нормальная модуляция как после трапеции __/–\__
многие DDS имеют функцию свипа, так что частоту можно сдвигать с заданной скоростью, получится нормальная модуляция как после трапеции __/–\__
Можно ссылочку на даташит?
Температурная стабильность 20ррм/С.
Вот ето как то не увидел. Решил что 20 ppm на весь диапазон температурьi.
Тогда будеть синтезатор на LMX2306.