-
Вложений: 1
Ответ: USB контроллер джоистика
Продолбался с программированием, потому что сначала заливал с помощью AVRprog1_37 и не знал как там выставлять биты (кстати MeanDog ссылался на 24-ю страницу описания ATmega8, я нашел pdf на английском, а там только 19 страниц, о каком документе шла речь?), потом выставил биты под PonyProg и все пошло. Насколько я понимаю в AVRprog установки должны получиться как в прилагаемом файле. Поправьте, если не так (я установил биты под PonyProg и считал потом под AVRprog).
-
Ответ: USB контроллер джоистика
Кстати по мотивам того, что я почитал по модификациям джойстиков в инете - есть много информации типа "я сделал оптический сенсор на базе оптопары мыши с затвором, напечатанным на струйнике на бумаге, но почему-то есть дергания", так вот при проверке на практике оказалось, что на работе такого варианта больше сказывается разнородность бымаги, чем разница в заливке чернилами, да и чернила не годятся для инфракрасного. Латунная шторка от переменного конденсатора подошла куда лучше.
Есть еще вопрос по диодной развязке, описанной раньше. Если делать это на кремниевых диодах и не обеспечить должной подсадки, то диоды будут работать почти как конденсаторы. При 5 вольтах подсаживать надо примерно 20-ти кОм-ами, а какую подсадку дает микроконтроллер в данном варианте?
-
Ответ: USB контроллер джоистика
Про AVRprog ничего сказать не могу, я лил PonyProg'ом. По поводу битов - ну тут давне все обсуждено, просмотри всю ветку.
О развязке диодами. Мысль про конденсаторы и "подсадку" я вообще не понял. Я у себя развязывал кремниевыми транзисторами (ну мне так оказалось удобнее, исходная схема MeanDog и вторая версия программы) - считай, те же диоды в данном случае. Плюс к этому некоторые входные линии микроконтроллера "подтягивал" к +5V резисторами на 39 кОм. В принципе, это достаточно индивидуально получается - топология монтажа и особенности шлейфа от контроллера к РУС/РУД. Кусочек своей схемы кнопок с диодами я тут уже рисовал, не поленись посмотреть.
-
Ответ: USB контроллер джоистика
Я сначала отсмотрел всю ветку а потом писал. По поводу битов обсуждено только что под PonyProg все их надо сбросить, а мне интересно что они все обозначают, к тому же теоретически под AVRprog программировать лучше, т.к. там стоит свой кварцованый контроллер, потому вдвойне интересно что выставлять под ним.
Я бы удивился, если бы кто-то развязывал германиевыми,т.к. они частично пропускают в обратном направлении.
Входными считаются линии, которые на сетке клавишь подключены к вертикалям или горизонталям?
-
Ответ: USB контроллер джоистика
А можно на ассемблере для AVR выполнять стандартные штуки PC-шного ассемблера типа:
rjmp req_offsets+temp1
req_offsets:
rjmp ComposeGET_STATUS ;GET_STATUS=0
rjmp ComposeCLEAR_FEATURE ;CLEAR_FEATURE=1
rjmp ZeroDATA1Answer ;=2
rjmp ComposeSET_FEATURE ;SET_FEATURE=3
rjmp ZeroDATA1Answer ;=4
rjmp ComposeSET_ADDRESS ;SET_ADDRESS=5
rjmp ComposeGET_DESCRIPTOR ;GET_DESCRIPTOR=6
rjmp ComposeSET_DESCRIPTOR ;SET_DESCRIPTOR=7
rjmp ComposeGET_CONFIGURATION ;GET_CONFIGURATION=8
rjmp ComposeSET_CONFIGURATION ;SET_CONFIGURATION=9
rjmp ComposeGET_INTERFACE ;GET_INTERFACE=10
rjmp ComposeSET_INTERFACE ;SET_INTERFACE=11
rjmp ComposeSYNCH_FRAME ;SYNCH_FRAME=12
а то меня как-то смущают переборы на равно/перейти
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от VKlimov
А можно на ассемблере для AVR выполнять стандартные штуки PC-шного ассемблера типа:
rjmp req_offsets+temp1
req_offsets:
rjmp ComposeGET_STATUS ;GET_STATUS=0
rjmp ComposeCLEAR_FEATURE ;CLEAR_FEATURE=1
rjmp ZeroDATA1Answer ;=2
rjmp ComposeSET_FEATURE ;SET_FEATURE=3
rjmp ZeroDATA1Answer ;=4
rjmp ComposeSET_ADDRESS ;SET_ADDRESS=5
rjmp ComposeGET_DESCRIPTOR ;GET_DESCRIPTOR=6
rjmp ComposeSET_DESCRIPTOR ;SET_DESCRIPTOR=7
rjmp ComposeGET_CONFIGURATION ;GET_CONFIGURATION=8
rjmp ComposeSET_CONFIGURATION ;SET_CONFIGURATION=9
rjmp ComposeGET_INTERFACE ;GET_INTERFACE=10
rjmp ComposeSET_INTERFACE ;SET_INTERFACE=11
rjmp ComposeSYNCH_FRAME ;SYNCH_FRAME=12
а то меня как-то смущают переборы на равно/перейти
Это можно с ICALL и IJMP командами. В даташите АВР ассемблера есть описание как:
mov r30,r0 ; Set offset to jump table
ijmp ; Jump to routine pointed to by r31:r30
К переборам с практикой привыкаеш ;)
Цитата:
Сообщение от VKlimov
По поводу битов обсуждено только что под PonyProg все их надо сбросить, а мне интересно что они все обозначают, к тому же теоретически под AVRprog программировать лучше, т.к. там стоит свой кварцованый контроллер, потому вдвойне интересно что выставлять под ним.
Я бы удивился, если бы кто-то развязывал германиевыми,т.к. они частично пропускают в обратном направлении.
Входными считаются линии, которые на сетке клавишь подключены к вертикалям или горизонталям?
Биты есть в полном даташите АТмега8 - doc2486.pdf. Может ты скачал урезаную версию.
Входы это горизонтали. Считываютса за 4 раза по 7 бит.
-
Ответ: USB контроллер джоистика
Перебор похож на код, который получается из case без оптимизации. Проблема в том, что с перебором выполнение последнего в списке варианта занимает под 40 тактов, а без перебора для любого варианта 4 такта. Я еще не уверен насколько это критично в данном случае, т.к. я только засел за понимание кода MJoy и ассемблера Atmel (если конкретный код выполняется всего один раз, так без разницы). Да, там по описанию использования косвенных переходов по Z (r30) вроде было указано, что используется еще r31 (старшая часть адреса) - его надо задействовать или нет? И как все-таки взять offset метки, команды offset у данного ассемблера то нет? Если в temp1 смещение (при условии что все команды по 1 слову и адресация пословная), то как вот это делается? Или r0 содержит текущий адрес?
Скачивал раньше я действительно урезанный.
Спасибо за ответы. И большое спасибо за проделанную работу по созданию.
-
Ответ: USB контроллер джоистика
попробовал скомпилировать версию 1.2 - компилятор в AVR Studio 4.10 дает кучу предупреждений о том, что call не поддерживаются данным чипом и Immediate byte operand out of range. Это нормально?
-
Ответ: USB контроллер джоистика
Вот так вроде работает:
StandardRequest:
cpi temp1, 13 ;compare with max avaliable
brsh req_exit ;if equal\above skip
ldi ZL, low(req_offsets)
ldi ZH, high(req_offsets)
add ZL, temp1
ijmp
req_offsets:
rjmp ComposeGET_STATUS ;GET_STATUS=0
rjmp ComposeCLEAR_FEATURE ;CLEAR_FEATURE=1
rjmp req_exit ;=2
rjmp ComposeSET_FEATURE ;SET_FEATURE=3
rjmp req_exit ;=4
rjmp ComposeSET_ADDRESS ;SET_ADDRESS=5
rjmp ComposeGET_DESCRIPTOR ;GET_DESCRIPTOR=6
rjmp ComposeSET_DESCRIPTOR ;SET_DESCRIPTOR=7
rjmp ComposeGET_CONFIGURATION ;GET_CONFIGURATION=8
rjmp ComposeSET_CONFIGURATION ;SET_CONFIGURATION=9
rjmp ComposeGET_INTERFACE ;GET_INTERFACE=10
rjmp ComposeSET_INTERFACE ;SET_INTERFACE=11
rjmp ComposeSYNCH_FRAME ;SYNCH_FRAME=12
;if not found known request
req_exit:
rjmp ZeroDATA1Answer ;if that was something unknown, then prepare zero answer
вроде r30 и r31 здесь сохранять\восстанавливать не надо, т.к. дальше они вроде местами переписываются, но не уверен.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от VKlimov
попробовал скомпилировать версию 1.2 - компилятор в AVR Studio 4.10 дает кучу предупреждений о том, что call не поддерживаются данным чипом и Immediate byte operand out of range. Это нормально?
Это нормально. У меня АВР студио тоже так делает.
-
Ответ: USB контроллер джоистика
Хелп...
терзания мои продолжаются уже третий день
Собрал версию 1.2
Проверил
Еще раз проверил монтаж
ПониПрог AVR видит,прошивает, пишет все правильно
считываю прошивку, проверяю....
действительно все правильно
Подключаю ЮСБ - "неизвестное устройсто"
думаю ладно... резисторы 68 ом, стабилитроны, как советовали...
тоже самое.... вобщем вариантов у меня не осталось...
Уважаемые авторы, мое психическое здоровье на исходе...
Подскажите хоть в какую сторону копать
Заранее всем спасибо
-
Ответ: USB контроллер джоистика
целую неделю я гадал и мучился - почему не работает...
Оказалось конденсаторы бывают разные...
Я поставил "ленточные".
Знакомый электронщик только что сказал, что надо керамические поставить.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от whiter
Хелп...
терзания мои продолжаются уже третий день
Собрал версию 1.2
Проверил
Еще раз проверил монтаж
ПониПрог AVR видит,прошивает, пишет все правильно
считываю прошивку, проверяю....
действительно все правильно
Подключаю ЮСБ - "неизвестное устройсто"
думаю ладно... резисторы 68 ом, стабилитроны, как советовали...
тоже самое.... вобщем вариантов у меня не осталось...
Уважаемые авторы, мое психическое здоровье на исходе...
Подскажите хоть в какую сторону копать
Заранее всем спасибо
Биты конфигурации запрограмировал? Еще попробуй включить в другой УСБ порт, например вместо заднего в передний (если есть) или на другом компютере...
-
Ответ: USB контроллер джоистика
Конденсаторы естественно керамические 0,1 мкф
2 MeanDog
Биты програмировал согласно скриншотов...
Пробовал разные УСБ порты, единственное предположение это припаяный шлейф к програматору (естественно он отключен от ЛПТ),
но может какие наводки возникают ????
Еще такой вопрос, может версия ПониПрога? У Вас какая?
Еще такой симптом:
напряжение на контакте D- УСБ 3,6 в а D+ 0,1 странно....
может сам АВР подпаленый или банально бракованый....
-
Ответ: USB контроллер джоистика
Заработало!!!!!
Проблема была в бракованом УСБ гнезде, припаял его на свою голову, хотел подключать стандартным шнуром....
После замены на шнур от старенкого СВЕНа688 все заработало с пол пинка, еще раз спасибо разработчику!!!
Остался маленький вопросик:
Подключил к одной из осей резюк 47к - наблюдаю странную картину
при вращении резистора реагируют ВСЕ оси, причем как-то странно
рывками. Т.е. верчу резистор и изменяются показатели всех осей
Версия прошивки 1.2.
Отсюда вопрос:
для автоматической калибровки нужно подключать резисторы ко всем
осям? или у меня опять гюки? или наводки?
Может у кого такое было?
Еще раз спасибо!
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от whiter
Заработало!!!!!
Проблема была в бракованом УСБ гнезде, припаял его на свою голову, хотел подключать стандартным шнуром....
После замены на шнур от старенкого СВЕНа688 все заработало с пол пинка, еще раз спасибо разработчику!!!
Остался маленький вопросик:
Подключил к одной из осей резюк 47к - наблюдаю странную картину
при вращении резистора реагируют ВСЕ оси, причем как-то странно
рывками. Т.е. верчу резистор и изменяются показатели всех осей
Версия прошивки 1.2.
Отсюда вопрос:
для автоматической калибровки нужно подключать резисторы ко всем
осям? или у меня опять гюки? или наводки?
Может у кого такое было?
Еще раз спасибо!
Это типа наводки, так как АЦП только один а неподключенные входы через мултиплексор неизменяют оставшее напряжение после последнего преобразования на сэмплинг конденсаторе. Когда подключиш все потенциометры все станет нормально. Если какую-то ось неиспользуеш, соедини ее с землей.
-
Ответ: USB контроллер джоистика
2 MeanDog
Спасибо за отличные ответы-консультации.
С меня бутылка. Хотя как передать??????
Могу по WM. Если принимаешь такие благодарности
дай знать в приват.
Еще раз большое спасибо!!!
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от whiter
2 MeanDog
Спасибо за отличные ответы-консультации.
С меня бутылка. Хотя как передать??????
Могу по WM. Если принимаешь такие благодарности
дай знать в приват.
Еще раз большое спасибо!!!
Пойду напюсь от счастья :)
-
Ответ: USB контроллер джоистика
Вопросик такого плана:
Вот возился с прошивками и нечаянно нажал комманду "Аппаратный сброс"
Расскажите плиз, was ist das, а то прошиваться перестало - мож из-за этого. Pоny prog говорит ,что девайс не найден или неисправен
-
Ответ: USB контроллер джоистика
Попробуй программировать с подачей тактового сигнала на 9-ю ногу от внешнего генератора (можно по элементарной схеме на ЛА3 или подобном собрать, если на ЛА3, то соединить 1-2,3-4-5, резисторы ~400-500 Ом между 1,3,6, кварц ~12 между 1 и 6, с 6-й через резистор ~500 Ом на 9-ю ATmega). Надеюсь посреди ночи ничего не перепутал.
-
Ответ: USB контроллер джоистика
Цитата:
Сообщение от paraManiac
Вопросик такого плана:
Вот возился с прошивками и нечаянно нажал комманду "Аппаратный сброс"
Расскажите плиз, was ist das, а то прошиваться перестало - мож из-за этого. Pоny prog говорит ,что девайс не найден или неисправен
Если "Аппаратный сброс" означает RSTDISBL, то он выключает функцию Ресет и это делает програмирование через серийный интерфейс невозможным. Чтобы восстановить этот бит потребуетса другой программатор, работающий в parallel режиме. Если такого неимеетса, то надо покупать другую микросхему.
-
Ответ: USB контроллер джоистика
-
Ответ: USB контроллер джоистика
Огромная просьба помочь!!! Не знаю что и думать! Спаял всю ботву, прошил, проверил прошивку – всё верно! Не работает, “неизвестное USB-устройство”! Перепробовал все порты, опять лажа(((, хотел завязать тему, но протестировав на другом компе – всё заработало !!!? Может в мамаше дело (ASUS P4P800), все входа USB 2.0? Поможите пажалст, а то силов боле нету!((( :confused: Может быть пришло время машину поменять? %)
-
Ответ: USB контроллер джоистика
Я в P4P800 её втыкал, вариант был от LaziCamel'a -работало, за что собственно ему спасибо.
Но вот решил сделать крайний вариант от MeanDog'a - и тут как на зло заело с перепрошивкой - в итоге я похоже микросхему загадил.
Воткнул девайс
reload...
OVERCLOCING FAILED-!???? - вот фигня, далее комп не грузится, а мать орёт
CPU TEST FAILED.
Посидел я, значит, почесал репу, и поехал в сервис,{мозги компьютерные и мать в том числе я купил ровно за неделю до этого} мол так-то и
поменяли, на что я собственно и не надеялся
Теперь собираюсь поднять старй кмп и закончить на нём эксперементы
-
Ответ: USB контроллер джоистика
Вообщем мораль такова, что по идее на P4P800 должно работать