logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP

Hetzer 09 Kwi 2013 20:33 33333 6
REKLAMA
  • Nagrywanie Bootload’era na układzie ATMega328, przy użyciu Arduino Uno, jako programatora ISP.
    Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP

    Autor konstruował pewne zdalnie sterowane urządzenie, które wymagało, aby Arduino działało przez 24 godziny na dobę, siedem dni w tygodniu, jednak nie chciał w nim montować całego, wartego $32 Arduino Uno. Autor zdecydował się więc na kupno kilku elementów i wykonanie własnego Arduino. Najważniejszym punktem zakupów było kupno mikrokontrolera. Możemy wybierać spośród następujących mikroprocesorów:
    -ATMega328P-PU z Optiboot ~ $5.50 (Sparkfun) / $5.19 (Digikey)
    -ATMega328P-PU ~ $3.16 (Digikey)
    -ATMega328-PU ~ $2.88 (Digikey)

    Autor oczywiście wybrał... Najtańszą możliwość. Popełniając tym samym ogromny błąd. Po krótkich poszukiwaniach informacji na ten temat, okazało się, że najprostszym rozwiązaniem byłby wybór opcji pierwszej, czyli ATMega328P-PU z Optiboot. Podłącza się go tak samo, jak normalne Arduino, w przeciwieństwie do pozostałych układów, które wymagają dodatkowych modyfikacji.

    Pozostałe dwa układy nie zawierają czegoś nazywanego Bootloader’em. Bootloader jest czymś w rodzaju małego programu, który musi zostać na samym początku załadowany do układu. Umożliwia on wgrywanie kodu bez użycia żadnych dodatkowych urządzeń.

    A więc, jeśli chcesz zrobić cokolwiek z użyciem tych układów, najpierw musisz nagrać na nich bootloader. Jak pewnie zauważyłeś, różnica pomiędzy układem drugim i trzecim polega tylko na literce P, występującej po numerze 328. Literka P symbolizuje pico, które zaś jest skrótem od picopower, technologii firmy ATMEL, która pozwala na działanie mikrokontrolera przy zużyciu znacznie mniejszej mocy.

    A więc, jeśli szukasz mikrokontrolera do swojego Arduino, UNO, lepiej upewnij się, czy posiada on funkcję picopower. Autor kupił 3 „zwykłe” układy, więc kiedy się o tym dowiedział, był załamany. W takim wypadku, konieczne jest dokonanie kilku modyfikacji w plikach Arduino, aby układ zadziałał.

    W tym artykule właśnie te modyfikacje zostaną przedstawione.

    Krok 1: Materiały
    Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP
    Będziemy potrzebowali następujących materiałów:
    -1x przewód USB, do połączenia PC-Arduino
    -1x Arduino UNO (autor użył R1)
    -1x Atmega328-PU
    -1x mała płytka uniwersalna
    -1x kwarc 16MHz (ten użyty w projekcie ma pojemność 20pF)
    -2x ceramiczne kondensatory o pojemności 22pF
    -Oraz kilka zworek…

    Krok 2: Ustawianie Arduino, jako programator ISP
    Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP
    Na początku należy wydać odpowiednie polecenie naszej platformie Arduino UNO (w przypadku autora Arduino UNO R1), tak aby wiedziała ona, że cokolwiek będziemy do niej przesyłać, nie ma trafić do niej, a do naszego mikrokontrolera znajdującego się w niej. Innymi słowy, wykorzystujemy nasze Arduino, jako prosty transmiter. Do tego celu autor użył oprogramowania Arduino (IDE) w wersji 1.0.1.

    1. Podłącz twój moduł Arduino UNO poprzez interfejs USB do twojego komputera. (BEZ ŻADNYCH DODATKOWYCH POŁĄCZEŃ, TYLKO USB)
    2. Otwórz IDE
    3. Open > Example > ArduinoISP
    4. Wybierz Arduino UNO z menu Tools > Board
    5. Wybierz swój port szeregowy z menu Tools > Board (w przypadku autora był to port COM3, jednak można wybrać inny)
    6. Zastosuj ustawienia
    To może zająć chwilę. Kiedy proces dobiegnie końca, zamknij IDE I odłącz twoje Arduino. Teraz należy przygotować oprogramowanie i sprzęt.

    Krok 3: Przygotowywanie sprzętu
    Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP
    Jest to bardzo łatwy krok, po prostu postępuj zgodnie ze schematem, aby podłączyć każdy element.

    Krok 4: Przygotowywanie oprogramowania
    Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP
    Niestety, ta część już nie jest prosta, postępuj tylko zgodnie ze wskazówkami instrukcji. Autor zamieścił 2 pliki, które należy podmienić. Postępuj według następującej instrukcji, aby tego dokonać.

    0. Upewnij się, że IDE jest zamknięty
    1. Skopiuj cały folder zawierający twój IDE.
    2. Otwórz nowy folder.
    3. Przejdź do …\ arduino-1.0.1 BURN BOOTS\hardware\tools\avr\etc.
    4. Znajdź plik, nazywający się avrdude.conf .
    5. Zamień go na zamieszczony przez autora plik. (Najpierw trzeba go rozpakować.)
    6. Przejdź do ...\arduino-1.0.1 BURN BOOTS\hardware\arduino .
    7. Znajdź plik o nazwie boards.txt .
    8. Zamień go na zamieszczony przez autora plik.
    9. Zamknij wszystko.

    boards.txt
    avrdude.conf

    Świetnie! Teraz pozostalo tylko wgrać nasz bootloader i nasz tani mikrokontroler powinien działać tako samo, jak każdy inny, normalny układ.

    Krok 5: Ostatni krok! Nagrywanie Bootloader’a
    Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP Wgrywanie bootloader'a do ATMega328, przy użyciu Arduino Uno, w roli ISP
    Kiedy będziemy mieli wszystko podłączone, należy otworzyć IDE z folderu, który utworzyliśmy (kopia).
    1. Wybierz Arduino328 z menu Tools > Board
    2. Wybierz twój port szeregowy (ten sam, co poprzednio)
    3. Uruchom Arduino w trybie programatora ISP w menu Tools > Programmer
    4. Wybierz Burn Bootloader
    Proces ten zajmie około 30 sekund. Gotowe! Teraz możesz używać taniej wersji układu (bez funkcji pico) ATMega328, tak samo jak zwykłego Arduino.

    Źródło:Link

    Fajne? Ranking DIY
    O autorze
    Hetzer
    Poziom 13  
    Offline 
    Hetzer napisał 123 postów o ocenie 56. Mieszka w mieście Września. Jest z nami od 2012 roku.
  • REKLAMA
  • #2 12179737
    mkpl
    Poziom 37  
    Czy tylko ja mam wrażenie, że wgranie czegokolwiek bez użycia Arduino IDE jest trudniejsze niż postawienie totalnie uceglonego telefonu?. Opis niczym instrukcja do odpalenia promu kosmicznego.

    Myślę, że dla większości ludzi a przynajmniej forumowych kolegów bardziej przydatny był by opis aby wgrać xxx.hex i jakie fusebity ustawić.
  • REKLAMA
  • #3 12180789
    Dawidoos
    Poziom 14  
    Ja kiedyś próbowałem wgrać bootloader do Attiny13 tym sposobem. Udało się, ale kombinowania było całkiem sporo.
    Teraz używam USBasp z Arduino - wszystko śmiga bez żadnych problemów.
  • REKLAMA
  • #4 12180800
    seba_x
    Poziom 31  
    Ręce opadają, żeby zaprogramować procka tyle kombinacji i jeszcze to :

    Hetzer napisał:

    Autor oczywiście wybrał... Najtańszą możliwość. Popełniając tym samym ogromny błąd.....
    Pozostałe dwa układy nie zawierają czegoś nazywanego Bootloader’em.


    A kupiłby sobie najtańszy programator np USBasp i programował co tylko się da bez cudowania z ardrutino :lol:
  • #5 12183732
    dj_volt
    Poziom 26  
    seba_x napisał:

    A kupiłby sobie najtańszy programator np USBasp i programował co tylko się da bez cudowania z ardrutino :lol:


    Poprawka: 4 oporniki, wtyk DB25, kawałek kabla. Warunek - port LPT w kompie. Taniej już się nie da zaprogramować uP!
    :)
    Link
  • REKLAMA
  • #6 12184806
    seba_x
    Poziom 31  
    dj_volt napisał:
    seba_x napisał:

    A kupiłby sobie najtańszy programator np USBasp i programował co tylko się da bez cudowania z ardrutino :lol:


    Poprawka: 4 oporniki, wtyk DB25, kawałek kabla. Warunek - port LPT w kompie. Taniej już się nie da zaprogramować uP!
    :)
    Link


    Wiem że tak można . Zważywszy na to że autor szukał uP z wgranym botloaderem to raczej miałby problem z polutowaniem kabelków do portu równoległego i co najważniejsze miałby problem z odnalezieniem go w komputerze.
  • #7 12185825
    markoz7874
    Poziom 31  
    seba_x napisał:

    Wiem że tak można . Zważywszy na to że autor szukał uP z wgranym botloaderem to raczej miałby problem z polutowaniem kabelków do portu równoległego i co najważniejsze miałby problem z odnalezieniem go w komputerze.

    bez jaj :)
    Cyt. "Autor zdecydował się więc na kupno kilku elementów i wykonanie własnego Arduino"
    A to oznacza ze cos tam na temat elektroniki już wie.
    Faktem jest, że jak ktoś coś pozna, to później wykorzystuje to do wszystkiego, zapominając o prostszych rozwiązaniach.
    Ale zamiast tylko krytykować, może ktoś z Was napisałby podobną instrukcję krok po kroku jak wgrać bootloadera do ATMega328 przy użyciu USBasp lub LPT i kilku oporników?
    Dla niezasobnych, zaczynających przygodę z Arduino, taka wiedza na pewno by się przydała.
REKLAMA