usb-адаптер для передатчика

osnwt
Psw:

Одним словом, к тестам/экспериментам альтернативной проги/прошивки от osnwt готов.

Вопрос ко всем по ее функциональности. В оригинальной версии, насколько я могу судить косвенно (по репорт-дескриптору), поддержано 9 каналов управления и 8 кнопок на выходе (USB сторона). Что и как подается там на вход - я не интересовался. Насколько я понимаю, стандартно PPM поддерживает до 8-ми каналов. Потому на данный момент я оставил в исходнике только эти 1-8 каналов, полученных с PPM входа с целью упрощения кода. Поскольку эти 8 каналов передаются за одну транзакцию, получается период опроса около 10 мс в отличие от 20 в оригинале (правда, не знаю, имеет ли это реальное значение для симуляторов). Вариант с бОльшим количеством каналов (и даже с бОльшим количеством независимых джойстиков - скажем, для подключения сразу двух пультов и игры вдвоем по одному USB интерфейсу) также проверен, но его выкладывать я не планирую (нет времени готовить к публикации).

Вопросы:

  1. Использует ли кто-то 9-й канал? Если да, то с какой аппаратурой и как он кодируется (просто 9-й канал в последовательности)?
  2. Использует ли кто-то эти 8 кнопок? Если да, то как они кодируются в PPM сигнале?

Кроме того, с целью упрощения я не предусмотрел маппинга каналов через EEPROM. Не вижу смысла, поскольку (1) практически, все симуляторы поддерживают маппинг своими силами; (2) для такого маппинга в оригинале все равно требуется программатор, а я выкладываю исходники. Всё это рассчитано не на тех, кто хочет просто повторить устройство (для этого есть оригинал), а на тех, кто захочет провести эксперименты, например, с PCM декодированием или самодельными датчиками ручек, подключенными через встроенный ADC контроллера.

Кроме того, поскольку наконец-то появился вариант USB загрузчика прошивки (boot loader), помещающийся в 2 килобайта бут-блока ATmega8, то появляется возможность менять прошивки по тому же USB, то есть, без программатора. В публикуемой версии этого не будет, но сделать можно.

Psw

Всё сказанное мной ниже является вольным пересказом инфы с ентого форума/сайта и вполне возможно ошибочно.

osnwt:

стандартно PPM поддерживает до 8-ми каналов.

Вроде как просто ищется синхропауза, без привязки к периоду следования пакетов 20 мСек. Если каналов более 8, то период следования пакетов будет просто увеличиваться. Однако работать должно.

osnwt:
  1. Использует ли кто-то 9-й канал? Если да, то с какой аппаратурой и как он кодируется (просто 9-й канал в последовательности)?

Вроде как да - просто девятый канал в последовательности.

osnwt:
  1. Использует ли кто-то эти 8 кнопок? Если да, то как они кодируются в PPM сигнале?

Кнопки у Вада вначале были - линии портов Меги об землю.
Потом по просьбе Тохи он их вроде как задублировал с сигналом от каналов 4-9 - если сигнал в канале более 50% - кнопка ВКЛ, если менее - кнопка ВЫКЛ, что-то вроде того.
Не знаю, делал ли гистерезис/защиту от дребезга.
Может это вообще и не нужно - потому как это не клава и не тексты шпарить.
На RD8000 регулируется состояние канала 7 и 8 для ВКЛ и ВЫКЛ переключателя.
Мне кнопки/переключатели пока вообще без надобности - не игроман, к симулятору AFPD себя заставляю подходить, просто жалко стало денег на краши как минимум из-за неумения летать/висеть/ловить мордой к себе.

osnwt:

Кроме того, поскольку наконец-то появился вариант USB загрузчика прошивки (boot loader), помещающийся в 2 килобайта бут-блока ATmega8,

У Дарёного Коня зубья не считают - енто верно.
Я кстати недавно за несколько дней от скуки сваял макетик/прогу со строковым 20х4 LCD и 18 ПИКом. Пока мертвый - не выводит ни хрена на 44780 - не отлаживал вообще. Лето, жара, море, пиво и прочие радости жизни навевают лень повышенную.
И кстати - недавно InterSema.Ch порадовала меня 3 мя штуками ms5543b датчиков абс давления/температуры +16 бит дельта-сигма АЦП в одном флаконе.
Один могу уступить для опытов в хорошие руки - маленький, легкий, точный, мало кушающий модуль с i2c интерфейсом.

osnwt
Psw:

Вроде как просто ищется синхропауза, без привязки к периоду следования пакетов 20 мСек. Если каналов более 8, то период следования пакетов будет просто увеличиваться. Однако работать должно.

Мой PPM декодер является управляемым по прерыванию и также нечувствителен к полярности и количеству импульсов - сколько есть, столько и принимает, но не более, чем максимально заданная константа. Можно попробовать увеличить эту цифру с 8 до 9.

Потом по просьбе Тохи он их вроде как задублировал с сигналом от каналов 4-9 - если сигнал в канале более 50% - кнопка ВКЛ, если менее - кнопка ВЫКЛ, что-то вроде того.

Отличная идея, я чего-то об этом не подумал. Это на самом деле может быть полезным.

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

Но это займет некоторое время, так как я до выходных занят. Думаю, что на выходных выложу что-то, раз уж проанонсировал.

И кстати - недавно InterSema.Ch порадовала меня 3 мя штуками ms5543b датчиков абс давления/температуры +16 бит дельта-сигма АЦП в одном флаконе.
Один могу уступить для опытов в хорошие руки - маленький, легкий, точный, мало кушающий модуль с i2c интерфейсом.

Ох ты, и где же такое чудо берется и сколько денег стоит?
Полтора года назад, когда делал себе вариометр (для полетов в потоках на параплане, ибо являюсь парапланеристом), все перерыл, но ничего такого не нашел (с АЦП на борту): или точность никакая (а моя связка MPX4115+ADS1240/AD7705 дает цену деления 15 см по высоте), или цена безбашенная. Поскольку эта часть - самая дорогая в таком приборе, то очень интересно бы узнать, где такое можно найти. Лучше в ЛС, ибо не по теме тут.

osnwt
osnwt:

Думаю, что на выходных выложу что-то, раз уж проанонсировал.

Итак, общему вниманию предлагается альтернативная прошивка (пока без исходников). Прошу подтвердить ее работу или неработу с парой популярных PPM передатчиков. См. прицепленный файл.

Краткое описание

Вход: PPM до 8 каналов, полярность не имеет значения.
Выход: HID джойстик на 8 аналоговых каналов.

В данной прошивке не выполняется маппинг каналов в соответствии с их назначением прямо или через NVRAM. Соответствие каналов жестко записано следующее (оно не соответствует маппингу по умолчанию в оригинальной прошивке - проверяется не соответствие один в один):

1 - X
2 - Y
3 - Z
4 - Rx
5 - Ry
6 - Rz
7 - Slider
8 - Dial

Интересует принципиальная управляемость всех осей (смотреть в панели управления игровыми устройствами) с разной аппаратурой (с какой конкретно?). Если будет работать нормально, то, возможно, допишу маппинг каналов и второй вариант выходного интерфейса с дополнительными кнопками и, возможно, еще 9-м каналом (если он кому-то нужен - пока не видел, чтобы кто-то попросил).

После получения положительных (а как же иначе) отзывов опубликую в виде open-source свои исходники на C.

PS. К авторам оригинальной статьи: если вы считаете, что мой постинг тут неуместен по каким-либо причинам - прошу сообщить. Без проблем переползу в любую другую тему/форум/сайт.

Vitaly

Лучше наверное в раздел программ/схем.

Краевед
osnwt:

Итак, общему вниманию предлагается альтернативная прошивка (пока без исходников). Прошу подтвердить ее работу или неработу с парой популярных PPM передатчиков. См. прицепленный файл.

У меня эта прошивка вообще не запустилась 😦 пишет “устройство не опознано”

osnwt
Vitaly:

Лучше наверное в раздел программ/схем.

OK. Перевел тему сюда.

1 month later
Victor

Спаял кабель, отошел от схемы только поставив стабилизатор на 3в. При подключении к юсб определяется как неизвесное устройство:( , драйвер не ставится. Прошивка первой версии. Подключал к ноуту Ровер с win2000. Подскажите как выйти из этой ситуации?

Victor

Устройство должно опозноваться без передатчика?

boroda_de

Опознаётся без передатчика.
Проверьте питание процессора и локбиты в прошивке

Victor

Сегодня перебирал схему на питание 5в, выкинув от туда стабилитроны, на 7 ноге меги оказалось +6в. от этого может не работать?

Victor

Ну не понимаю я ничего. Сделал по схеме с питанием через стабилитроны. Прошивка 3 версии. ЛОкбиты все еденички. На кварце померил 12мгц генерится. Комп определяет как неизвесное устройство 😠 Длина юсб кабеля 5 см. Подкючал и через хаб и нет… ну вообщем все перепробовал. Стоит Вин2000+Ровербук. Пробовал на ХР тоже не работает. 😕 Подскажите в чем может быть дело?

Victor

И еще один вопрос. Файлы прошивки в интел хексе ли еще в каком формате?

Victor

Ну мож хоть кто-нибудь откликнется?

DrClover
Victor:

И еще один вопрос. Файлы прошивки в интел хексе ли еще в каком формате?

да вроде вхексе
посмотри продолжение этой ветки в разделе Аппаратура
там есть альтернативная прошивка
и кое какие советы
еще раз проверь схему и локбиты при программировании
чем прошивал ?
еще бывает что китайцы на юсб кабеле провода местами меняли (если не звонить от разъема а по цветам подключать)

NailMan
Victor:

Ну не понимаю я ничего. Сделал по схеме с питанием через стабилитроны. Прошивка 3 версии. ЛОкбиты все еденички. На кварце померил 12мгц генерится. Комп определяет как неизвесное устройство 😠 Длина юсб кабеля 5 см. Подкючал и через хаб и нет… ну вообщем все перепробовал. Стоит Вин2000+Ровербук. Пробовал на ХР тоже не работает. 😕 Подскажите в чем может быть дело?

Чем шьешь? Прога и программатор?

Я вот шью прошивалкой YAAP и его родным программатором на четырех резисторах 100 Ом. Уже не один десяток микросхем прошил и усе в порядке, определяется как по часам.

Одно НО - схемы делаю не на керамическом генераторе, а на кварце с емкостями 30 пФ.

Victor

Юсб кабель звонил, там все правильно. Прошивали Автопрогом. С локбитами тоже вроде все ок. Завтра попробую сделать Понипрог и прошить им. А кварц тут помойм не причем, потому что этот работает, и частота на нем есть.

Aleksey_Gorelikov

С керамическими резонаторами - беда… Год назад брал в чипе-дипе - все оки, а недавно - взял 10 штук. Генерят, но где-то не там… Комп не видит. С обычными - все оки, особенно если питание через диод и кондер не забыть.

Victor

Уря 😃 все заработало и определилось! Дело было в керамическом резанаторе. Он правда генерил, но где-то не там. Как тока поставил кварц +2 дип кондера = все заработало. Всем спасибо за советы.

1 month later
Pa5ha

Эх, не успел я ответить -) Тоже ставил керамический резонатор и тоже нифига не работало, хотя контроллер заводился.

Прошиваю AVReal-ом