Форум RC Design о радиоуправляемых моделях
Тема usb-адаптер передатчика - альтернативная open-source прошивка раздела Самодельная электроника, компьютерные программы на форуме RC Design. Общему вниманию предлагается альтернативная open-source прошивка для USB-адаптера передатчика, собранного на ATmega8 по схеме с rcdesign.ru . Код написан на ...
|
|
||||||
| Регистрация | Справка | Пользователи | Социальные группы | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
|
#1 | |||
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Общему вниманию предлагается альтернативная open-source прошивка для USB-адаптера передатчика, собранного на ATmega8 по схеме с rcdesign.ru. Код написан на C и будет опубликован после подтверждения ее работоспособности с парой популярных передатчиков. У меня нет ни нормальной аппаратуры (кроме валкеры да еская), ни в точности той схемы, потому хотелось бы убедиться, что декодирование PPM работает так, как задумано.
Прошивка имеет модульную структуру (выбор входного и выходного драйверов на стадии компиляции). Она достаточно хорошо (на взгляд автора) структурирована и прокомментирована, что делает ее удобной для развития заинтересованными сторонами. Цели ее опубликования: - показать, что писать код под программный USB для AVR вовсе не так сложно, если использовать не ассемблерный вариант интерфейса (предположительно, использованный в оригинальной прошивке, судя по ее ограничениям), а открытый USB драйвер для AVR, написанный большей частью на C и отлично документированный; - помочь начинающим сделать свои варианты входных интерфейсов (например, чтение встроенного ADC контроллера - этот модуль также присутствует в составе исходного текста, или декодера различных вариантов PCM по аналогии с декодером PPM, дописав соответствующий модуль); - помочь начинающим сделать свои варианты выходных интерфейсов с кнопками, дополнительными каналами и др.; - показать вариант интеграции функциональности USB-адаптера в самодельный кодер передатчика, обсуждаемый вот в этой ветке. Дальнейшее развитие этого направления вижу в интеграции функций USB загрузчика в тот самый кодер (дает возможность смены прошивок без программатора - по тому же US . И в возможности настройки кодера и/или моделей через тот же USB интерфейс. Сам готов подключиться к этим задачам, как только соберу ту схему (делать плату руками или паять на макетке нет времени, так как я по работе не связан с изготовлением железа. Если кто может помочь с готовой платой на разумных условиях - с радостью бы воспользовался предложением);- выполнение требование лицензии на использованный open-source программный USB драйвер (публикация исходных текстов проектов, написанных с его использованием без приобретения коммерческой лицензии). Прошивка для проверки (пока без исходников): Вложение 38523 Краткое описание предложенной версии Вход: PPM до 8 каналов, полярность не имеет значения. Выход: HID джойстик на 8 аналоговых каналов. В данной прошивке не выполняется маппинг каналов в соответствии с их назначением прямо или через NVRAM. Соответствие каналов жестко записано следующее (оно не соответствует маппингу по умолчанию в оригинальной прошивке): 1 - X 2 - Y 3 - Z 4 - Rx 5 - Ry 6 - Rz 7 - Slider 8 - Dial Интересует принципиальная управляемость всех осей (смотреть в панели управления игровыми устройствами) с разной аппаратурой (с какой конкретно?). Если будет работать нормально, то, возможно, допишу маппинг каналов и второй вариант выходного интерфейса с дополнительными кнопками и, возможно, еще 9-м каналом (если он кому-то нужен - пока не видел, чтобы кто-то попросил). После получения положительных (а как же иначе ) отзывов о принципиальной работоспособности опубликую исходный текст. Если это кому-то вообще интересно, конечно.Цитата:
Попробую найти человека с собранной схемой поближе. Собственно, именно изготовление прошивки без возможности проверки и есть причина неоткрытия (пока) исходных текстов. Цитата:
Цитата:
|
|||
|
|
|
|
#2 |
|
Регистрация: 28.06.2005
Адрес: .
Сообщений: 157
|
Вынь ХР проф, со всеми обновлениями, не в ней дело - старая прошивка работает на ура, мега от 5 вольт запитана, USB придушен стабилитронами до 3.3в
Схема валяется на столе подключенная к программатору, я с ней эксперементирую, так что если есть еще прошивки для эксперементов - кинь, проверить можно за несколько секунд. |
|
|
|
|
#3 | ||
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Да, дело явно не в ней. Скорее всего, что-то с пинами. Да вроде все правильно:
Код:
#define USB_CFG_IOPORTNAME D /* This is the port where the USB bus is connected. When you configure it to * "B", the registers PORTB, PINB and DDRB will be used. */ #define USB_CFG_DMINUS_BIT 0 /* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected. * This may be any bit in the port. */ #define USB_CFG_DPLUS_BIT 1 /* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected. * This may be any bit in the port. Please note that D+ must also be connected * to interrupt pin INT0! */ Цитата:
Цитата:
Придется пробовать на живой схеме, только вот взять ее у знакомого надо как-то. PS. Как-то я наблюдал ситуацию, что после ряда втыканий-вытыканий при экспериментах найденное устройство потом не вставало до удаления "неопознанного" при воткнутом девайсе. После чего после вынимания и нового подключения находилось устройство, которое начинало работать. Предлагаю попробовать такой вариант. |
||
|
|
|
|
#4 |
|
Регистрация: 28.06.2005
Адрес: .
Сообщений: 157
|
Пробовал, все равно устройство не опознано пишет
|
|
|
|
|
#5 |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Значит, завтра буду брать собранную схему и пробовать на ней.
PS. Неужели ни один человек больше не попробовал? PPS. Куда-то делся линк на скачку. Ставлю еще раз в таком виде. PPPS. Да, когда выше шла речь о "Если кто может помочь с готовой платой на разумных условиях" платы на меге128 для передатчика, то имелась в виду голая печатка, без деталей, ессно. |
|
|
|
|
#6 |
|
Я только одного не понял, зачем собственный USB-драйвер сочинять, когда есть готовый проект специально для таких целей ? Компилится и на сях, и на ассемблере, с кучей опций, хорошо документированный и т.д.
http://www.obdev.at/products/avrusb/projects.html Если там грамотно опции покоцать, то даже в AVR 2313 влезет. |
|
|
|
|
|
#7 | |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
Вероятно, кто-то чего-то действительно недопонял.1) Ни из каких моих высказываний не следует, что драйвер - самописанный. Более того, в списке выше последней из причин публикации исходников упоминается требование лицензии на драйвер. Ясно, что не на свой собственный. Хотя я бы без проблем мог решить вопрос об освобождении от этого требования (см. ниже), я пока не увидел в том необходимости. 2) Если заглянуть на страницу проектов, то там видно, что одним из проектов является мой крипто-загрузчик. Из этого следует, что я, как минимум, знаю о существовании этого продукта и, скорее всего, не стал бы изобретать велосипед. Crypto-Boot - an USB Boot Loader3) И я действительно знаю об этом драйвере, так как если заглянуть внутрь его readme, то там в ряде файлов видно упоминание автора о том, что он благодарен мне за порт драйвера под IAR компилятор. Кроме того, в процессе работы над тем портом была найдена пара серьезных багов в логике работы, которые были исправлены в тесном сотрудничестве с Кристианом, а также добавлено несколько расширений, полезных на тот момент мне, но включенных в официальный порт. А теперь по существу: конечно же, мой исходник базируется на том драйвере. Почему я не хочу его открывать, пока он не заработал у других - потому, что я не хочу использовать людей, как подопытных кроликов Имея оригинальное железо, я за 5 минут бы выяснил причину неработоспособности его, так как она кроется не в системе, а что-то перепутано с пинами (напомню, что у меня железа такого нет). Пока же этого нет - зачем грузить других своими проблемами? Будет законченное решение - поделюсь со всеми.
|
|
|
|
|
|
#9 | |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
Вот новая версия прошивки. Прошу проверить, а также проверить работу ее PPM с приведенными в исходном сообщении оговорками. Вложение 38690 |
|
|
|
|
|
#10 |
|
Регистрация: 28.06.2005
Адрес: .
Сообщений: 157
|
ВО! Эта работает, причем очень хорошо, каналы отрабатываются ровно и без поддергиваний.
|
|
|
|
|
#11 | |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
Итак, как и обещал, принимайте исходные тексты и файлы проекта под компилятор IAR (www.iar.com, доступна полнофункциональная ознакомительная 30-дневная версия): Вложение 38702 Готов ответить на любые конкретные вопросы по тексту (кроме единственного, уже отвеченного непосредственно там). И ещё сразу говорю: портировать под gcc (WinAVR) или другие среды разработки у меня нет ни времени, ни желания. Но поскольку там не использовано никаких особенностей компилятора, это сделать достаточно просто самостоятельно. |
|
|
|
|
|
#12 |
|
Регистрация: 28.06.2005
Адрес: .
Сообщений: 157
|
Попробовал на передатчиках санва и хайтек - одинакого хорошо, очень понравилось, спасибо!
|
|
|
|
|
#13 |
|
Регистрация: 14.02.2006
Адрес: Москва
Возраст: 34
Сообщений: 191
|
Прекрасно работает. Субъективно даже лучше оригинальной.
|
|
|
|
|
#14 |
|
Регистрация: 04.10.2005
Адрес: Калининград
Возраст: 41
Сообщений: 652
|
И я сейчас скомпилил исходнички для проверки, зашил в шнурок.
Всё не могу выложить фотку своей "печатки" с "ICSP" разъёмом. Ну - заработал RC USB Device ... Однако - делалось правда без WIN калибровки новоявленного джоя (хлопотно/на спех) - в отличие от джоя Вад64, который скалибровать по первости не поленился - а винда не исключено что раздельно для разных джоев хранит калибровочные сведения. С прошивкой от Вад64 дрыгается чаще ( могу заметить 5-6 раз в секунду ), но амплитуда меньше. А после прошивки от osnwt дрыги реже, но при ентом амплитуда - процентов 20 от длинны калибровочного столбика в AFPD. Ну и второй (эффект) обнаружился - при некоторых положениях рукояток (что-то в центре, а одна-две (руль высоты/элероны) - в край, думаю что в минимум) начинается жёсткая дрыготня всех каналов (мотор и хвост тоже) на 50% от хода - не исключено что тоже от отсутствия WIN калибровки - сигналы выходят за объявленные/обнаруженные минимумы/максимумы и принудительно центрятся самой виндой ? Хотя почему при ентом дрыгаются все каналы, а не только тот, который в край ? Используется PPM выход от RD8000, винда - XP SP2. Надо второй шнурок забабахать и подцепить его к аналоговым выходам от пульта DF 5#4. Снабдить его USB так сказать - будет отдельный симуляторный пультик. Можно будет особо ретивым/настойчивым знакомцам его давать погонять - всяк дешевле, чем верт давать погонять - енто я уже пробовал, кроме смеха - ещё и ремонт... Кроме того - сразу будет понятно - кто виноват в дрыготне - PPM кодер или USB конвертер - потому как тут всё в одном флаконе станет. Жаль, что АЦП опрашивается, а не синхронен какому-либо таймерному прерыванию. Ну и усреднять - станет постабильнее. Хотя - вот для ентого и нужны исходники, что-бы пытаться их ковырять для само удовлетворения/образования. В любом случае - спасибо за исходники/труд по релизу. |
|
|
|
|
#15 | |||||||||
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
СТОП! Действительно, возможна ситуация, когда мы попадаем как раз на момент, когда таймер-то захватили, но в 0 его не прописали (обслуживая более приоритетное прерывание от US . Потом мы его все же обнулим, но позже, и длительность следующего импульса будет посчитана неправильно (он получится короче реального). И тогда будет то самое дерганье.Исправить код несложно: вместо обнуления надо писать в таймер разницу между текущим его значением и захваченным. Предлагаю попробовать и написать о результатах. Возможно, дело именно в этом. Спасибо за наводку. Сам попробую, когда будет время. Хуже другое - если в драйвере управление находится дольше самого короткого PPM импульса (а это может зависеть даже от того, как ведет себя хост). Тогда мы не сможем так исправить ошибку, и скакать будут все каналы (что мы и наблюдаем). В таком случае лучше вообще игнорировать такую пачку, так как для данного приложения это не критично (если мы вообще сможем с уверенностью определить, что такая ситуация случилась - надо провести исследовательскую работу). Похоже, что именно это и наблюдается в описанном случае: конкретный хост долго держит устройство в прерывании. По этой причине конец короткого импульса ("минимум") теряется, и вместо этого захватывается суммарная длительность этого и последующего импульсов (то, что "в центре"). И получаем дрыготню на величину этого самого центра - те самые "50%". Вот это хуже всего, надо думать, как идентифицировать такую пачку, чтобы ее вообще отбрасывать, если нет возможности ее принять правильно (что тоже надо обдумать). Идеи-то есть. Например, если точно известно количество импульсов в пачке, то при меньшем их количестве вообще пачку отбрасывать. Минус: теряется универсальность. Идея два: набирать статистику по конкретному передатчику. Скажем, ловим 10 пачек и смотрим, сколько импульсов там. Если, по большей части, их там будет 8, а когда-то - лишь 7 или меньше, значит все пачки, где меньше 8 импульсов, надо игнорировать. Но тоже минус: не будут работать пульты типа валкеры с дополнительными посылками в конце. Ну, что же - это плата за дешивизну программной реализации USB. Хотя надо думать - может, можно что-то и с этим поделать ![]() Цитата:
Цитата:
Цитата:
К слову говоря: появилась новая авторская версия USB драйвера (пока у меня, но после тестирования появится на сайте автора), где поддержано динамическое управление всеми USB дескрипторами, которые могут быть статическими или генерироваться на лету во время выполнения. Как частный случай, это дает возможность штатно сделать устройство с переключаемыми интерфейсами (например, по кнопке), а не одним жестко скомпилированным. А код драйвера стал еще более оптимизированным по объему (а казалось бы - куда ещё)... |
|||||||||
|
|
|
|
#16 | |
|
Регистрация: 02.06.2005
Адрес: Ростов Великий
Возраст: 46
Сообщений: 556
|
Цитата:
Что касается дрыганий - у меня причина в том, что наблюдается повторный вход в прерывание TIMER_CAPT. Т.е. обработка прерывания USB иногда длится более 0.9 мс. Наверное, это как-то можно победить, но я, честно говоря, не напрягался. |
|
|
|
|
|
#17 | ||||
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
Цитата:
Цитата:
Цитата:
В документации на AVR-USB сказано, что драйвер может находиться в прерывании до 100 микросекунд, если хост соответствует стандартам. Реально далеко не все хосты им соответствуют. Далее, количество дрыганий, предположительно, может также зависеть от количества low-speed устройств на USB шине, так как драйвер обслуживает каждую транзакцию, даже если она не адресована нам. Потому можно просто попробовать выключить лишние устройства для подтверждения версии о причине дерготни, но это будет баловство. Думаю, что тут надо подходить иным путем. Я тоже пока напрягаться не планирую, но если возникнет идея, как перестать терять посылки - попробую реализовать. При этом самым простым (но не лучшим) решением видится отбрасывание пачки при неверном количестве импульсов (которое нужно получать автоматически). Для большинства аппаратов это должно работать удовлетворительно. |
||||
|
|
|
|
#18 |
|
Регистрация: 02.06.2005
Адрес: Ростов Великий
Возраст: 46
Сообщений: 556
|
> Посторонние (более приоритетные) прерывания (как USB в данном случае).
Да любые, не обязательно более приоритетные. При входе в любое прерывание все прерывания запрещаются. Если в это время возникает событие таймера, его сброс оттягивется на некоторое время. И даже если других прерываний нет, время реакции на прерывание таймера зависит от текущей выполняемой команды. Так что модификация таймера при измерении интервалов в общем случае - неудачная идея. > Скорее, не повторный вход, а потеря одного из запросов. Естественно, потеря. Просто я наблюдал повторный вход. А означал он, что прерывание таймера еще не окончило свою обработку, было прервано прерыванием USB и в USB просидело достаточно, чтобы выскочил новый запрос таймера (возможно даже не один). > При этом самым простым (но не лучшим) решением видится отбрасывание пачки при неверном количестве импульсов Это понизит вероятность дрыганий, но, возможно, не устранит их окончательно. Если есть вероятность пропуска произвольного количества событий РРМ, то будет ненулевая вероятность принятия ошибочного решения о "корректности" пачки. Так что в идеале нужна либо аппаратная поддержка USB, либо более продвинутая система регистрации событий РРМ, исключающая пропуски. |
|
|
|
|
#19 | ||
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
Цитата:
|
||
|
|
|
|
#20 |
|
Регистрация: 02.08.2002
Адрес: Москва
Возраст: 32
Сообщений: 3,117
|
Если из 10 пачек импульсов не менее чем в 9 из них - X каналов, то считать пачку с Y каналами ошибочной. Если волшебным образом передатчик во время работы превратился в восьмиканальный, то через 1 пропущенную пачку следующие 9 пройдут "без проверки" и дальше будет действовать новая накопленная статистика (что-то типа fifo-буфера).
|
|
|
|
|
#21 | |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
В общем, идей набралось достаточно - пора писать новый вариант декодера :-) |
|
|
|
|
|
#22 | |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
1) Добавлен новый вариант входного драйвера - альтернативный PPM декодер. Старый оставлен для совместимости. Новый же переписан с учетом всех прозвучавших предложений и замечаний. Дальнейшие описания относятся именно к нему. 2) Точность декодирования повышена путем изменения режима работы таймера. Он теперь не сбрасывается, а бегает в свободном режиме. Длительность импульсов вычисляется как разница между двумя соседними захватами. Полярность входного сигнала не имеет значения для корректно сформированного PPM сигнала. Частота тактирования таймера понижена в 8 раз, чтобы обеспечить обнаружение паузы для малоканальных передатчиков. Максимальная длительность импульса (или паузы) - около 21 миллисекунды, при большем значении будет переполнение при вычислениях. Этого достаточно для стандартного PPM сигнала с большим запасом. Данные изменения уже заметно снижают дребезг каналов (на моем пульте и компьютере дребезг, практически, отсутствует по сравнению с предыдущей версией прошивки). 3) В случае, если хост слишком долго держит CPU в USB прерывании, отдельные пакеты PPM сигнала могут быть вообще испорчены (пропущены). К сожалению, с программным USB это не лечится (хотя при хосте, соответствующем спецификациям, этого не должно происходить, но не все хосты им соответствуют). Потому единственным выходом видится проверка пакетов на корректность различными способами. В декодере реализовано три опции для такой проверки, описанные ниже. Допустимо использование только одной из опций. При выборе нескольких поддержана будет первая выбранная. При отключении всех опций дополнительных проверок производится не будет, и будут передаваться все обнаруженные каналы до MAX_CHANNELS включительно. Выбор опций - в файле options.h. Код:
// If this option is set to non-zero then ONLY first N_CHANNELS_ONLY channels // will be read and made available for output. This option may be useful for // Walkera transmitters which have some PCM data after standard PPM stream. #define IN_PPM_ADV_N_CHANNELS_ONLY 0 // range is 0 or [1..MAX_CHANNELS] Код:
// If this option is set to non-zero then input PPM stream will be checked to // see if it consists of exactly N_CHANNELS_EXACT channels. Any deviation will // result in refusal of whole PPM data packet. #define IN_PPM_ADV_N_CHANNELS_EXACT 0 // range is 0 or [1..MAX_CHANNELS] Код:
// If this option is set to non-zero then input PPM stream vill be eva*luated // to find the number of PPM channels. If last N_CHANNELS_AUTO PPM packets // consist of equal number of pulses, then PPM data packet will be treated // as valid. Otherwise it will be rejected. This is the recomended option // with number of packets to check 2-10. #define IN_PPM_ADV_N_CHANNELS_AUTO 4 // range is 2-10 Новая версия тут. Вложение 39196 В подкаталоге Release/Exe находится собранная прошивка (это обычный HEX формат). Буду рад услышать отзывы о ее работе, в том числе, в сравнении с предыдущей. Желательно также указывать, с какой аппаратурой и на какой версии Windows выполнялась проверка. Интересно проверить работу на Windows 98 и ME. |
|
|
|
|
|
#23 |
|
Регистрация: 21.06.2006
Адрес: Москва, Беляево
Возраст: 28
Сообщений: 17
|
Собрал схемку... залил прошивку джостик нормально определилися но нет сигнала с передатчика точнее нет ни какого отклика в настройках... передатчик Walkera WK-0701... помоните настроить...
|
|
|
|
|
#24 |
|
Регистрация: 04.10.2004
Адрес: Балашиха
Возраст: 31
Сообщений: 1,533
|
Первое, что пришло в голову - поменяй местами провода идущие к тренерскому разъему передатчика. Прошивке то всеравно, 1 это пауза, или импульс, а вот транзистору полярность не пофигу... :-)
|
|
|
|
|
#26 |
|
Регистрация: 21.06.2006
Адрес: Москва, Беляево
Возраст: 28
Сообщений: 17
|
|
|
|
|
|
#27 |
|
Регистрация: 21.06.2006
Адрес: Москва, Беляево
Возраст: 28
Сообщений: 17
|
Помогите..
Вот еще осцилограмма снятая компом через звуковую карту... тока амплидуда получается гдето около ~2.5 вольта |
|
|
|
|
#28 | |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
Ниже выложена исправленная версия прошивки с исходными текстами. Попутно добавлена опция инверсии входного PPM сигнала (на случай теоретически возможного неправильного источника канальных импульсов). В общем случае эта опция не имеет значения. Предыдущую версию, как содержащую ошибку, я удаляю. Вложение 40727 К сожалению, в связи с полным отсутствием обратной связи от скачавших прошивку я пришел к выводу, что подобные проекты с открытым исходным кодом никого не интересуют. Поэтому данная прошивка - это первая и последняя моя публикация такого рода. Следующим проектом готовился к публикации контроллер бесколлекторного двигателя на AT90PWM3 с использованием всех возможностей данного специализированного кристалла (ЦАП для аппаратной программируемой токовой защиты, аппаратный высокочастотный PWM для полумостов, встроенные компараторы для ZCD), множеством функций и настроек, различными режимами управления двигателем (например, говернором по задаваемой пользователм кривой) и вдобавок - с возможностью конфигурирования всего этого добра по USB, используя шнур с 4-мя проводами без каких-либо деталей в нем, подключаемый непосредственно к контроллеру (и он же, используемый для перешивки контроллера). Но по названной причине я решил закрыть этот проект, не успев открыть. Нет ничего хуже для разработчика, чем полное отсутствие реакции тех, для кого проекты предназначены. Это на корню убивает какое-либо желание что-либо выкладывать. Во всяком случае, у меня. |
|
|
|
|
|
#29 |
|
Регистрация: 28.06.2005
Адрес: .
Сообщений: 157
|
У меня она нормально работала...
|
|
|
|
|
#30 | |
|
Регистрация: 16.01.2006
Адрес: MO Чехов
Возраст: 40
Сообщений: 243
|
Цитата:
Вот я например прошивку скачал но в связи с нехваткой свободного времени даже залить ее не успел Тут полетать то вырваться не всегда получается не говоря уже о паяльнике с программатором сейчас имхо не совсем то время для занятия данными вещями июль - август сезон отпусков (в это время реально по Москве на авто хоть ездить мона ) очень много дел всякие дачи, стройки итд Я думаю что осенью больше народа подтянется да и время дождливыми вечерами коротать както придется . Для паяния - вояния ,симуляторов и постройки летательных аппаратов самое время !!! Лично от меня БОЛЬШОЕ СПАСИБО !!! за проделанную Вами работу Хочется надеиться что Вы измените свое мнение и продолжите свои нужные для народа проекты! С уважением ,Павел |
|
|
|
|
|
#31 | |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Нормально работала версия от 13.07.06 с простым PPM декодером.
Версия от 20.07.06, в которой полностью переписан PPM декодер с целью вообще исключить какие-либо дерганья, работать на меге8 не могла в принципе, поскольку там вместо бита порта D6 (ICP1 на ATmega8) стоял B0 (ICP1 на ATmega32). Цитата:
Ну да ладно... |
|
|
|
|
|
#32 | |
|
Регистрация: 28.06.2005
Адрес: .
Сообщений: 157
|
Цитата:
|
|
|
|
|
|
#33 |
|
Регистрация: 04.10.2004
Адрес: Балашиха
Возраст: 31
Сообщений: 1,533
|
А ведь и правда времени нет. Да и необходимости - тоже. У кого работает и его устраивала старая версия - вовсе не обязательно зальют новую... У меня шнурок на Ti сделан, и второй вроде и не нужен. Твою прошивку хотел на шнурке друга посмотреть, но уже 2 месяца с ним увидеться не могу, и что?
Выкладывать что-то или нет - дело твое. ! А обижаться на всех подряд - не стоит! |
|
|
|
|
#34 | |
|
Регистрация: 02.06.2005
Адрес: Ростов Великий
Возраст: 46
Сообщений: 556
|
Цитата:
Все, наверное, пользуются и радостно молчат. Если бы не работало - засЫпали бы жалобами. |
|
|
|
|
|
#35 | |
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Цитата:
Я понял: чтобы получить фидбэк, надо выложить заведомо неработоспособный, но ОЧЕНЬ ИНТЕРЕСНЫЙ софт, а потом, после получения огромного фидбэка начать его доводить до рабочего состояния (почти по Microsoft)
|
|
|
|
|
|
#36 | |
|
Регистрация: 26.06.2005
Адрес: Москва (Ясенево)
Возраст: 56
Сообщений: 8,224
|
Цитата:
![]() И, главное, количество кодировщиков + их неадекватное понимание одних и тех же спецификаций интерфейсов ![]() Зря Вы обижаетесь - поверьте на слово! Вы сделали прекрасную вещь, сопровождаете её - честь Вам и хвала! (я сам - лицо незаинтересованное, прошивки не качал и не ставил, но слежу за этой дискуссией со стороны с большим интересом). Когда-то раньше я и сам писал софт и очень хорошо Вас понимаю. Немного посмотрел Ваши исходники - это работа мастера высокого класса, я и сам так работал ![]() Удачи Вам во всех делах!
|
|
|
|
|
|
#37 |
|
Регистрация: 04.10.2005
Адрес: Калининград
Возраст: 41
Сообщений: 652
|
А я погряз в отладке/полировке прицепленного к 18 пику 44780 отладочного LCD.
Ну уже практически всё сделал, что хотелось, теперь прицепил аппаратно/обдумываю план проги обмена пакетами для dp1205 на том же 18 пике. Новую Прошиву Шнурка видел, скачивал, но на симе за енто время ни разу не летал. Сегодня первый раз на верте-сооснике повисячил за месяц с лишним. Однако вину осознаю, и в компенсацию пойду пыльцу с фотика сдувать - заснять свою "печатную плату" с "разъёмом внутрисхемного программирования" : Имелось ввиду исправление с варианта от 20/07 // Capture port settings #define ICP_PORT_DD DDRD // timer input capture ports #define ICP_PORT_IN PIND #define ICP_PORT_OUT PORTD #define ICP_BIT 6 // timer input capture pin на вариант от 20/08 ? // Capture port settings #define ICP_PORT_DD DDRB // timer input capture ports #define ICP_PORT_IN PINB #define ICP_PORT_OUT PORTB #define ICP_BIT 0 // timer input capture pin Одним словом, только что заливал ради интереса в шнурок обе по очереди - с виду работают одинаково ХОРОШО. По сравнению с первой от 13/07 случайно реверс элеронов не поменялся ? Потому как я на сохранённом профиле джоя в AFPD не смог взлететь, перенастраивать не стал - только дрыготню глядел. Расходов не хватает - но енто уже точно по причине не сделанной мною калибровки в AFPD и винде. Дрыганье теперь однозначно меньше чем у прошивки Вада, хотя справедливости ради надо всё-таки откалибровать в винде и AFPD как положено. Периодические Редкие но амплитудные дрыги прошивки 13/07 отсутствуют вовсе, так же как и жёсткая дрыготня всех каналов при ручках в минимуме. Теперь при высота/элерон в минимуме происходит смещение полосок на пиксел, не более. А при центральном положении - полоски в AFPD вообще стоят как влитые. Так что - прогресс явно на лицо, высказанные идеи не пропали даром. 98 СЕ винду пока не грузил - она на ентом компе, с которого я мессагу набивал. Да и так почти 2 часа провозился - где уж мне за 5 минут всё протестить - я только пульт со шнурком с полки 5 минут доставал ... Кстати, между присвоением значения таймеру в прерывании и его свободным бегом есть компромисс - Увеличение таймера (в прерывании по переполнению ентого таймера) на требуемую коррекцию - применял в своём прошлом учебном проектике - тоже работает. Ну и прилагаю фотку ЛСД 20х4, над которым корпел. Производительность чуть более 1000 строк/секунду что по 4 что по 8 битам. Ну и в каждой строке по паре 16 бит БЦД преобразований делается при ентом выводе. 10 МИПСов - трать/не хочу. Однако с прогой фонового обмена буферами через радиоканал посредством 1205 - ну туго пока что, сложно всё чего-то, пока только общие черты обдумал. Однако - кто знает, быть может и состряпаю. |
|
|
|
|
#38 | |
|
Регистрация: 16.01.2006
Адрес: MO Чехов
Возраст: 40
Сообщений: 243
|
Цитата:
Версия от 20.07.06 у меня не заработала ! (в винде шнурок определился но на РРМ не реагировал) Проверял на FUTABA 9CHP +XPSP2Последняя - без проблем!!! работает четко без подергиваний Честь и хвала автору !!! ЗЫ Единственное, что еще хотелось быувидеть в данной версии - продублировать пару каналов кнопками, как это было во 2 й и 3ей оригинальных прошивках |
|
|
|
|
|
#39 | ||||
|
Регистрация: 20.01.2006
Адрес: Севастополь, Крым
Сообщений: 90
|
Версия от 11.08.2006.
rcu_20060811.rar По отношению к предыдущей сделаны следующие изменения: - Изменена версия компилятора. Теперь компилировать следует IAR 4.20. Из особенностей компилятора использовано новое ключевое слово __nested для глобального разрешения прерываний сразу по входу в процедуру обработки прерывания. Это более корректно, чем sei после сохранения регистров. - Обновлена версия USB драйвера до 2006-07-18. Новые возможности, например, динамические дескрипторы, в проекте пока не использованы, но они в принципе дают возможность сделать универсальную прошивку под разные виды интерфейсов. - Добавлен опциональный режим серво-тестера. Идея в том, чтобы при входном PPM сигнале выдать один из каналов на отдельный выход контроллера. Использовать его можно для проверки серв или регуляторов двигателей. Естественно, что питать их надо не от USB. Я использовал этот режим для отладки контроллера бесколлекторного двигателя. Опция работает только при выборе драйвера in_ppm_adv, поскольку добавлялась как побочный эффект, а не самоцель. - Добавлен альтернативный выходной драйвер out_joystick_btn, аналогичный обычному out_joystick, но дублирующий 8 аналоговых каналов на 8 дискретных (кнопки). Если входной канальный импульс <1.5мс, то соответствующая кнопка не нажата, и наоборот. Минусом этого варианта является снижение в 2 раза периода опроса USB джойстика (ограничение программного USB как low-speed device). Плюсом же - пример того, как можно делать USB HID дескрипторы, состоящие из более чем одного репорта. Несмотря на кажущуюся избыточность кода, IAR крайне эффективно сливает его в один фрагмент, так что ручная оптимизация была принесена в жертву очевидности кода. - Многие аппаратные опции перенесены из *.c файлов в options.h, что, надеюсь, снизит вероятность подсунуть в очередной раз неработающую прошивку из за того, что какой-то из портов не был исправлен. - В архиве лежат две скомпилированные версии - с кнопками и без оных. Обе поддерживают режим серво-тестера, выводя на вывод PB1 (OC1A) сигнал 3-го канала передатчика (не проверено на ATmega8). - Обе версии проверены на оригинальном железе и выглядят работоспособными. Цитата:
Цитата:
Цитата:
Цитата:
Как было в оригинальных - не знаю, так как их не смотрел. Но опционально сделал вариант с продублированными всеми 8-ю каналами в виде кнопок. Оба варианта прошивок есть в архиве. |
||||
|
|
|
|
#40 |
|
Регистрация: 17.04.2005
Адрес: г. Таганрог
Сообщений: 89
|
Только что проверил эту версию, без кнопок (предыдущие версии не проверял ни одной), на передатчике Sanwa RD8000 и схеме на mega8. Стабильность в работе замечена была, в симуляторе пока проверить не успел, т.к. каналы на джойстике все попутаны получились
В оригинальной проге написаной на асме, без проблем все поменял, тут не смог по причине отсутствия IAR 4.20, есть пока только 4.12, если получится найти новый крякнутый IAR и где настройки каналов, попробую перекомпилить, пока Вам огромное спасибо и удачи. Как только начнете работу регульятора для бесколлекторника на PWM3, сообщите, плиз, в личку.
|
|
|
| Опции темы | |
|
|
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| usb-адаптер для передатчика | toxa | Обсуждение статей | 375 | 06.08.2010 05:07 |
| USB-адаптер для передатчика | Emr | Симуляторы | 21 | 22.01.2009 17:12 |
| Разработка open-source Head Tracker'а - уже работает :-) | Prikupets | Самодельная электроника, компьютерные программы | 10 | 12.03.2008 11:35 |
| R&D open source клон g320 (step/dir сервоконтроллер)? | razdvatri | Общие вопросы | 20 | 15.09.2006 09:46 |
|
|