Skocz do zawartości

[C] [Atmega88]Bootloader USB


Wojtek

Pomocna odpowiedź

Witam.

Chce uruchomić USBAspLoader (ostatni z tego tematu:

https://www.forbot.pl/forum/topics20/programowanie-bootloadery-pierwsze-kroki-rs232-i-usb-vt3700.htm )na atemdze88 z kwarcem 12Mhz.

Wszystko podłączyłem zgodnie ze schematem z powyższego artykułu.

Najpierw napisałem programik migający diodą, przestawiłem fusebity tak jak znalazłem w makefilu:

"FUSEOPT_88 = -U hfuse:w:0xd6:m -U lfuse:w:0xdf:m -U efuse:w:0x00:m "

tutaj muszę zaznaczyć że AVR studio nie chiał mi ustawić efusów na na 0x00 (zawsze ustawiał te 5 najstarszych na 1 ale to nie ma chyba znaczenia bo w nocie piszą że są one niewykorzystane). Po tych operacjach dioda pięknie chodzi i miga z taką częstotliwością jak trzeba.

Ściągnąłem ze strony autora zipa. Znalazłem tam plik mega88_12Mhz.hex. Wgrałem tego hexa przez avrstudio. Dioda przestała migać. Zdziwiłem się bo wygląda na to że bootloader nadpisał główny program czy co(nie wiem pierwszy raz mam styczność z bootloaderami)?

Następnie wgrałem program migający diodą. Dioda znów zaczęła migać.

Wcześniej pobierałem zasilanie ze swojego programatora dlatego odłączyłem je i przełączyłem na zasilanie z gniazda USB na płytce prototypowej.

Następnie podłączyłem cały układ przez kabel USB do laptopa z win7. Spodziewałem się pojawienia się komunikatu o nowym sprzęcie ale nic się nie dzieje.(tylko dioda miga czyli mikrokontroler pracuje i nie wchodzi w sekcje bootloadera) Próbowałem podłączać zarówno z zwartą do masy nóżką D7 jak i nie.

Dioda zawsze miga jak podłącze do laptopa. Z tego wnioskuje że mikro kontroler w ogóle nie wchodzi w sekcje bootloadera.

BOOTRST jest zafajkowany czyli =0 czyli zaprogramowany czyli bootloader powinien być uruchamiany po resecie.

Szczególnie nurtuje mnie zagadnienie czy wewnątrz pliku hex jest podana informacja pod który adres pamięci ma się wgrać?

Co może być nie tak?

Link do komentarza
Share on other sites

Wgranie softu poprzedzone jest skasowaniem starego.

Wiec jak wgraleś przez isp bootloader a następnie ponownie soft to bootloader się skasował.

Wgraj bootloader, ustaw fusy odpowiednio do rozmiaru bootloadera, zabezpiecz go lockbitsami, i wtedy podłączaj do usb i próbuj wgrywać właściwy soft.

Link do komentarza
Share on other sites

Z tym co pisałeś już sobie poradziłem. Generalnie miałem błąd taki że zaznaczałem w Avr Studio opcje kasowania flasha przed wgraniem nowego. Odznaczyłem to i wszystko było ok. Mam wgrany i bootloader i program testowy.

Teraz mam inny, sprzętowy problem. Jak wiemy standard USB wymaga niskich napięć na linach danych; problem w tym że całe urządzenie wraz z logiką muszę zasilać z 5V (kwarc 12Mhz żeby robić softwarowy USB).

Wypadało by więc zrobić jakąś translacje poziomów tuż przed gniazdem USB. Jak do tego podejść? Wiem że są jakieś gotowe scalaki do tego. Macie jakieś rozwiązanie?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

Mało ludzi ma port LPT a ja chce dać możliwość aktualizacji softu na odległość. Stabilnym rozwiązaniem było by też użyć (właśnie tak jak mówisz) bootloader na uart a potem przejściówki na USB ale ten konwerter usb ma taki mały raster że nie ma mowy abym go polutował.

Znalazłem taki fajny translator zrobiony z jednego tranzystora i co więcej dwukierunkowy:

Tylko teraz kwestia skąd wsiąść 3,3 V. Czy trzeba od razu po to dawać kolejny stabilizator czy można np. użyć diody żeby zmniejszyć napięcie?

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.