Złożyłem sobie prostą płytkę prototypową z układem Atxmega128A3U oraz kilkoma peryferiami. Ponieważ w tej chwili nie mam dostępu do programatora PDI, postanowiłem przetestować jej działanie za pomocą bootloadera DFU.
Poniższa nota twierdzi, że w celu uruchomienia bootloadera w tym konkretnym układze trzeba zewrzeć z masą pin PE5 podczas resetu.
Nie zadziałało. Wciskam przycisk DFU, nie puszczając go wciskam reset, potem puszczam reset i przycisk DFU. Zgodnie z opisami znalezionymi w internecie w tym momencie komputer powinien wykryć nowe urządzenie USB. Pod Linuksem jednak niczego nie widać w lsusb, Windows także niczego nie wykrywa.
Pomyślałem, że może winny jest bufor - jeśli sprawdzanie nie odbywa się w stanie resetu, ale na początku pracy mikrokontrolera, to po puszczeniu przycisku reset na linii DFU znów pojawi się stan wysokiej impedancji. Wylutowałem więc bufor i wstawiłem zworę (na tym etapie rzecz jasna karty SD nie było w gnieździe).
To samo. Komputer ciągle go nie widzi. Sprawdziłem, czy gniazdko micro USB jest podłączone do właściwych linii i tu si≥ę wszystko zgadza. Jedyna różnica w stosunku do schematu aplikacyjnego to zastosowane diodowego zabezpieczenia USBLC6-2, które zwykle stosuję w swoich urządzeniach z USB.
Układ zasilania działa, zasilanie podłączone prawidłowo, pin RESET/PDI podciągnięty do plusa zasilania rezystorem 10k. Rzecz jasna MCU zasilany z 3,3V.
Ktoś ma jakiś pomysł o co może chodzić? Mógł mi się trafić układ bez fabrycznie wgranego bootloadera? To w ogóle możliwe, czy one mają go na stałe zapisywanego maską na etapie produkcji, jak w przypadku niektórych ARM-ów?