Специальные цены   новые товары
Закрытая тема
Страница 2 из 5 ПерваяПервая 1 2 3 4 ... ПоследняяПоследняя
Показано с 41 по 80 из 196

usb-адаптер передатчика - альтернативная open-source прошивка

Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; Полетал в симуляторе, вроде все нормально. Выкачал IAR 4.20 полистал код, не нашел определения поледовательности каналов, видимо они выдаются в ...

  1. #41

    Регистрация
    17.04.2005
    Адрес
    г. Таганрог
    Сообщений
    89
    Полетал в симуляторе, вроде все нормально. Выкачал IAR 4.20 полистал код, не нашел определения поледовательности каналов, видимо они выдаются в компьютер в такой же последовательности, в которой приходят. У меня получаются некоторые каналы перепутаные на компьютере . Т.к. в С и СРР я не силен, свободного времени еще меньше чем знаний, подскажите как поменять каналы.

  2.  
  3. #42

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от graham Посмотреть сообщение
    каналы на джойстике все попутаны получились
    Да, это особенность прошивки. Я не старался тут сохранять совместимость с оригиналом, поскольку не увидел в этом большого смысла.

    Как только начнете работу регульятора для бесколлекторника на PWM3, сообщите, плиз, в личку.
    Работа над ним уже идет, и довольно успешно. Но проект будет закрытым.

    подскажите как поменять каналы.
    Варианта 3:

    1) (рекомендуемый): в любом известном мне симуляторе назначение каналов может программироваться внутри самого симулятора. В том числе, это относится к FMS, Aerofly Pro Deluxe, RealFlight G3 и Reflex XTR. Там же есть калибровка расходов каналов. Потому я не увидел смысла менять что-то в прошивке и не знаю точно, зачем это сделано в оригинале (вероятно, для общности или совместимости по умолчанию с неким конкретным симулятором).

    2) (частичное решение не для всех симуляторов): назначение каналов задается в USB дескрипторе строками:

    PROGMEM char usbHidReportDescriptor[USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH] =
    {
    0x05, 0x01, // USAGE_PAGE (Generic Desktop)
    0x15, 0x00, // LOGICAL_MINIMUM (0)
    0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)
    0x75, 0x08, // REPORT_SIZE (8)
    0x09, 0x04, // USAGE (Joystick)
    0xa1, 0x01, // COLLECTION (Application)
    0x09, 0x01, // USAGE (Pointer)
    0xa1, 0x00, // COLLECTION (Physical)
    0x09, 0x30, // USAGE (X)
    0x09, 0x31, // USAGE (Y)
    0x95, 0x02, // REPORT_COUNT (2)
    0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
    0xc0, // END_COLLECTION
    0xa1, 0x00, // COLLECTION (Physical)
    0x09, 0x32, // USAGE (Z)
    0x09, 0x33, // USAGE (Rx)
    0x95, 0x02, // REPORT_COUNT (2)
    0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
    0xc0, // END_COLLECTION
    0x09, 0x34, // USAGE (Ry)
    0x09, 0x35, // USAGE (Rz)
    0x09, 0x36, // USAGE (Slider)
    0x09, 0x37, // USAGE (Dial)
    0x95, 0x04, // REPORT_COUNT (4)
    0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
    0xc0 // END_COLLECTION
    };
    В таком порядке видятся с 1-го по 8-й каналы компьютеру. Назначение их применительно к джойстику очевидно из названий (оси X,Y,Z, вращение по осям Rx, Ry, Rz, ползунок, колесико). Для симулятора эти назначения могут приниматься или не приниматься в расчет (зависит от решения автора симулятора). Можно без особых проблем переставить местами эти обозначения, сохранив их места. Но это будет иметь значение только для джойстика и симуляторов, где стандартные назначения берутся в расчет (думаю, что нигде ).

    3) (реальная перестановка, но решение надо писать самому): нужно вводить таблицу перекодировки или просто переписать формирование последовательности каналов в функции usbBuildReport(). В каком порядке будут положены значения из channelData[] в usbReport[] - в таком и будут видны каналы в симуляторе.

    Однако, это не написано в моей прошивке, поскольку любой из названных симуляторов позволяет произвольно назначить назначения каналов. Так как едва ли кто-то будет постоянно использовать две прошивки (я бы использовал ту, что больше подходит или нравится), то я не увидел такой проблемы и, соответственно, не поддержал такой возможности.

    А с каким симулятором реально проблема?

  4. #43

    Регистрация
    15.03.2003
    Адрес
    Самара
    Возраст
    45
    Сообщений
    5,574
    Цитата Сообщение от osnwt Посмотреть сообщение
    А с каким симулятором реально проблема?
    С любым не RC. ИЛ-2, например.

  5. #44

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от dmitryu Посмотреть сообщение
    С любым не RC. ИЛ-2, например.
    Сам этот симулятор не видел, но предполагаю, что описанный выше вариант 2 будет работать для симуляторов, изначально рассчитанных на работу с джойстиком.

    Предположим, что канал руля высоты поступает с пульта по счету 3. Его симулятор хочет увидеть как ось Y стандартного джойстика. Тогда нужно поставить в дескрипторе 0x09, 0x31, // USAGE (Y) на 3-е место, считая сверху (в данном случае - вместо 0x09, 0x32, // USAGE (Z)), а последнее - соответственно, на второе. И эти два канала поменяются местами.

    Иначе говоря, следует понять, в какой последовательности идут каналы с передатчика (например, 1 - газ, соответствующий в симуляторе оси Z, 2 - элероны, соответствующие в симуляторе оси X, 3 - руль высоты, соответствующий в симуляторе оси Y, и так далее). И поменять последовательность в дескрипторе в этом порядке, то есть

    0x09, 0x30, // USAGE (X)
    0x09, 0x31, // USAGE (Y)
    0x95, 0x02, // REPORT_COUNT (2)
    0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
    0xc0, // END_COLLECTION
    0xa1, 0x00, // COLLECTION (Physical)
    0x09, 0x32, // USAGE (Z)

    поменять на

    0x09, 0x32, // USAGE (Z) - 1 канал передатчика
    0x09, 0x30, // USAGE (X) - 2 канал передатчика
    0x95, 0x02, // REPORT_COUNT (2)
    0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
    0xc0, // END_COLLECTION
    0xa1, 0x00, // COLLECTION (Physical)
    0x09, 0x31, // USAGE (Y) - 3 канал передатчика

    Способ не вполне очевидный, но я не рассчитывал на подобные применения. Однако, любые изменения с точки зрения HID джойстика можно сделать, правильно сформировав этот дескриптор. В принципе, можно сформировать некий набор настроек прошивки, чтобы делать это более удобно. Пусть будет ToDo для очередной версии прошивки, если таковая когда-либо появится. Если нет, то можно переписать ее под себя, сделав указанные выше изменения.

  6.  
  7. #45

    Регистрация
    17.04.2005
    Адрес
    г. Таганрог
    Сообщений
    89
    Цитата Сообщение от osnwt Посмотреть сообщение
    Работа над ним уже идет, и довольно успешно. Но проект будет закрытым.
    Жаль. А на сколько закрытый? Полностью или можно как-нить стать тестером? Собирался в ближайшее время заняться сам, но всвязи с загрузкой на работе и предстоящей длительной командировкой, видимо не получится.

    Цитата Сообщение от osnwt Посмотреть сообщение
    Варианта 3:
    Первым я на данный момент и воспользовался. Если приспичит, попробую 3-ий.
    Цитата Сообщение от osnwt Посмотреть сообщение
    А с каким симулятором реально проблема?
    Пока проверил в FMS, к риалфлайту компакт не мог найти после переезда, вещи разгребу все, - найдется.

  8. #46

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от graham Посмотреть сообщение
    Первым я на данный момент и воспользовался. Если приспичит, попробую 3-ий.
    Если первого достаточно, то зачем тогда остальные? :-)

    FMS->Control->Analog control->Joystic interface->Mapping/Calibration - и там все есть.

    Пока проверил в FMS, к риалфлайту компакт не мог найти после переезда, вещи разгребу все, - найдется.
    Там тоже все есть.

    Жаль. А на сколько закрытый? Полностью или можно как-нить стать тестером?
    Пока полностью. А дальше время покажет. Сроков никаких нет, поскольку проект, как некоммерческий, идет по остаточному принципу, а времени на все не хватает.

  9. #47

    Регистрация
    30.11.2005
    Адрес
    Екатеринбург
    Возраст
    61
    Сообщений
    75
    Как и обещал попробовал все прошивки и вот мои результаты:
    Пробовал на Win XP Pro SP2, RC - Graupner 314
    1. 2006.07.13 - работает но почти все каналы дергаются
    2. 2006.07.20 - не работает (и в игровых устройствах ее нет)
    3. 2006.08.09 - работает очень хорошо
    4. 2006.08.11 - работает очень хорошо (разницы с предыдущей не увидел)
    И еще попутно вопрос, а что биты конфигурации все должны быть в Off,
    там только SUT0 - сам ставится в On, а то ведь в прошивках которые были выложены
    здесь раньше было - CKOPT-On и SPIEN-On?
    Кабель у меня собран на Atmega8-16PI который питается от 3.3 вольт.
    Для полного результата нужно еще проверить на разных версиях винды и разных
    передатчиках, эта возможность у меня есть но нужно некоторое время.

  10.  
  11. #48

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от Николай К. Посмотреть сообщение
    1. 2006.07.13 - работает но почти все каналы дергаются
    By design. Это уже обсуждали. Хотя у некоторых работает без дрыгов, но это просто удачный USB хост. Причина выявлена. Считать прошивку устаревшей.

    2. 2006.07.20 - не работает (и в игровых устройствах ее нет)
    То, что нет в устройствах - странно. Должно просто не работать (у большинства) чтение PPM сигнала. Считать прошивку нерабочей.

    3. 2006.08.09 - работает очень хорошо
    Рабочая прошивка с тем же набором опций, что и предыдущая (которая не работает). Считать прошивку баг-фиксом предыдущей.

    4. 2006.08.11 - работает очень хорошо (разницы с предыдущей не увидел)
    Разницы и нет в смысле подергивания. Разница только в дополнительном дублировании одного канала на выход контроллера и альтернативный вариант джойстика с дублирующими кнопками (и в этом варианте частота передачи данных на компьютер в 2 раза ниже, чем без кнопок - теоретически 50 и 100 раз в секунду, соответственно. Практически не проверялось).

    И еще попутно вопрос, а что биты конфигурации все должны быть в Off,
    там только SUT0 - сам ставится в On, а то ведь в прошивках которые были выложены
    здесь раньше было - CKOPT-On и SPIEN-On?
    Судя по часто появляющемуся тут вопросу о битах конфигурации: я вообще не указывал того, какие биты должны быть прошиты. Должны быть прошиты точно те же самые биты, что и для оригинальной прошивки, поскольку аппаратно устройства идентичны. И отсутствие прошитого бита SPIEN вообще сделает контроллер неперешивающимся по SPI. Поскольку прошивка задумывалась, как drop-in replacement для оригинальной (бросил на место оригинальной и забыл), то акцента на установке битов не делалось.

    Кабель у меня собран на Atmega8-16PI который питается от 3.3 вольт.
    Если оно работает с оригиналом, то будет работать и с альтернативной версией. Спор по поводу питания от 3.3 вольт кристаллов, работающих на 12 MHz, уже был в соответствующей ветке. Как правило, все работает. Я предпочел питать контроллер от 5 вольт, но выбор этот более-менее произвольный.

    Для полного результата нужно еще проверить на разных версиях винды и разных
    передатчиках, эта возможность у меня есть но нужно некоторое время.
    Самое интересное - проверить на 98 и ME. 98-я, по имеющейся информации, иначе работает с HID джойстиками. Она требует положительных значений передаваемых данных (это условие у меня соблюдается изначально) и не использует USB interrupt для опроса устройства (у меня реализовано оба варианта: как система запросит - так мы ей и ответим).

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

  12. #49

    Регистрация
    30.11.2005
    Адрес
    Екатеринбург
    Возраст
    61
    Сообщений
    75
    Попробовал снова прошивки но уже с включенными битами - CKOPT и SPIEN:
    2006.08.09 - работать совсем отказалась
    2006.08.11 - работает как и прежде отлично
    2006.08.11(btn) - тоже работает без проблемм

  13. #50

    Регистрация
    16.01.2006
    Адрес
    MO
    Возраст
    49
    Сообщений
    245
    Цитата Сообщение от osnwt Посмотреть сообщение
    В любом случае спасибо за информацию всем ответившим. По крайней мере понятно, что хоть у кого-то оно заработало. Хотелось бы еще в том же ряду увидеть сравнение с оригинальной версией, чтобы для себя уяснить, а имело ли смысл все это мероприятие? Я писал для себя, но спустя полгода что-то стукнуло выложить сюда. Может, и зря. Но раз выложил, то хотелось хотя бы понять, имело ли все это смысл...
    На мой взгляд- Имело !!! и даже не надо сомневаться в этом.
    повторюсь - Честь и хвала автору

    ЗЫ у меня оригинальная работала нормально тока с SANWA RD6000, c Futaba 9CHP каналы были перетусованы и небыло кнопок (смею предположить что изза инверсии PPM, транзистор на входе стоит)
    С Вашей все ОК.ОВ.

  14. #51

    Регистрация
    17.04.2005
    Адрес
    г. Таганрог
    Сообщений
    89
    Цитата Сообщение от DrClover Посмотреть сообщение
    ЗЫ у меня оригинальная работала нормально тока с SANWA RD6000, c Futaba 9CHP каналы были перетусованы и небыло кнопок (смею предположить что изза инверсии PPM, транзистор на входе стоит)
    С Вашей все ОК.ОВ.
    Странно... у меня оригинальная работала на санвах, хайтеках и даже футабах в том числе и 9ти канальная футаба, точно какая не знаю.. все это пошло по знакомым.

  15. #52

    Регистрация
    16.01.2006
    Адрес
    MO
    Возраст
    49
    Сообщений
    245
    Цитата Сообщение от graham Посмотреть сообщение
    Странно... у меня оригинальная работала на санвах, хайтеках и даже футабах в том числе и 9ти канальная футаба, точно какая не знаю.. все это пошло по знакомым.
    С футаба 9 она работала - но без кнопок, с санвой нормально с кнопками
    Возможно это из за транзистора на входе(РРМ позитив негатив) делал несколько штук себе и друзьям
    по полной схеме со стабилизатором 3.3в и транзистором на входе у всех окей, у меня без кнопок
    Вэтом проекте как я понял нет разницы в РРМ позитив или негатив
    удобно для не сильно рубящих правильно собрал схему- залил прошивку -счастье !
    да и дерганий каналов поменьше.

  16. #53
    Давно не был
    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    41
    Сообщений
    3,117
    Цитата Сообщение от DrClover Посмотреть сообщение
    ЗЫ у меня оригинальная работала нормально тока с SANWA RD6000, c Futaba 9CHP каналы были перетусованы и небыло кнопок (смею предположить что изза инверсии PPM, транзистор на входе стоит)
    У sanwa и futaba разный порядок следования каналов. У futaba 1-элерон 2-руль высоты а у sanwa - 1-руль высоты 2-элероны.

  17. #54

    Регистрация
    17.09.2004
    Адрес
    Frankfurt, Germany
    Возраст
    50
    Сообщений
    13,421
    Записей в дневнике
    196
    Заинтриговали меня посты тут: скачал, прошил последнюю версию с кнопками (ничего не менял, т.к. компайлера нет а ссылка в доку на демо качает полную версию).
    Как уже замечено каналы по сравнению с оригинальной прошивкой расположены по-другому...
    Дрожания ручек не заметно, зато имеется небольшое скакание при минимальной длине импульса на двух каналах (из шести)
    Передатчик Graupner/JR X412 совсем новый (т.е. резюки в порядке)
    Позже протестую с Graupner MX12/JR 2610
    Спасибо автору и успехов

  18. #55

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от boroda_de Посмотреть сообщение
    компайлера нет а ссылка в доку на демо качает полную версию.
    Это не совсем демо - это на самом деле полная eva*luation версия, отличающаяся от retail только отсутствием исходников библиотек. Если ее скачивать через сайт после регистрации (ни к чему не обязывающей), то на указанный email присылают 30-дневную лицензию, позволяющую протестировать пакет без каких-либо ограничений. Если скачать ее по прямой ссылке, то без лицензии запустить продукт не получится, но в определенном смысле эта проблема решаема. Например, путем покупки лицензии. Ну, или поиска в интернете, или т.п.

  19. #56

    Регистрация
    30.08.2004
    Адрес
    Бугульма, Татарстан
    Возраст
    70
    Сообщений
    263
    Проверил последние прошивки на Win ME и 98. Передатчик - Hitec Focus Heli 5. Работают без проблем FMS и AFPD. Оригинальная прошивка v1.1 не позволяет откалибровать джойстик в этих симуляторах под МЕ и 98.

    Теперь замечания/просьба. Дело в том, что без хотя бы одной кнопки откалибровать джойстик в "Игровых устройствах" (в МЕ и 98) не удается. (Или я не знаю как. Кто знает - научите. Только не надо ссылаться на Win XP - там это сделать можно!)) Кнопки, совмещенные с ручками передатчика еще более запутывают ситуацию. Крайне желательно было бы, чтобы хотя бы одна кнопка эмулировалась с клавиатуры или с замыкания ножки микропроцессора на землю.

    IMHO: Нужна прошивка, где кнопки эмулируются с клавиатуры или с ножек микропроцессора (что, по моему, совсем уж не сложно сделать), а лучше - обе прошивки. Кнопки с ручек передатчика, на мой взгляд, только создают неудобства.

    В любом случае большая благодарность автору. Я, например, давно уже собирался сделать адаптер - наконец сделал. (Хотя реальной нужды вроде бы и нет - есть фирменнные RF G2 и Reflex. Пульт RF G2 перекрывает все потребности.) Просто любопытно было поковыряться.

    Кстати, если кому интересно. Столкнувшись с проблемой "Неизвестное USB устройство" стал с ней бороться. Были перепробованы все рекомендованные (в соответствующей ветке форума) способы: Питание 5в - 3.6в, конденсаторы на D+ и D-, провод длинный - короткий и тд. Все это давало мизерные результаты. (Хотя и давало. Например, иногда все таки устройство опознавалось). В конце концов подпаял конденсатор 500пф на ножку резонатора (все равно какую) - все заработало как часы! В любых комбинациях - 5в, 3,6в, с конденсаторами на D+ и D-. и без с длинным кабелем и коротким, с любыми прошивками (даже с "неустойчивами" , про заведомо нерабочие я не говорю).... . Померял частоту на резонаторе.Без подпаянного конденсатора 12.06 мгц. С конденсатором на выводе XTAL2 - 12.00, с конденсатором на XTAL1 - 11,93. За точность цифр не ручаюсь - мерялось китайским мультиметром, хотя думаю кварц там заведомо точнее, чем керамический резонатор. Но тенденцию проследить можно... . Кстати, рекомендация включить FUSE bit CKPOT (в оригинальной статье, написано - включить все FUSE... ) как раз и подключает внутренние конденсаторы к резонатору, понижая частоту (в моем случае - недостаточно!). В общем, возникло предположение - а не связаны ли все проблемы у людей с разбросом частот резонатора? У кого чуть ниже - и никаких проблем, а у кого чуть выше... . Впрочем, это каждый может проверить сам. Если не заест лень - попробую поставить внешнюю RC цепочку, и посмотреть, насколько точно нужно подбирать частоту. (В оригинальной статье написано: +- 1%, но в моем случае +1% оказался фатальным!)
    В данный момент схема выглядит так: два диода с +5 на питание процессора, конденсатор 0,1 мкф керамический по питанию процессора, никаких резисторов, конденсаторов, стабилитронов на D+ и D- (кстати, резистор с D- должен быть подключен к +5, а не к 3,3в ? по описанию шины, хотя это, наверное, непринципиально. Сигнал с передатчика - через резистор. Итого:
    Два конденсатора 0,1мкф (питание проца) и 510 пф (на резонатор)
    Два резистора 1,5ком (с D- на +5в) и 10ком (на передатчик)
    Два диода КД522 снижают напряжение до 3,6в. (Я все-таки тоже сторонник, чтобы все было по правилам)
    ATMEGA8-16PI
    Резонатор ZTT 12мГц

    Итого 8 элементов. Без проблем работает с удлиннительным USB кабелем 1,6 метра, на раных компах.

  20. #57

    Регистрация
    01.09.2006
    Адрес
    СПб
    Сообщений
    1
    А кто-нибудь джойстик на PIC?
    http://www.gamma.spb.ru/articles.php?i=29
    С аппаратной поддержкой USB 2.0 и CCP должно стабильней работать.

  21. #58

    Регистрация
    20.12.2005
    Адрес
    В. новгород
    Возраст
    56
    Сообщений
    187
    Решил заменить шнур с Com портом, на шнур USB. Собрал устройство, взял у знакомого программатор, скачал PonyProg, запрограммировал. Подключил к компу - устройство не опознано. Посмотрел осциллографом сигналы на выходе - нет ничего, кроме постоянки на "Data-" и входного сигнала РРМ. На обеих ножках кварца тоже нет ничего. А больше и проверять-то нечего. С микропроцессорами я не знаком, поэтому есть вопросы:
    - встроенный генератор на кварце тоже программируется, или он должен работать автономно?
    - расширение а90 - это тоже НЕХ, я его переименовал с расширением НЕХ, чтобы открыть в программаторе, это допустимо?
    - как-то можно проверить, правильно ли я его запрограммировал и что еще можно посмотреть?
    - может я генерацию щупом срываю, но вроде с делителем 1:10 и емкостью 12 пф.

  22. #59

    Регистрация
    17.09.2004
    Адрес
    Frankfurt, Germany
    Возраст
    50
    Сообщений
    13,421
    Записей в дневнике
    196
    П1. Чтоб кварц заработал, нужно при прошивке процессора поставить Fuses смотрите тут http://www.rcdesign.ru/articles/electronics/rcusb

    Важно не забыть запрограммировать конфигурационные биты контроллера (fuses). Для данного устройства все биты должны быть установлены в "1" (не запрограммированы). Для этого в PonyProg необходимо снять все флажки в диалоговом окне "Configuration and Security bits".
    П2 Допустимо, я тоже так делал.
    Скорее всего у Вас после поправки fuses заработает.

  23. #60

    Регистрация
    20.12.2005
    Адрес
    В. новгород
    Возраст
    56
    Сообщений
    187
    boroda_de спасибо. Я конечно читал, что все биты конфигурации должны быть в 1. Но я почему-то считал, что их достаточно правильно выставить и они зашьются одновременно с основной прошивкой, а оказывается их надо отдельно прошить. Всю голову сломал.

  24. #61
    Psw
    Psw вне форума
    Давно не был
    Регистрация
    04.10.2005
    Адрес
    Калининград
    Возраст
    50
    Сообщений
    655
    Цитата Сообщение от copperfield Посмотреть сообщение
    А кто-нибудь делал джойстик на PIC?
    Как раз под рукой случайно оказался 18ф4550 в ДИП корпусе и не нужный USB шнурок - сегодня спаял/запустил пробничек:
    Нажмите на изображение для увеличения
Название: USB_18F4550.jpg
Просмотров: 361
Размер:	34.8 Кб
ID:	44158
    в текущий момент одно осевого джоя.
    Ну ...
    Из хороших новостей - на Микрочипе стала бесплатно доступна студенческая 60 дней версия Си для 18 ПИКов. ну и какая-то документация к нему.
    Наконец-то я хоть какой-либо проектик на Си для ПИКов самостоятельно скомпилил и он кое-как заработал. Пришлось правда в проект добавить асм файл явного описания конфигурации МК ( не знаю как енто содеять на Си ), ну и подправить конфу для 12 МГц квареца - как у оригинального шнурка.
    А дальше - надо править/ваять дескрипторы/прочее, что-бы 16 бит CCP использовать для захвата PPM,
    (точность захвата должна быть раз в пять лучше чем выход у Футабы-2048), аппаратный USB должен успевать 8 каналов по 16 бит передавать, ну и усреднять АЦП преобразования - благо макс производительность АЦП около 125 киловыборок/секунду, если 4 канала по 64 раза усреднять - более 400 усреднённых 16 бит преобразований/секунду на каждый канал - более 8 раз быстрее чем надо.
    Одним словом - можно/нужно ковырять .
    А из интересных ( но как всегда мало доделанных) примерчиков для 18ф4550 на Микрочипе - USB бут лоадер ну и Storage класс.

  25. #62
    Psw
    Psw вне форума
    Давно не был
    Регистрация
    04.10.2005
    Адрес
    Калининград
    Возраст
    50
    Сообщений
    655
    Цитата Сообщение от osnwt Посмотреть сообщение
    (ограничение программного USB как low-speed device).
    >>>
    пример того, как можно делать USB HID дескрипторы
    >>>
    Еще оптимальнее было бы переписать out_joystick_btn так, чтобы передавать не 8-ми, а 10-ти битные значения каналов.
    Ну ... Помог бы мне кто с дескриптором/прочим - потому как HID Descriptor Tool не нашёл почему-то,
    а самому думать - пока не получается.
    Иными словами, хочу попробовать на 18ф4550 заменить текущий дескриптор ОДНО осевого джоя из
    примера Урок #2. Создание USB 2.0 совместимого HID-устройства типа джойстик:
    // Старый одноосевой Джой дескриптор
    // 0x05, 0x01, // USAGE_PAGE (Generic Desktop)
    // 0x15, 0x00, // LOGICAL_MINIMUM (0)
    // 0x09, 0x04, // USAGE (Joystick)
    // 0xa1, 0x01, // COLLECTION (Application)
    // 0x05, 0x02, // USAGE_PAGE (Simulation Controls)
    // 0x09, 0xbb, // USAGE (Throttle)
    // 0x15, 0x00, // LOGICAL_MINIMUM (0)
    // 0x26, 0xff, 0x00,// LOGICAL_MAXIMUM (255)
    // 0x75, 0x08, // REPORT_SIZE (8)
    // 0x95, 0x01, // REPORT_COUNT (1)
    // 0x81, 0x02, // INPUT (Data,Var,Abs)
    // 0x05, 0x09, // USAGE_PAGE (Button)
    // 0x19, 0x01, // USAGE_MINIMUM (Button 1)
    // 0x29, 0x08, // USAGE_MAXIMUM (Button 8)
    // 0x15, 0x00, // LOGICAL_MINIMUM (0)
    // 0x25, 0x01, // LOGICAL_MAXIMUM (1)
    // 0x75, 0x01, // REPORT_SIZE (1)
    // 0x95, 0x08, // REPORT_COUNT (8)
    // 0x55, 0x00, // UNIT_EXPONENT (0)
    // 0x65, 0x00, // UNIT (None)
    // 0x81, 0x02, // INPUT (Data,Var,Abs)
    // 0xc0 // END_COLLECTION
    на дескриптор, описывающий 8 - 10 штук 16 бит осей и 8 кнопок.
    Ограничения длинны - макс 64 байта передачи за раз - вполне хватает для передачи всего одним пакетом.

  26. #63
    Psw
    Psw вне форума
    Давно не был
    Регистрация
    04.10.2005
    Адрес
    Калининград
    Возраст
    50
    Сообщений
    655
    Цитата Сообщение от Psw Посмотреть сообщение
    Ну ... Помог бы мне кто с дескриптором/прочим
    а самому думать - пока не получается.
    Нашёл HID Descriptor Tool, не особо помогает, вот что вставил:
    // Пытаюсь модифицировать дескриптор для 16 бит 9 каналов джойстика и 8 кнопок -
    // получается 19 байт надо передавать.
    0x05, 0x01, // USAGE_PAGE (Generic Desktop)
    0x15, 0x00, // LOGICAL_MINIMUM (0)
    0x27, 0xff, 0xff, 0x00, 0x00, // LOGICAL_MAXIMUM (65535)
    0x75, 0x10, // REPORT_SIZE (16)
    0x09, 0x04, // USAGE (Joystick)
    0xa1, 0x01, // COLLECTION (Application)
    0x09, 0x01, // USAGE (Pointer)
    0xa1, 0x00, // COLLECTION (Physical)
    0x09, 0x30, // USAGE (X)
    0x09, 0x31, // USAGE (Y)
    0x95, 0x02, // REPORT_COUNT (2)
    0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
    0xc0, // END_COLLECTION
    0xa1, 0x00, // COLLECTION (Physical)
    0x09, 0x32, // USAGE (Z)
    0x09, 0x33, // USAGE (Rx)
    0x95, 0x02, // REPORT_COUNT (2)
    0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
    0xc0, // END_COLLECTION
    0x09, 0x34, // USAGE (Ry)
    0x09, 0x35, // USAGE (Rz)
    0x09, 0x36, // USAGE (Slider)
    0x09, 0x37, // USAGE (Dial)
    0x09, 0x38, // USAGE (Wheel)
    0x95, 0x05, // REPORT_COUNT (5)
    0x81, 0x82, // INPUT (Data,Var,Abs,Vol)
    0x15, 0x00, // LOGICAL_MINIMUM (0)
    0x25, 0x01, // LOGICAL_MAXIMUM (1)
    0x95, 0x08, // REPORT_COUNT (8)
    0x75, 0x01, // REPORT_SIZE (1)
    0x05, 0x09, // USAGE_PAGE (Button)
    0x19, 0x01, // USAGE_MINIMUM (Button 1)
    0x29, 0x08, // USAGE_MAXIMUM (Button 8)
    0x81, 0x02, // INPUT (Data,Var,Abs)
    0xc0 // END_COLLECTION
    В итоге - каналы джоя появились на свет, но - молча стоят по центру.
    Хотя я буфер передачи удлиннил до 20 байт и один байт АЦП рассовал по старшим байтам всех каналов - толку пока ноль, ни кнопки ни каналы не шевелятся.

  27. #64
    Psw
    Psw вне форума
    Давно не был
    Регистрация
    04.10.2005
    Адрес
    Калининград
    Возраст
    50
    Сообщений
    655
    Цитата Сообщение от Psw Посмотреть сообщение
    В итоге - каналы джоя появились на свет, но - молча стоят по центру.
    Оказалось, что такая ерунда при различной не стыковке в дескрипторах.
    В итоге Сделал себе напоминалку - код не связан/не вылизан:
    // При смене формата джоя как минимум менять:
    // 1. Длинна дескриптора HID_RPT01_SIZE в USBCFG.H
    // 2. Количество Передаваемыхбайтов HID_INT_IN_EP_SIZE в USBCFG.H
    // 3. Макс размер передаваемого буфера EP0_BUFF_SIZE = 8 в USBCFG.H
    // 4. Структура передаваемого буфера в User_Joy.c
    // 5. Количество байт в Вызов передачи данных HIDTxReport(buffer,2) в User_Joy.c ;
    В текущий момент сделано 9 каналов по 16 бит и 8 кнопок - но девятого канала ни AFPD ни утилита калибровки джоев не видит, уберу его.
    Сегодня затолкал/термо вклеил 18ф4550 и разъем USB в пультик от DF5#4 соосничка - в параллель к родному кодеру, перед кренкой диодик на всяк случай поставил, что-бы от USB питание на вых каскад не шло. Быть может поторопился, но вроде Микрочип USB бут лоадер тоже работает кое-как - обновлять по USB шнурку прошивки джоя вроде получается, потому и вклеил - без ICSP коннектора.
    Теперь можно играцца дальше.

  28. #65

    Регистрация
    21.11.2004
    Адрес
    карелия, петрозаводск.
    Возраст
    32
    Сообщений
    405
    А у меня не работает что-то. Девайс шьется, фузы зашил, прошивку залил, устройство неопознано. Светодиодная мигалка заработала. Ошибок в подключении вроде нету -)

    Может, провод мгтф на юсб не подходит? 4 провода, где то 10 см.

  29. #66
    AVK
    AVK вне форума

    Регистрация
    30.03.2005
    Адрес
    Благовещенск, Урал
    Возраст
    45
    Сообщений
    467
    Последнюю прошивку залил вполне нормально работает, только когда ручками шевелишь почемуто кнопки мигают (когда в виндах смотришь), кстати попутно выяснил что мега 8-8 нормально работает на 12 мГц, видать просто маркировка разная а чип один.

  30. #67

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от AVK Посмотреть сообщение
    Последнюю прошивку залил вполне нормально работает, только когда ручками шевелишь почемуто кнопки мигают (когда в виндах смотришь)
    Так и быть должно, поскольку кнопки просто дублируют состояния каналов. Если канал меньше 50%, то кнопка выключена (погашена). Если больше 50%, то включена (светится).

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

    По поводу независимых от каналов кнопок (был такой вопрос): сделать их управление от клавиатуры проблематично, так как это повлечет за собой свой драйвер на Windows. А вот сделать их зависимыми от кнопок, подключенных к Mega8 - это очень просто. Достаточно один раз при инициализации прошивки включить pull-up резисторы на соответствующих пинах (куда подключить кнопки), а потом читать состояние этих битов, укладывать их в байт и вставлять его при формировании HID Report вместо сравнения каналов с 50%. Это легко сделать самому - на то и открытые исходники.

  31. #68
    AVK
    AVK вне форума

    Регистрация
    30.03.2005
    Адрес
    Благовещенск, Урал
    Возраст
    45
    Сообщений
    467
    Я так понял, что полярность сигнала по барабану? у меня на входе транзистора нет просто рез на 10к стоит.

    По поводу джойстика на пике, это изврат конкретный, особенно если посмотреть на цены пиков и ужаснуться сразу и навсегда забыть про пики.

  32. #69

    Регистрация
    24.06.2006
    Адрес
    Москва
    Возраст
    49
    Сообщений
    434
    Цитата Сообщение от AVK Посмотреть сообщение
    По поводу джойстика на пике, это изврат конкретный, особенно если посмотреть на цены пиков и ужаснуться сразу и навсегда забыть про пики.
    Не понял. PIC18F2550 стоит в розницу $5,74, итого себестоимость комплектухи со всей обвязкой - $10-15. В каком месте ужасаться?

  33. #70

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от AVK Посмотреть сообщение
    Я так понял, что полярность сигнала по барабану? у меня на входе транзистора нет просто рез на 10к стоит.
    Да.

    Цитата Сообщение от gosha-z Посмотреть сообщение
    Не понял. PIC18F2550 стоит в розницу $5,74, итого себестоимость комплектухи со всей обвязкой - $10-15. В каком месте ужасаться?
    ATMEGA8-16AU 1.376 $ (MT-System, СПб, розница от 1 шт.).

    Ужасаться, может, и не стоит. Но разница - цена аппаратного USB, который, конечно, вещь приятная, но насколько оно потребно в данном применении - вопрос субъективный.

  34. #71

    Регистрация
    20.12.2005
    Адрес
    В. новгород
    Возраст
    56
    Сообщений
    187
    А подскажите в чем проблема - не убрать газ полностью, 3-й канал. WinXP. Раньше со шнурком на COM порт таких проблем не было, а теперь никак не остановиться. А в остальном все нормально. При калибровке все нормально показывает - столбик от нуля до полного заполнения.

  35. #72

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от Yuriy Посмотреть сообщение
    А подскажите в чем проблема - не убрать газ полностью, 3-й канал. WinXP. Раньше со шнурком на COM порт таких проблем не было, а теперь никак не остановиться. А в остальном все нормально. При калибровке все нормально показывает - столбик от нуля до полного заполнения.
    Если столбик от нуля до 100%, то, возможно, есть смысл проверить калибровку в самом симуляторе. У меня была подобная проблема (которая отложила публикацию на довольно большой срок): не работала пара каналов в AFPD. В джойстике все нормально, а в симе по нулям. Но я им не пользовался и поставил только для проверки работы устройства. Сваливал на дескрипторы и т.п. Но так как было не слишком нужно - не возился. И только потом дошло, что в нем есть своя калибровка. И тогда неработающие каналы нашлись и заработали. Возможно, это поможет.

  36. #73
    AVK
    AVK вне форума

    Регистрация
    30.03.2005
    Адрес
    Благовещенск, Урал
    Возраст
    45
    Сообщений
    467
    По поводу пиков, действительно чему ужасаться, всего лишь в ~четыре раза большая цена, фигня какая (особенно в массовом производстве)
    Да, и где он за пять баксов? я на вскидку поискал дешевле 8-ми (оптом) не нашел, ссылку дайте плиз, может там и меги по 50центов есть

  37. #74

    Регистрация
    20.12.2005
    Адрес
    В. новгород
    Возраст
    56
    Сообщений
    187
    Если столбик от нуля до 100%, то, возможно, есть смысл проверить калибровку в самом симуляторе. У меня была подобная проблема (которая отложила публикацию на довольно большой срок): не работала пара каналов в AFPD. В джойстике все нормально, а в симе по нулям. Но я им не пользовался и поставил только для проверки работы устройства. Сваливал на дескрипторы и т.п. Но так как было не слишком нужно - не возился. И только потом дошло, что в нем есть своя калибровка. И тогда неработающие каналы нашлись и заработали. Возможно, это поможет.
    Cтолбик от нуля до 100% именно в FMS, честно говоря, я в джойстик и не заглядывал. А если в FMS снимаю реверс - то минимальный газ - это ручка от себя и в этом случае газ сбрасывается полностью.
    Попробовал зайти в джойстик из панели управления - там не отображается столбик руля высоты, хотя крестик перемещается, после калибровки джойстика, в FMS заново откалибровал, но все осталось также.

  38. #75

    Регистрация
    21.11.2004
    Адрес
    карелия, петрозаводск.
    Возраст
    32
    Сообщений
    405
    Блин, было бы неплохо помечать в имени файла где сорсы, а где бинарники ибо описалово читать долго, а в поисках альтернативной опенсорс прошивки накачал архивов, в хесов там нету. А где есть, так вроде ниже написано, что она нерабочая.

    Вощем, разобрался я со своими багами. Керамический резонатор частоту держал плохо. Мега заводилась, но работала не ровно на 12.000. После впайки нормального кварца шнур наконец таки определился.

  39. #76

    Регистрация
    20.01.2006
    Адрес
    Севастополь, Крым
    Сообщений
    90
    Цитата Сообщение от Pa5ha Посмотреть сообщение
    Блин, было бы неплохо помечать в имени файла где сорсы, а где бинарники ибо описалово читать долго, а в поисках альтернативной опенсорс прошивки накачал архивов, в хесов там нету. А где есть, так вроде ниже написано, что она нерабочая.
    К сожалению, если "описалово читать долго", то помочь мало чем могу.
    Ибо, в описалове было написано, что скомпилированная прошивка (а то и несколько в разных вариантах) находится в каждом архиве с исходниками, в подкаталоге Release/EXE. Файл *.a90 - это обычный hex. Его можно переименовать, а можно шить и прямо так. Отдельного файла только с hex не публиковалось с момента выкладывания первого исходника, так как размер и так смешной, а первой целью было выкладывание именно исходников для экспериментов и модификаций заинтересованными людьми, и только потом - собственно, прошивки. А если исходники не нужны, то есть оригинальная прошивка, которая вполне работоспособна.

  40. #77

    Регистрация
    21.11.2004
    Адрес
    карелия, петрозаводск.
    Возраст
    32
    Сообщений
    405
    Прошу прощения, смутило расширение просто.

    Относительно идей.
    если с одним контроллером задача точного измерения временного промежутка нерешаема, то может поставить второй, какой-нить попроще, типа 2313, им принимать ппм и результат выбрасывать на какой-нить порт? А мегой просто в idle принимать информацию о каналах и обновлять. Если бы не учёба, то попробовал бы переписать MJoy и соорудить сей девайс. Ну получилось бы чуть побольше, чем на пике...

  41. #78

    Регистрация
    24.06.2006
    Адрес
    Москва
    Возраст
    49
    Сообщений
    434
    Цитата Сообщение от AVK Посмотреть сообщение
    По поводу пиков, действительно чему ужасаться, всего лишь в ~четыре раза большая цена, фигня какая (особенно в массовом производстве)
    Да, и где он за пять баксов? я на вскидку поискал дешевле 8-ми (оптом) не нашел, ссылку дайте плиз, может там и меги по 50центов есть
    Вот! Ближайшие ко мне. Там же - макетка для SOIC'овского 2550 с кварцем, ICSP портом и просто выводами. Атмелом не торгуют.

  42. #79

    Регистрация
    30.11.2005
    Адрес
    Екатеринбург
    Возраст
    61
    Сообщений
    75
    Вчера юзал вашу прошивку с Graupner MC-20, сразу могу сказать, что все восемь каналов работают, с оригинальной прошивкой с данного сайта не работал 7й канал, цитирую ответ разработчиков на мой вопрос по этому поводу:
    "Канал уходит в систему.
    Просто WinXP не показывает в панели управления ось "Вращение Z",
    а именно на нее по умолчанию назначен 7й канал."
    С альтернативной прошивкой все отлично - пробовал на симуляторе AFPD навесил управление на все восемь каналов.

  43. #80
    Psw
    Psw вне форума
    Давно не был
    Регистрация
    04.10.2005
    Адрес
    Калининград
    Возраст
    50
    Сообщений
    655
    Зима, холодно, поворошил старый проектик слегка.
    Цитата Сообщение от Psw Посмотреть сообщение
    усреднять АЦП преобразования - благо макс производительность АЦП около 125 киловыборок/секунду, если 4 канала по 64 раза усреднять
    Слегка напутал с производительностью АЦП у 18ф4550 - не учёл время выборки, с его учётом получилось 65+ КГц.
    В целом проект слишком сложен для меня, так и не знаю, как там работает УСБ.
    Ну усреднил по 256 разиков 4 канальчика и получил 60+ Гц частоту измерений, 13 бит на выходе оставил.
    16 бит каналы всё-таки дрожат слегка в калибровке винды, размах дрожания около 4 из 16 передаваемых битов.
    Четыре младших канала от АЦП, два старших от кнопок, два не задействованы ( им ничего не присваивается) хотя в комп они передаются.
    Шьётся через УСБ бут лоадер вполне успешно.
    Правда, при отладке с перепугу пришлось всё-таки ICSP разъём припаять на всяк случай.
    Теперь у меня есть наконец-то отдельный пультик от DF 5#4 для симулятора - а сам DF 5#4 пока без шестерён лежит, отдыхает.
    Вот бы ещё точный вход/выход ППМ прицепить к ентому проектику - хорошая была бы заготовка для добавления каналов к имеющемуся ППМ сигналу или гибкого смешивания тренер/ученик и прочих мелких надобностей.


    Цитата Сообщение от AVK Посмотреть сообщение
    всего лишь в ~четыре раза большая цена, фигня какая (особенно в массовом производстве)
    А кто здесь собирается массовое производство организовывать ?
    Кроме того, за доп. деньги даётся доп. оборудование.
    Ну и прочие мелочи.

Закрытая тема

Похожие темы

  1. usb-адаптер для передатчика
    от toxa в разделе Обсуждение статей
    Ответов: 415
    Последнее сообщение: 24.06.2015, 19:22
  2. Ответов: 5
    Последнее сообщение: 07.07.2010, 07:54
  3. USB-адаптер для передатчика
    от Emr в разделе Симуляторы
    Ответов: 21
    Последнее сообщение: 22.01.2009, 18:12
  4. Usb-адаптер для приемника
    от GunFighter в разделе Самодельная электроника, компьютерные программы
    Ответов: 25
    Последнее сообщение: 30.12.2006, 16:19

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения