Skocz do zawartości
Matthias

Bootloader programmer for UNO R3 - rev.2

Pomocna odpowiedź

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Dnia 29.04.2020 o 21:56, Matthias napisał:

Programujemy tylko procesory taktowane częstotliwością 16MHz. Należą do nich ATMEGA8/328 ale są też spotykane wersje tych procesorów taktowane częstotliwością 8Mhz. Dlatego jeżeli wiemy jakich procesorów będziemy używać do tworzenia naszych projektów, bądź jakimi obecnie dysponujemy, musimy zamontować kwarc Q1 o odpowiedniej częstotliwości dla danego procesora. Co ciekawe Atmega168 jest taktowana częstotliwością 20 Mhz. Zatem mamy do wyboru kwarc o częstotliwości 8/16/20 MHz

Taktowanie rdzenia nie ma nic wspólnego z wersją procesora a ustawieniami fuse bitów i doborem odpowiedniego rezonatora. Możliwym jest również używanie wewnętrznego oscylatora od 1 - 8MHz dzięki czemu nie ma konieczności dołączania zewnętrznego kwarcu i wreszcie co najciekawsze, możliwe jest używanie wewnętrznego oscylatora do taktowania rdzenia i zewnętrznego kwarcu zegarkowego do taktowania timera w trybie asynchronicznym dzięki czemu zyskujemy funkcjonalność RTC w projekcie bez konieczności dołączania zewnętrznych modułów.

Nie jest też konieczne wgrywanie bootloadera do procka aby móc go programować również pod arduino potrzebny będzie wtedy jednak zewnętrzny programator np. USBASP lub druga atmega zaprogramowana jako programator, dzięki czemu można bezpośrednio zmieniać ustawienia fusebitów i wgrywać pliki hex bez bootloadera za pomocą np. programu SINAProg.

Informacyjnie dodam jeszcze, że sam bootloader niekoniecznie musi być bootloaderem w dosłownym sensie, może to być każdy inny program pełniący inne funkcje np. diagnostyka dołączonego do atmegi sprzętu lub automatyczne nadpisywanie bibliotek dołączonych do głównego programu innymi prekompilowanymi bibliotekami umieszczonymi w zewnętrznej pamięci flash przy czym trzeba pamiętać, że ilość cykli przeprogramowywania jest ograniczona ale to już wyższa szkoła jazdy na avr. Samą ilość pamięci przeznaczonej na bootloader w procku również określa się za pomocą fusebitów.

Udostępnij ten post


Link to post
Share on other sites

Witam.

Dziękuje Ci atMegaTona za konstruktywną opinię. Bo powiem, że dzięki niej dowiedziałem się paru rzeczy, ale zaraz się odniosę do wszystkiego.

Nie będę ukrywać, że pierwsza część wypowiedzi, odnośnie taktowania procesora jest mi dobrze znana. Jednakże początkującym osobom w programowaniu z użyciem arduino, chciałem to przedstawić w dość uproszczony sposób, bo fakt faktem Atmegi, które można zamówić lub kupić, są już ustawione do pracy z konkretną częstotliwością taktowania, mowa tu o zewnętrznym kwarcu, który łatwiej jest podłączyć do procesora, szczególnie początkującym osobom. Ja co prawda jeszcze się nie bawiłem w zmianę parametrów taktowania procesora, ale wiem że jest to możliwe u użyciem fuse bitów. Nie bawiłem się dlatego, że generalnie wszystkie programy piszę w środowisku Arduino IDE i generalnie używam do moich projektów ATmeg 8A/328, które są taktowane zewnętrznym generatorem z częstotliwością 16 MHz, które bardzo łatwo jest kupić. W sumie to za jakiś czas mam ochotę się pobawić w uruchomienie procesora na jego własnym wewnętrznym generatorze a nawet zmianę częstotliwości tego generatora.

Odnośnie boot loaderów przyznaje się bez bicia, że tego co napisałeś nie wiedziałem i kto wie może kiedyś mi się ta wiedza przydać. Tak jak pisałem, projekt który opisałem jak i sposób jego użycia odnosi się do jedynego w tym momencie narzędzia jakim jest Arduino bez dodatkowych programatorów oraz innych metod. Dlatego tak a nie inaczej opisałem sposób wgrywania bootloaderów oraz taktowanie procesorów, podpierając się tym co znalazłem w internecie, co potem sam zweryfikowałem. Wszystko co opisałem wcześniej zostało przeze mnie sprawdzone.

Ale nie zmienia to faktu, że dowiedziałem się kilku ciekawych rzeczy odnośnie boot loaderów i dziękuje za komentarz.
Pozdrawiam.  

Udostępnij ten post


Link to post
Share on other sites

Fajny pomysł. Myślę że warto byłoby pomyśleć też o wersji z podstawką do programowania Atmeg w wersji TQFP44 bo w punkcie drugim wspomniałeś o produkcji.

Myslę że zdecydowana większość urządzeń idzie w stronę miniaturyzacji a co za tym idzie stosowania obudowy SMD. Podejrzewam tylko że cena takowej podstawki nie będzie atrakcyjna - sam zastanawiałem sie nad skonstruowaniem jej ze złącza PCI wydobytego ze starej płyty głównej, nie wiem czy ktoś już ma jakieś doświadczenia z takim rozwiązaniem...

Pozdrawiam!

 

Udostępnij ten post


Link to post
Share on other sites

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!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...