W tym poście chciałbym opisać sposób przygotowania schematu do klawiatury mechanicznej USB 3x3.
Cały schemat prezentuje się następująco:
Poniżej krótko opiszę wszystkie elementy układu:
Głównym elementem układu jest mikrokontroler Atxmega128-A4U w obudowie TQFP44:
Mikrokontroler jest taktowany zewnętrznym kwarcem o częstotliwości 11MHz.
Programowanie układu odbywa się przez interfejs PDI (Program and Debug Interface). Do jego działania wymagane są dwie linie. Linia danych oraz linia zasilania:
Atxmega zasilana jest z 3,3V podawanego ze stabilizatora LM1117. On otrzymuje napięcie 5V podawane z gniazda USB.
Przyciski połączone są w klawiaturę 3x3, wykorzystującą łącznie 6 linii (3 linie kolumn i 3 linie wierszy). Dodatkowo wykorzystałem jedną linię generującą przerwanie. Dzięki temu klawiatura zostanie skanowana dopiero po otrzymaniu sygnału przerwania. Dodatkowym elementem są rezystory szeregowe, które w przypadku zwarcia ograniczą przepływ prądu jaki będzie przesyłany.
Dodatkowym elementem jest montaż 4 diod świecących oraz brzęczyka pozwalających na informowanie użytkownika o różnym stanie pracy układu czy kliknięciu przycisku:
W celu uzyskania dodatkowej komunikacji wyprowadziłem linie UART na osobne złącze 4 pinowe.
Mikrokontroler pozwala na obsługę USB w wersji 2.0 High Speed lub Low Speed. Do podłączenia komunikacji wymagane jest zastosowanie linii D- oraz D+. USB jest zlokalizowane na porcie D (linie D- oraz D+):