Самодельный передатчик (часть 1)

Roma
focus:

Ну так и знал, что у кого-нибудь не окажется. 😃 Мою новую прошивку еще не пробовали?

Я попробовал, но ничего не понимаю. В верхней части экрана мусор, иногда проскальзывает правильное изоброжение. С кварцем все ОК. Таймер тикает правильно, но экран обновляется раз в 2-20 сек 😦 . У кого-нить такое было?

focus

То FOCUS
А не могли бы вы выложить вашу печатку (желательно в sprint layout)

Нет. Она с ошибками. И их надо исправлять чтобы потом по готовому проводники не резать. Причем она в P-CADe.

Я попробовал, но ничего не понимаю. В верхней части экрана мусор, иногда проскальзывает правильное изоброжение. С кварцем все ОК. Таймер тикает правильно, но экран обновляется раз в 2-20 сек . У кого-нить такое было?

Не должно быть такого. Проверь фьюсы.

rulll

Привет всем!

В меню Модель-Селект мусор.
На главном экране ( там где часики) имя модели прописывается только 3 знакоместа. Остальное иногда появляется при нажатии кнопок.

Roma:

В верхней части экрана мусор

У меня тоже такое при програмировании чипа понипрогом.
При програмировании из КодеВижена - нормально. На всякий случай скажу что в чип заливать надо не только .HEX но и .EEP
При програмировании из КодеВижена только файлом .HEX - в верхней части экрана мусор.

Женя , спасибо! Ты все сделал что я просил. Разбираюсь дальше…
Добавлю к описанию:

Режим калибровки можно вызвать одновременным нажатием кнопок вверх, вниз и лево, затем подать питание. Калиброка - установить крайние положения джойстиков.

Насколько я видел из текста Си - вход АЦП не дифференциальный. Поэтому переменным резистором на AREF установить напряжение несколько больше чем максимальное напряжение снимаемое с джойстиков. В моем случае напряжение на джойстиках 4.5 Вольт, AREF=4.6 Вольт. Эту операцию надо сделать до режима калибровки.

Если че не так - поправте.

Мануал в виде PDF тут:

Brandvik

Изучил мануал. Появились вопросы и предложения. Не очень то понятно что значит виртуальный орган управления? приведите пример его использования? Далее с переключением мжеду режимами полета, чем задается? трехпозиционным SW или мжно назначить на любй SW? Вот еще вопрос-предложение. Посути каждый полетный режим это свободный микс? Есть предложение отказаться от употребления слова полетный режим и ввести возможность обзывать их самостоятельно и иметь возможность назначить его на любой SW а так же расширить их до 5ти штук.
Если я правильно понимаю. То все выглядит так. Заходим в Mix1 (название по умолчанию) Обзываем его как нам надо (“Start” например), идем в конструктор и собираем режим. Далее идем в Mix2 и там тоже собираем из конструктрора. Паралельно наначаем им SW. Вот еще один вопрс. Елероны, высота,руль и газ зашиты сторого каждый на свою ручку? А если я использую газ слева? Значит в программу нужно ввести либо выбор модов управления Mod1, Mod2… либо иметь функцию настройки, присвоение джойстикам названия. Что скажете на это? С нетерпением жду ответа!

osnwt
AVK:

Вполне готов проверить, высылай прошивку.

Выложена в этой ветке. Используйте версию rcu_20060713.rar.

focus:

Не знаю, хватит ли производительности. Попробую. Ведь для ЮСБ жесткие временные рамки… Выкладывай исходники. А я попробую включить их.

Включить так просто не получится, поскольку использованный вариант USB поддержан только для двух компиляторов - gcc (WinAVR) и IAR. Портировать его под другие компиляторы может быть непростой задачей, так как там есть ассемблерный модуль, и очень активно используется препроцессор, который у указанных компиляторов доступен и для ассемблерного текста, и совместим (точнее, тот же самый) с сишным.

Тем не менее, я исходники rcu_20060713_source.rar под IAR компилятор выложил на общее обозрение в той же ветке. Я бы предложил кодер переписать в более структурированном виде. Когда сделаю железку, то и сам займусь таким вопросом, а пока могу лишь предлагать.

В любом случае респект автору за достаточно законченное, как я могу судить, изделие, имеющее открытый исходный код. Будет у меня железка и время - тоже приложу руку у буту для него и, может, к чему-то еще.

rulll
Brandvik:

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

собери, включи и все станет понятно.

Aleksey_Gorelikov

Женя, епром при включении неплохо бы проверять… И при несовпадении кс, к примеру - выдавать предупреждение. А вобще его можно сделать внешним и побольше… А особые гурманы - могут оформить ввиде сменной карты… Или вобще SD или mmc заюзать, хотя это уже излишество…

Brandvik

Уже собираю 😉 А там я хотел сказать БУДЕТ. Ну да ладно, не будем в ступе воду толочь. Пока не соберу не вернусь 😈 Что бы по пустому языком не мелить.

focus

На главном экране ( там где часики) имя модели прописывается только 3 знакоместа. Остальное иногда появляется при нажатии кнопок.

Ага. Нащел этот глюк. Скоро исправлю. А еепром надо просто весь нулями зашивать…

Женя, епром при включении неплохо бы проверять… И при несовпадении кс, к примеру - выдавать предупреждение.

Незнаю… постараюсь сделать… если времени хватит.

rulll
focus:

Ага. Нащел этот глюк.

Причем кол-во невыводимых символов зависит от количества каналов в ППМ пакете.

Нашел еше один крупный глюк. Смотрел что реально грузится в таймер. В нейтральном положении джойстика 2250. Это эквивалентно периоду 1.5 милисекунды. Но это ведь период, т.е. вместе с паузой в 410 микросекунд. Осцилографом проверил, все подтвердилось: пауза между каналами 0,41 милисек. ППМ импульс 1.1 милисек., длительность пакета ППМ 20 милисек.
Женя, тебе центрироваться надо не относительно 2250, а относительно 2250+616.

Да и еще, как по мне, то ППМ не инвертированый - это когда паузы в нулях, а у тебя наоборот.
Но это бай зе вей.

Успехов!
я в отпуск!

rulll

У себя уже поправил.
В math.c один раз заменить 2250 на 2866. ППМ стал на свое место.
Теперь сделал длительность межканального импульса 0.3 милисекунды, как по стандарту.
Для этого заменил 2866 на 2250+450=2700, и изменил OCR1AH=0x01; OCR1AL=0xС2;

rulll

Тут это… Корочче я последних два своих мессага тормозил. Сорри. Можно грохнуть их.

focus

Да-да… Пауза тоже учитывается 😃))

focus

Доброго времени суток! Че-то тема стоит… Ну ничего. Решил разбавить немного. Глюки и баги прошивки в ближайшую неделю исправить не смогу - уезжаю. Но думаю придумать схемку с DDS синтезатором. Очень удобно получается. Только вот один вопросик. Допустим пусть у меня опорная частота 40.685МГц, то при частотной модуляции на сколько она должна изменяться на выходе. Т.е. какая частота должна быть, когда в РРМе 0 и когда 1. Скорости хватает. Смена частоты в синтезере происходит за ~17 тактов (на частоте 120МГц). Загрузка параллельная по 8 бит. Управляющее слово 32 бита. Весь пакет - 40 бит.
З.Ы. Хоть я и в отъезде буду, но все равно буду в инет лязять…

Vad64
focus:

Но думаю придумать схемку с DDS синтезатором. Очень удобно получается.

Евгений, при такой частотной манипуляции с использованием DDS спектр выходного сигнала будет неприемлемо широким. Ширина спектра ЧМ определяется как сумма девиации и верхней частоты модулирующего сигнала. Цифровой РРМ или РСМ имеет крутые фронты и, следовательно, очень широкий спектр. Подавать такой сигнал на модулятор нельзя. В обычных передатчиках перед варикапом обязательно ставится фильтр НЧ с частотой среза 2.5-3кГц.
Кроме того, DDS выдает довольно грязный сигнал, к-рый надо будет тщательно фильтровать по ВЧ. Фильтры будут гораздо сложнее, чем П-контур обычного передатчика.

focus

Евгений, при такой частотной манипуляции с использованием DDS спектр выходного сигнала будет неприемлемо широким. Ширина спектра ЧМ определяется как сумма девиации и верхней частоты модулирующего сигнала. Цифровой РРМ или РСМ имеет крутые фронты и, следовательно, очень широкий спектр. Подавать такой сигнал на модулятор нельзя. В обычных передатчиках перед варикапом обязательно ставится фильтр НЧ с частотой среза 2.5-3кГц.
Кроме того, DDS выдает довольно грязный сигнал, к-рый надо будет тщательно фильтровать по ВЧ. Фильтры будут гораздо сложнее, чем П-контур обычного передатчика.

Немного не соглашусь… Современные синтезаторы позволяют менять частоту без разрыва фазы, за счет чего резко снижается уровень побочных спектров. Да и фильтр не очень сложный будет.

Modris

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.

Vad64
focus:

Немного не соглашусь… Современные синтезаторы позволяют менять частоту без разрыва фазы, за счет чего резко снижается уровень побочных спектров. Да и фильтр не очень сложный будет.

Неразрывность фазы - это само собой. Я имею в виду, что в нашем случае нельзя грузить в DDS синтезатор только две частоты, соответствующие 0 и 1 кодера. Это будет разрывность частоты и она приведет к сильному расширению спектра и к залезанию в соседние каналы. Нужно сглаживать фронты смены частоты, т.е. прогружать в DDS несколько промежуточных значений. Проц типа AVR, возможно, не потянет.

Что касается фильтров. На выходе DDS, кроме фундаментальной частоты будут еще палки собственной частоты DDS, зеркальный канал и гармоники всех этих компонентов, а также продукты их интермодуляций. Сложность фильтра зависит в первую очередь от соотношения частот, но в любом случае все это надо уметь рассчитывать и/или иметь хороший спектроанализатор. Иначе можно засветить в эфир всякую гадость.

chwor

А что скажете про ето 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. Еще не доделал все, но когда то будеть.

Aleksey_Gorelikov

Петля фапч зарезает нискочастотную составляющую модулирующего сигнала. Наверно имеет смысл воспользоваться дополнительно и модуляцией ОГ синтезатора, а не только ЗГ. (вспоминается, что фапч для модулирующего сигнала является фильтром порядка=(порядок фнч между синтезатором и ГУН +1). при определенном сочетании глубины модуляции ОГ и ЗГ можно приблизиться к приподнято-косинусоидальной форме импульса, что нам будет ой как наруку.)

Vad64
chwor:

А что скажете про ето LTC6905 - 17MHz to 170MHz Resistor Set SOT-23 Oscillator

LT6905 как гетеродин для узкополосной ЧМ совершенно не годится. Температурная стабильность 20ррм/С, т.е. при изменении температуры на 10 градусов частота будет уплывать на 7 кГц. Плюс нестабильность по питанию 0.5%/В: изменение питания на 50 мВ - уход частоты на 9кГц. Плюс неприемлемый фазовый шум.