А рукожоп - потому, что, при нажатии более 2х клавиш одновременно, возможны ложные срабатывания. Плоховато продумал схему, да и кнопки а/б/турбо далековато разнес. Переделывать надо :)
Выбирал те, что будут удобны мне. А к компу этот подключается точно так-же, ибо протокол тот же что и у всех геймпадов. Или еще проще - кварц добавить и подключать к компу через USB, микруха вполне потянет софтовый.
для перепрошивки атмелевских девайсов используется ISP (да, вместо sheme- system) но подразумевает под собой прошивку по эспияю. пруф: http://www.atmel.com/images/doc0943.pdf
ICP is the acronym of In-Circuit Programming, which makes it possible that the user can update the MCU’s program memory under the hardware control without removing the mounted MCU chip from the actual end product. ... The difference between ICP (In-Circuit Programming) and ISP (In-System Programming) is that ICP is implemented by hardware control while ISP is implemented by software control of MCU itself. So, before updating the MCU chip, ISP needs a software code (the ISP-code) pre-programmed in MCU’s LDROM to function as software control while ICP doesn’t need any software code pre-programmed.
IAP - это то, что я писал ранее о ISP - прошивка кода в мк его собственными силами, с помощью бутлоадера например.
В моем случае корректно использовать термин ICP - Прошивка в схеме с использованием программатора, используя харварные возможности микроконтроллера, без необходимости в бутлоадере. Про SPI вы сами начали, хотя, в принципе, не важно какой именно интерфейс используетсяа программатором.
In-Circuit Programming - на уровне схемы, т.е. втыкаешь программер в устройство и шьешь (в моем случае прикладываешь подпружинненые контакты "pogo pins")
In-System Programming - когда ты можешь прошить устройство, не используя внешнего программатора, а используя его собственные возможности. Как в ардуино например.
Еще правильнее было бы назвать эту контакнтую площадку - ICPI (In-Circuit Programming Interface)
SPI же - название не интерфейса, как физического предмета, а именно того, каким образом по нему передаются данные.
Вот ты мне объясни: нахера МК? оригинальная версия содержала в себе одну мать его, капельку- сдвиговый регистр типа 74164/74165 с параллельным вводом да генератор для турби и ВСЁ!
Уже писал, что мог бы сделать на 74-й логике, если бы она у меня была. В радиусе 500км нет нормальных магазинов. Использовал что было. Ну и турбо кнопки на 1м чипе не сделать, все равно [хотя-бы пара нужна :) Ну а МК-шшек у меня куча, стоят меньше 50-ти рублей. так какая разница?
"который будет подтянут к питанию внутренним резистором микрухи" вот здесь у тебя и главная ошибка. Там номинал очень большой и его не хватает чтобы ложные срабатывания предотвратить. Там он около сотни кОм.
Кроме того, чтобы дребезга не было, конденсатор в параллель надо ставить кнопке на землю. Номиналом 0.01-0.1 мкФ.
Как кнопки обрабатывал? С какой-то периодичностью опрашивал? Прерываний то по ножкам у этой атмеги всего 2.
Там около 20 кОм, вполне. Прерывания задействованы на интерфейс к денди, там они нужнее. Опрашиваются стобцы кнопок в цикле, по-очереди. Все-таки глянь как работают кнопочные матрицы. Повторюсь, проблема не в срабатывании от наводок и подобного, схема работает именно так как и должна.
Почитай про key ghosting. У меня используется матрица из кнопок, и это было глупым решением на этапе проектирования. На данной плате решить можно только кучей диодов на "столбцах", лень таким геморроем заниматься. Да и внешнии резисторы не нужны, во второй версии каждая кнопка будет прижимать свой собственный пин к земле, который будет подтянут к питанию внутренним резистором микрухи.
Занятно, подписался. Я из внешних источников использовал только описание протокола http://www.mit.edu/~tarvizo/nes-controller.html Был бы осциллограф - обошелся бы и без этого. Сходство да - поразитительное, хотя не так уж и много способов это сделать про разному. У меня разве что турбо кнопки добавились, да кривой принцип опроса клавиш. Ну и 3D принтера нет :) Во второй версии различий еще меньше будет, ибо по-другому вроде как и не сделать.
Разъем стиплеровский, но сделать, в принципе, можно любой. Вот только стоимость его выходит больше чем обычного джойстика, да и пересылка неизвестно сколько выйдет.
Да, есть такой косяк. Расстояние делал как на обычном джойстике, но не учел размеры самих кнопок. Я еще до конца не определился - буду ли я использовать лицевую панель от обычного контроллера, или просто голую плату. Во втором случае кнопки а/б/турбо сделаю поближе.
У меня вот летом будет свободное время, поэтому планировал как раз занятся микроконтроллерами. Проблем нет, только напиши где лучше приобрести сами "микрухи" и программатор. Сам пока не гуглил
Покупал на Алиэкспрессе, atmega8a 20 штук за 20$, программатор usbisp за 2$. Советую сразу взять USB-Uart, тоже пару баксов стоит, у меня на чипе PL2032. Еще могу посоветовать платформу Tiva C от Texas Instruments - http://www.ti.com/tool/ek-tm4c123gxl Очень мощная штука, особенно за цену в 13$ (Примерно в 2 раза ниже себестоимости). Доставка бесплатно и федэксом - т.е. за 4-5 дней, даже до сибири. Можно еще 8-ми битную TI MSP430 Launchpad посмотреть, но сейчас цена на них уже не такая вкусная, раньше некоторое время была 4.3$.
Покупные нынче в маленьком городе найти сложно, а качество их оставляет желать лучшего: кнопки тугие, крестовина не удобная. Эти кнопки меня вполне удовлетворяют + прикольный, по моему мнению, щелчок при нажатии. Да и забавы ради тоже.
Да, не нашел где лежат 0805-е конденсаторы, долго тупил почему срабатывают не нужные клавишы, грешил на питание. Кнопки подключены матрицей 2х4 + 2, из-за этого при нажатии, например вверх+вправо+А срабатывает еще и кнопка "старт". Решить можно впаяв несколько диодов, или просто ,как я планирую сделать - не вы*бываться и пожертвовать отдельной ногой на каждую кнопку :)
Подумаю о том, что-бы сделать длиннопост, когда буду делать вторую версию.
Тоже прикольно, но у меня скорее проект обратный - не к компьтеру интерфейс, а к самой приставке :) В принципе, могу и USB-шный к ней прикрутить. Хотя, конечно, то, что я делаю - из танка по мухе. Вместо микрухи хватило бы пару копеечных чипов 74-й логики.