Přípravu máme za sebou, komponenty na stole, složíme vše dohromady a zkontrolujeme, zda vše funguje správně.
Doporučuji mít celou dobu po ruce datasheet k mikrokontroléru a schéma zapojení USB.
PullUp obvod
Nejdříve si připravíme napájecí a pullup obvod k USB. Zkontrolujeme výstupní napětí (3.6V). Připojíme k USB a zkontrolujeme, zda dmesg hlásí new low speed device.
Při stavbě jsem přehlédl schéma a zaměnil D+ a D-. Dmesg hlásil full speed a mikrokontrolér nekomunikoval. Pullup obvod můžete připravit na nepájivém poli, měl jsem ze zásob jednu univerzální desku a protože chci mít prototyp stabilnější, rozhodl jsem se napájet součástky rovnou na ní.
Proč název pullup? Vystihuje to způsob, jakým USB Host pozná, jaké kategorie je zařízení připojené k USB. Low speed má mezi D- a VCC rezistor 1.5kOhm, full speed má pak 1.5kOhm mezi D+ a VCC. VCC je napájení z USB. Pullup rezistor zvýší napětí na dané datové lince D- resp. D+ na 3.3V.
Nejspíš se tato část obvodu označuje jinak, to však přenechám odborníkům.
Zkouška funkčnosti
Máme tedy funkční obvod, můžeme zapojit mikrokontrolér.
Doporučuji pro první test naprogramovat mikrokontrolér příkladem z V-USB (hid-mouse), ověříme tak jeho funkčnost i spolehlivost celého zapojení. Při programování mikrokontroléru, nezapomeňte nastavit pojistky (fuses). Z výroby je nastavení pro interni oscilátor a spojení s usb by pak nefungovalo.
Osobně mám fuses nastaveny na 0xCFFF (low 0xFF, high 0xCF)
Po vložení do nepájivého pole anebo vývojové desky a připojení k pullup obvodu, zkontrolujeme, zda jsou zem, napětí a datový vstup a výstup správně připojené. Zkontrolujte také krystal a jeho keramické kondenzátory.
Pokud je vše v pořádku, připojíme kabel k USB. New low speed device by měl být detekován a pokud máte naprogramován hid-mouse, myš se vám na obrazovce bude pohybovat v kruhu.
Možné problémy
Co dělat, pokud z jakéhokoliv důvodu V-USB příklad nefunguje? Problém může být v obvodu, proto jej znovu zkontrolujte a proměřte. Další možností je mikrokontrolér, může být špatně zapojen. Zkontrolujte, zda není obráceně, tedy pin 1 diagonálně.
Pokud je vše v pořádku, naprogramujeme mikrokontrolér finálním programem.