Свързване на джойстици от игрови конзоли към USB шина, Компютърна електроника, Схеми

Както знаете, спецификацията USB-2.0, одобрена през 2000 г., предвижда три режима на работа на шината: LS (Low Speed) - скорост до 1,5 Mbps, FS (Full Speed) - скорост до 12 Mbps, HS (High Speed) - скорост до 480 Mbps. Най-простият от тези режими е LS. Сравнително ниската му скорост е достатъчна, за да осигури запитване на бутона на джойстика с период от 16,20 ms, както при истинска игрова конзола. USB адаптер, работещ в режим LS, може да бъде изграден върху сравнително евтин MCU с общо предназначение и свързан към компютър с доста дълъг кабел, дори без усукани двойки проводници. Тъй като режимът LS беше предвиден и от спецификацията USB-1.0, адаптерът ще може да работи не само с модерни, но и с остарели компютри.

Според спецификацията се разграничават два класа USB устройства: CDC (Communication Device Class) - комуникационни устройства, HID (Human Interface Devices) - интерфейсни устройства човек-компютър. Първият от тях обикновено включва допълнителни комуникационни портове, създадени в компютър с помощта на RS-232-USB конвертори. За да работите с тях, като правило, трябва да напишете свои собствени компютърни програми. Устройствата от клас 2 използват предварително изградени Windows HID драйвери, което значително опростява задачата на програмист, който се сблъсква с USB за първи път. Всъщност няма нужда да се изготвя програма, достатъчно е да се разбере протоколът за обмен на информация. Разработените адаптери са базирани на MK ATmega8 [5]. Програмата му трябва да съдържа и USB драйвер. Понастоящем такива драйвери за фамилията MK AVR се разработват, като правило, въз основа на библиотеките на драйвери на словашкия радиолюбител Игор Чешко [6], написани на асемблер, или библиотеки, предлагани от Objective Development [7] (на език C с асемблервложки).

И двете библиотеки се разпространяват безплатно и дават приблизително еднакви резултати по отношение на количеството обектен код. Въпреки това, втората библиотека е за предпочитане за правилната обработка на заявките за прекъсване и производителността. Освен това изходните текстове на драйверите на Objective Development са много по-компактни и ясни, по-лесни за разбиране и коригиране. Поради тези причини те се използват в разработката, предлагана на вниманието на читателите. За джойстици от игрови конзоли Dendy, Sega и PSX бяха разработени отделни адаптери, базирани на същия микроконтролер, чиято диаграма е показана на фиг. 1. Кондензаторите C3 и C4 са елементи от типична схема за свързване на кварцов резонатор ZQ1 към MK DD1. Към унифицирано USB-B гнездо (X1), подобно на инсталираните в принтери, скенери и други периферни устройства с USB интерфейс, свържете щекер тип B на стандартен USB кабел. Щепселът тип A на този кабел се включва в USB гнездо на вашия компютър.

джойстици

конзоли

Вилки ХЗ—Х6 на фиг. 2 - DB-9M или DB-15M, в зависимост от вида на гнездата, с които са оборудвани щепселните джойстици. Номерата на щифтовете на девет-щифтовите конектори са дадени в скоби. Вилици на фиг. 3 - DB-9M, а гнездата на фиг. 4 - специално от префикса PSX. На фиг. 4 има диод VD4, показан с пунктирана линия. Теоретично, за да се намали захранващото напрежение от 5 на 3,5 V, което е необходимо за джойстика от приемника PSX, трябва да има такъв диод. Въпреки това, на практика, с инсталирането му, възникват фалшиви положителни резултати, когато четири или повече бутона на джойстика се натискат едновременно. Вътрешните резистори са програмно свързани към входните линии на MK портовете, свързвайки ги към плюса на източника на захранване. Това намалява смущенията и елиминира фалшивите положителни резултати, когато щифтовете на конекторитекъм които не са свързани джойстици, "висят във въздуха".

джойстици

Разположението на адаптерните части, което е почти идентично на платките и на трите варианта, е показано на фиг. 8. Изключение прави диодът VD3, той се инсталира само на платката PSX. На него иначе са разположени контактните площадки за конекторите X3 и X4. При липса на микроконтролера ATmega8-16PI, посочен на диаграмата с максимална тактова честота от 16 MHz, можете да опитате да го замените с ATmega8L-8PI. Формално максималната му тактова честота е 8 MHz, но практиката показва, че при захранващо напрежение 5 V ± 5% повечето от тези микросхеми работят стабилно при честота 12 MHz. Също така е възможно да се замени микроконтролер с "промишлен" допустим работен температурен диапазон (букви I или U в индекса) с "търговски" (с буквата C в индекса), който не е предназначен да работи при отрицателни температури. Всяка от трите опции на адаптера използва своя собствена програма MK и различна, в зависимост от максималния брой свързани джойстици. Например за джойстиците Dendy има четири версии на програмата, които поддържат един, два, три или четири джойстика. Факт е, че информацията се предава през USB интерфейса в режим LS в пакети (транзакции), които следват с период от 10 ms. Определянето на състоянието на бутоните и лостовете на джойстика от програмата MK отнема приблизително 9 ms. Следователно при една транзакция компютърът може да получи информация за състоянието само на един джойстик. В случай, че има няколко джойстика, адаптерът предава информация за тях един по един в кръг. При два джойстика периодът на актуализиране на информация за всеки от тях е 20 ms, а при четири джойстика достига 40 ms, което може значително да влоши ефективността на управлението на игрови обекти. Следователно, ако игри с голям бройучастници, струва си да изтеглите в MK версия на програмата, предназначена за минималния необходим брой джойстици. Ако е необходимо, MK може да бъде препрограмиран почти неограничен брой пъти. Състоянието на конфигурационните битове при програмирането трябва да съответства на фиг. 9.

Програми за микроконтролера: Изтегляне на файл