Visher Napisano Styczeń 20, 2017 Udostępnij Napisano Styczeń 20, 2017 Cześć, mam pytanie dotyczące domyślnego bootloadera USB w ATmedze16U2. Jak stanowi nota katalogowa, każdy 8-bitowy mega AVR powinien mieć fabrycznie wgrany bootloader umożliwiający wgranie właściwego programu do pamięci poprzez port USB bez potrzeby wyprowadzania dodatkowych złącz: The 8bits mega AVR with USB interface devices are factory configured with aUSB bootloader located in the on-chip flash boot section of the controller. Wykonałem więc obwód drukowany do którego przylutowałem owy mikroprocesor i niestety, nie jest on w jakikolwiek sposób rozpoznawany przez system. Wygląda to tak jak na obrazku: Dodatkowo, oczywiście, wyprowadziłem sobie pin HWB oraz RESET na zewnątrz, mikroprocesor podłączam z RESET=0 i HWB=0, a następnie zwalniam kolejno RESET i HWB aby wejść w tryb bootloadera (wg noty pin HWB sprawdzany jest przy zboczu narastającym RESETa). Aby upewnić się że wszystko inne jest w porządku (obwód drukowany, przewód USB, podłączenie mikroprocesora, użyłem portu ISP aby odczytać sygnaturę i przeflashować pamięć - wgrałem kontroler od Arduino, co by cokolwiek było 🙂 Po podłączeniu przez USB ładnie wykryło mikrokontroler jako port szeregowy, a więc zakładam że mój obwód jest OK. Starałem się tutaj, jest kondensator 4.7 uF, w miarę krótkie ścieżki D+ i D-, rezystory 22R +- 5%. Ogółem to mam dwie takie ATmegi, jedna czysta druga z programem. Wiecie co tu może być nie tak, dlaczego mi to nie działa? Pracował ktoś z Was z tą ATmegą i udało mu się skomunikować z czystym mikrokontrolerem? Zastanawiającą dla mnie rzeczą było to, że po odczytaniu pamięci mikrokontrolera przez ISP, były tam same jedynki. Tak jakby nic tam nie było... Ale nie jest to dla mnie 100% pewne że nic tam nie ma, bo mogły być ustawione lock bity. Chociaż nie wiem czy one blokują odczytanie, czy co dokładnie, ale może tak być. Dlatego pewności nie mam 🙂 Wrzucę jeszcze schemacik: Dajcie proszę znać jak coś wiecie 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 20, 2017 Udostępnij Styczeń 20, 2017 Jaki kwarc? Czy oporniki szeregowe na liniach USB rzeczywiście dałeś 1M? Powinny być ok. 22Ω. Na gniazdku zamieniłeś linie D+/D-, ale na procku na szczęście także. Trochę dziwne. Sprawdź to na PCB. Wpisując nowy bootloader z Arduino zniszczyłeś ten oryginalny pracujący na USB. One siedzą w tym samym miejscu. Reszta wygląda na jakieś problemy z driverami. Do komunikacji z firmowymi bootloaderami Atmela zwykle używałem firmowego programu FLIP: http://www.atmel.com/tools/FLIP.aspx Zawsze działało i przez UART i przez USB. http://www.atmel.com/Images/doc7618.pdf Cytuj Link do komentarza Share on other sites More sharing options...
Visher Styczeń 20, 2017 Autor tematu Udostępnij Styczeń 20, 2017 Cześć, dzięki za odpowiedź. Przez pomyłkę wrzuciłem niepoprawiony schemat, faktycznie wcześniej dokonałem podwójnej zamiany - wyszło tak jak być powinno 🙂 Oporniki są tam 22 Ohm +- 5%, na szybko kopiowałem z innego miejsca w schemacie i jakoś zapomniałem zmienić. Na PCB się zgadza wszystko, tak jak pisałem - podpiąłem ATmegę16U2 z wgranym bootloaderem zamiast takiej czystej (szybkie przelutowanie), nic innego się nie zmieniło. Mam wciąż drugą, czystą, do testów. Kwarce testowałem 8/16 MHz. Te standardowe, popularne, o kształcie wpustu pryzmatycznego. HCcośtam. Teoretycznie DFU powinien działać na obu kwarcach, tak mówi nota z której korzystałem i link do której wkleiłeś. Znalazłem parę godzin temu link do takiego artykułu: http://fab.cba.mit.edu/classes/863.14/people/andrew_mao/week11/ Autor opisał w nim swoją przygodę z ATmegą16U2, bardzo fajnie mu to zadziałało, za pierwszym razem. Nawet bez instalacji sterowników wykryło nazwę urządzenia. Nie wiem co innego może powodować u mnie problem.. Może coś związanego z prowadzeniem ścieżek, wysokimi częstotliwościami, obciążaniem kwarcu (nie miałem kondensatorów SMD, dałem ceramiki 22pF wlutowane do padów SMD).. Design płytki to coś czego jestem bardzo niezadowolony, aczkolwiek natrafiłem na bardzo irytującą przypadłość - kolejność pinów w ATmedze i w gnieździe mini usb jest dokładnie odwrotna, przez co wszystkie ścieżki się krzyżują (jak mnie to denerwuje! inaczej poprowadził bym cztery kluczowe ścieżki w linii prostej). Wygląda to jak jak na obrazku: Zastanawiam się więc, czy istnieje gniazdo które ma te piny lepiej rozłożone 🙂 Znalazłem gniazdo USB typu B (które chciałbym w finalnym projekcie zastosować, zamiast mini usb) które ma D+ i D- na górze, da się GND poprowadzić na około D+ i D-, ale (U)VCC nadal będzie z przelotką. Masakra jakaś jeżeli o to chodzi.. Ale to i tak lepiej niż niektóre projekty które widziałem! Np. PCB sterownika reprapowej drukarki 3D, RUMBA 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
deshipu Styczeń 20, 2017 Udostępnij Styczeń 20, 2017 Design płytki to coś czego jestem bardzo niezadowolony, aczkolwiek natrafiłem na bardzo irytującą przypadłość - kolejność pinów w ATmedze i w gnieździe mini usb jest dokładnie odwrotna, przez co wszystkie ścieżki się krzyżują (jak mnie to denerwuje! inaczej poprowadził bym cztery kluczowe ścieżki w linii prostej). Wygląda to jak jak na obrazku: Może założyli, że gniazdko dasz po drugiej stronie płytki niż mikrokontroler? Szczególnie, jak robili pod gniazdko z przewlekanymi nóżkami... Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Visher Luty 18, 2017 Autor tematu Udostępnij Luty 18, 2017 Z powrotem mam trochę wolnego czasu, dlatego wróciłem do tego projektu. Zacząłem od wykonania PCB od nowa - skróciłem ścieżki, poprzenosiłem elementy THT na drugą stronę i jeszcze parę innych zmian. I zadziałało - choć cały czas wydaje mi się, że pierwsze PCB było wystarczająco dobre. Może po prostu nie powtórzyłem jakiegoś błędu którego nie wyłapałem w pierwszym podejściu. Dzięki za odpowiedzi 🙂 Teraz pora implementować komunikację po USB, na pierwszy ogień idzie LUFA! Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!