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

osnwt
lucky75:

а ссылочку на что-то подобное? в частности на софтверный USB-лоадер, для примера.

Всему свое время. В данном случае это время пришло: вот ссылка на список проектов, базирующихся на открытом avr-usb драйвере от Objective Development. Сегодня утром там опубликованы новые проекты, в том числе два USB загрузчика.

Один из них - мой с поддержкой AES шифрования (компилятор IAR). Я все же решил его опубликовать КАК ЕСТЬ (без поддержки). Он не является законченным проектом для повторения, хотя в опубликованном виде он у меня работает на тестовой плате на базе ATmega32 (для 64/128 его придется модифицировать, но ход пока не дошел). Исходники утилит для PC (особенно утилита загрузки) выглядят отвратительно, поскольку это был хак чужого кода на скорую руку для проверки работы, собственно, бута. Претензии по стилю программирования не принимаются. Исходник самого бута для ATmega32 написан мной самим (не считая AES) и достаточно подробно прокомментирован в самом тексте. Этого хватит для того, чтобы сделать свой вариант под свои нужды. Я не поддерживаю этот проект, но готов попробовать ответить на конкретные вопросы (а не общие типа “почему это все не работает”).

Второй загрузчик использует библиотеку поддержки boot от GCC, прост и элегантен. Он пригоден для зашивки в бут блок ATmega8/48/88/168 и т.п. Для работы требует установку libusb драйвера на хост. Я его не проверял (он только сегодня появился). Если не требуется наворотов, то этот бут должен быть весьма хорош.

Сам драйвер обновился 26.06.2006. Из полезных нам фич есть поддержка дополнительных точек USB и возможность использовать любые пины порта для D+/D-, а не обязательно нулевой бит. Это крайне полезно для поддержки USB, например, в контроллере AT90PWM3. До сих пор я не видел возможности сделать в нем конфигурирование по USB из за занятости нулевых пинов другими аппаратными функциями, но теперь это вполне возможно.

В общем, дерзайте!

PS. На базе данного USB драйвера мной написан ради интереса свой вариант прошивки RC USB адаптера для схемы, приведенной в статье на данном сайте. В отличие от опубликованного, этот вариант написан на C (среда и компилятор IAR, 30-дневная версия доступна бесплатно с их сайта) и имеет открытый исходный код в соответствии с лицензией на avr-usb. Модульная (выбор на этапе компиляции) структура позволяет включать произвольный входной интерфейс (PPM декодер, встроенный ADC, различные варианты PCM и т.п.) и произвольный выходной кодер (стандартный джойстик, специальные интерфейсы для популярных симуляторов, выход на серво-тестер и т.п.). Я не приветствую публикации только прошивок для устройств, выкладываемых для публичного повторения, без исходников. Потому готов выложить исходники данного проекта. Есть только один нюанс: у меня нет собранной схемы, приведенной в той статье, я экспериментировал на своем собственном железе. Потому нужен доброволец (один), кто согласен проверить работу прошивки на собранном по той схеме устройстве и подтвердить ее работоспособность. После чего исходник будет опубликован. Только не обещаю, что сделаю это в течение 1-2-n дней, так как хотелок много, а времени мало. По мере возможности.

Размер кода в варианте PPM/Joystick - окодо 2.5 килобайта, что оставляет даже место в меге8 для USB загрузчика, что удобно тем, у кого нет своего программатора. Достаточно зашить раз загрузчик, после чего свободно экспериментировать с кодом приложения, зашивая его по тому же USB.

Roma

У меня опять проблема: Не работают в версии на атмега 16 дополнительные переключатели. Только 7 канал. Не двойные расходы, не тротел кут, ни 5 канал… 😊 Может подскажете в чем дело? Все остольное фунцыклирует прекрасно…

focus

Вот… полетал недавно

зато передатчик доделал… 😃)

[attachment=381
07:attachment][attachm
ent=38111:attachment][
attachment=38114:attachment][attachment=3811
9:attachment][attachme
nt=38122:attachment][a
ttachment=38125:attachment][attachment=38130
:attachment]

а вот исходники

CVProject.rar

Решил проверить работу CСPM смесителя

Aleksey_Gorelikov

Поздравляю, Женя! Пожалуй надо исходники спрятать и по мылу выдавать желающим 😃 А то глядишь через полгода узкоглазые братья новый бренд откроют! 😃

ubd

Всяческие респекты тебе Евгений! Очень уважаю и жму руку!

Куда поступать после школы будешь?

AVK
osnwt:

Потому нужен доброволец (один), кто согласен проверить работу прошивки на собранном по той схеме устройстве и подтвердить ее работоспособность. После чего исходник будет опубликован. Только не обещаю, что сделаю это в течение 1-2-n дней, так как хотелок много, а времени мало. По мере возможности.

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

А есть ли нормальная схема кодера на 128меге? Тоже хотел собрать кодер Евгения но схемы удобочитаемой не нашел.

focus

скоро будет… и описание тоже. просто не успел еще…

Всяческие респекты тебе Евгений! Очень уважаю и жму руку!

Куда поступать после школы будешь?

Спасибо! А поступаю в наш местный политех… 😃

jon_bear

TO FOCUS :
Женя поздравляю!!! так держать! Вечных тебе мягких посадок!!!
самик ты неплохо разложил, сочувствую…
Вопрос такой появился, в исходнике у тебя написано

//Зуммер
#define BUZ PORTG.6

не могу понять, в дашите сказано что портов G всего 5 (0-4)
далее в прошивке

void BEEP (void)
{
if (sound)
{
PORTG|=0x4;
delay_ms(50);
PORTG&=0xFB;
delay_ms(50);
}
на какой ноге пищалка получаеться? не на PORTG.4 ?

вот сваял схемку SpL4.0 (ноги по описанию в прошивке) мож пригодиться кому 😉, вариант не окончательный, сигнал на пищалку пока не выведен…

board.rar

focus

//Зуммер
#define BUZ PORTG.6
эту строчку вообще удалить можно… она не используется…

а пищалка подсоединена к PORTG.2 0x4=0b00000100

rulll

Привет всем!
Огромная благодарность Жене!
Уже собрал кодер. Чето работает но нужно описание.
Уже увидел калибровку джойстиков, настройку кривых.
Мое мнение - необходимо сразу иметь начальные значения констант в памяти, а то при первом включении ППМ мертвый.
Также в файл def.c вынести и назначение каналов АЦП.
Кол-во символов при наборе имени модели - излишне, или там вообще какойто мусор. Довольно таки много времени тратится на поиск необходимой буквы.
Так же надо както обозначить процесс выбора в меню и процесс набора в меню.
А в общем - Женя молодец! Спасибо!
Схема по которой я собирал кодер:

focus

Описание делается. Почти готово. Также пишутся апгоейды. Уже добавил настройку кол-ва каналов в PPMе (от 2 до 8). И сброс по первому включению сделаю. Придумал как, но еще не успел воплотить в жизнь.

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

Можно отавить одни заглавные или прописные буквы. Сделать? А мусор - только до сброса. Вообще прокрутка начинается с символа пробел.

Так же надо както обозначить процесс выбора в меню и процесс набора в меню.

Немного не понял…

с Def.c разберусь.

PS посоветуйте простенький параллельный программатор.Я прошил мегу8 один раз, а на второй она мне поазала комбинаци из трех пальцев. Решил адаптер джостика собрать. Еще и проц в дипе. 😦 Мало того, что здоровый, так еще и приказал долго жить. Вчера сидел читал даташит по параллельному программированию. Так там расписан алгоритм. Может его зашить в другой проц и им разлочить мегу?

rulll
focus:

Можно отавить одни заглавные или прописные буквы. Сделать? А мусор - только до сброса.

Сделаешь сброс - тогда посмотрим. Как по мне - то нужны только прописные , заглавные, циферки и пару разделителей ( пробелов, звездочек…)

Так же надо както обозначить процесс выбора в меню и процесс набора в меню.----- чтобы поменять значение в некоторой позиции - надо подвести курсор к позиции и нажать “право” ( или “ОК”) и тогда появляется возможность чтото менять в выбранной позиции. Так вот нажатие “ОК” - никак не отображено ( никак не меняет эту позицию)… Т.е. невидно была нажата кнопка “ОК” или еще нет.

rulll

Странно но у меня нет кнопки правка…
Тут более информативная схема

chwor
focus:

PS посоветуйте простенький параллельный программатор.Я прошил мегу8 один раз, а на второй она мне поазала комбинаци из трех пальцев. Решил адаптер джостика собрать. Еще и проц в дипе. 😦 Мало того, что здоровый, так еще и приказал долго жить. Вчера сидел читал даташит по параллельному программированию. Так там расписан алгоритм. Может его зашить в другой проц и им разлочить мегу?

Ето сьiлка на самой простенький паралельньiй программатор. Но тьi уверен что тебе он нужен. Если не менял битьi SPIEN и RSTDISBL, то можно просто вьiключил внутренний генератор, но не включил резрешение внешного. Если так то попробуй AVREAL-ом подать внешним тактом чтоб подтянуть кварц. Для етого нужни только 6 проводники с паралелного порта к Мегу, кварц и 2 кондера.

Aleksey_Gorelikov
chwor:

Ето сьiлка на самой простенький паралельньiй программатор. Но тьi уверен что тебе он нужен. Если не менял битьi SPIEN и RSTDISBL, то можно просто вьiключил внутренний генератор, но не включил резрешение внешного. Если так то попробуй AVREAL-ом подать внешним тактом чтоб подтянуть кварц. Для етого нужни только 6 проводники с паралелного порта к Мегу, кварц и 2 кондера.

Tак кварц то тоже тогда не нужен если авоеалом… Он просто меандр на порт выводит.
Я как то тоже накололся, отркыл стоящий на столе АОН и запустил от его генератора. Просто у понипрога галочки “неправильные”, наверно все накалывались…

chwor

Конечно если есть то можно и с внешним генератором, но если нет то без кварца у меня никогда не получалось - честота меандра очень ниская.

focus

Спасибо за помошь. 😃 запустил. Тока в качестве вн. генератора поставил аврку, которая ногой драгала…В конче концов оказалось, что мне кондеры, тк что к кварцу, не на 27 пик, а на 270 продали 😃

svb
focus:

PS посоветуйте простенький параллельный программатор.Я прошил мегу8 один раз, а на второй она мне поазала комбинаци из трех пальцев. Решил адаптер джостика собрать. Еще и проц в дипе. 😦 Мало того, что здоровый, так еще и приказал долго жить. Вчера сидел читал даташит по параллельному программированию. Так там расписан алгоритм. Может его зашить в другой проц и им разлочить мегу?

Женя, у меня была похожая байда с Мегой128
Оказалось - непрально фьюзы зашил. от ZQin резюк кинул на +5 (не запаивая, просто ручками держал)
Поней проверил - микруха нашлась, тут же все фьюзы сбросил как надо и Всё - телемаркет 😃
Возможно и тебе поможет.

ЗЫ. У меня на плате был распаян кварц, так что ёмкость на землю уже была. Номинал известен, рассчитал резюк по даташиту.

PPS. Блин, как всегда опоздал 😃

osnwt
focus:

Я прошил мегу8 один раз, а на второй она мне поазала комбинаци из трех пальцев. Решил адаптер джостика собрать.

А зачем тебе адаптер джойстика? Не проще ли интегрировать эту функциональность прямо в твой кодер? Я, практически, готов выложить исходники (после получения ответа от тестера, что прошивка под схему rcdesign.ru живет).

yura_v
focus:

Вот… полетал недавно

зато передатчик доделал… 😃)
[attachment=381
07:attachment][attachm
ent=38111:attachment][
attachment=38114:attachment][attachment=3811
9:attachment][attachme
nt=38122:attachment][a
ttachment=38125:attachment][attachment=38130
:attachment]

а вот исходники

Решил проверить работу CСPM смесителя

По поводу смесителя СCPM и симуляторов.
дело в том что ни один симулятор до сих пор не поддерживает демультиплексирование CCPM
Стало быть нужен ещё один выход для Normal PPM специально для симуляторов.
Соответсвенно в прочих режимах на него просто будет дублироваться PPM на передатчик.

Либо для сима переключаться в другую модель и восстанавливать настройки

focus

По поводу смесителя СCPM и симуляторов.
дело в том что ни один симулятор до сих пор не поддерживает демультиплексирование CCPM
Стало быть нужен ещё один выход для Normal PPM специально для симуляторов.
Соответсвенно в прочих режимах на него просто будет дублироваться PPM на передатчик.

Либо для сима переключаться в другую модель и восстанавливать настройки

Я для сима создаю отдельную модель. А CPPM микшер делается в конструкторе каналов.

А зачем тебе адаптер джойстика? Не проще ли интегрировать эту функциональность прямо в твой кодер? Я, практически, готов выложить исходники (после получения ответа от тестера, что прошивка под схему rcdesign.ru живет).

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

Переправил прошивку. Вроде бы все советы учел.

вот основные функции:

Модуляция: PPM и инвертированный PPM (IPPM)
2-8 каналов
8 органов управления (5 аналоговых, 1 трехпозиционный и 2 двухпозиционных переключателя)
Три режима полета.
Отдельные двойные расходы для элеронов, руля высоты и поворота на каждый режим.
Функция выключения двигателя
2 виртуальных органа управления (получают входной сигнал с любого физического, например для настройки двух различных кривых на одну ручку).
Кривая на элероны, рули высоты, поворота, газ, доп. пропорциональный и на 2 виртуальных органа управления ( по семи точкам).
Конструктор каналов (позволяет реализовать любые микшеры).
Память на 4 модели

CVProject_new.rar