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

Jak wgrać bootloader do ATmega32 za pomocą USBasp i skąd go pobrać?

Uzi103 24 Cze 2014 22:08 1869 12
REKLAMA
  • #1 13738879
    Uzi103
    Poziom 11  
    Posty: 80
    Ocena: 7
    Mam zestaw uruchomieniowy z atmega32. Chcąc zaprogramować procesor programatorem USBasp w BASCOM-AVR (prawdopodobnie) zamiast Autoprogram wcisnąłem Send to Chip. Teraz żaden program nie działa mimo, że atmega jest prawidłowo identyfikowana i programuje się poprawnie. Z tego co poradził kolega atom1477, to usunął się bootloader, który był w procesorze. Jak najłatwiej wgrać ponownie (i skąd wziąć) bootladera przy użyciu USBasp? Wcześniej wgrywałem programy aplikacją MegaLoad (FT232RL ), teraz gdy wciskam przycisk reset to nic sie nie dzieje.

    Potrzebuje pilnie to zrobić, dlatego bardzo proszę o pomoc.
    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 13739144
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2206
    Potrzebjesz plik hex (lub elf) zawierający bootloader. Wgrywasz go normalnie, tak jak każdy inny program. Po tej operacji warto sprawdzić fuse- i lockbity, a szczególnie fusebit określający położenie wektora RESET. HEX z bootloadere powinieneś uzyskać z firmy produkującej zestaw uruchomieniowy.
  • REKLAMA
  • REKLAMA
  • #4 13739478
    Uzi103
    Poziom 11  
    Posty: 80
    Ocena: 7
    Niestety nie mam możliwości podłączenia FT232RL że złączem ISP ponieważ nie mam wyprowadzen od FT232. Muszę przez USBasp. Tylko w bascomie nie mam chyba jak tego zrobić bo tam muszę wybrać bodajże plik bas do zaprogramowania. A gdy zaladowalem plik hex z bootloaderem do MegaLoadb i wcisnalem przycisk reset to program także nie zareagował tak jak miało to miejsce przy wgrywaniu innych programów
  • Pomocny post
    #5 13739532
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2206
    Skoro masz USBasp to użyj do wgrania kodu np AVRDude. Niewykluczone, że oprócz wgrania kodu bootloadera będziesz musiał zmienić położenie wektora RESET, tak, żeby ten bootloader się uruchamiał.
  • Pomocny post
    #6 13739634
    zulusj23
    Poziom 25  
    Posty: 714
    Pomógł: 90
    Ocena: 103
    No to najpierw musisz zmusić jakikolwiek program do komunikacji z procesorem za pośrednictwem twojego programatora. Może majstrowałeś z Fuse-bitami i tu jest problem.
  • REKLAMA
  • #7 13740014
    Uzi103
    Poziom 11  
    Posty: 80
    Ocena: 7
    No to w avrdude nie mam możliwości wyboru programatora usb asp, mogę wybrać jako port usb Ale wtedy jest błąd połączenia, gdy połączony jest przez FT232 kablem usb to się komunikuje Ale i tak jakiś błąd wyskakuje
  • Pomocny post
    #8 13741199
    el2010tmp
    Poziom 25  
    Posty: 713
    Pomógł: 97
    Ocena: 44
    Może nie masz sterowników do USBASP.
    Ewentualnie masz jakiś archaiczny avrdude.

    avrdude -p m32 -c usbasp -U flash:w:"program.hex":a
  • #9 13741564
    Uzi103
    Poziom 11  
    Posty: 80
    Ocena: 7
    Pobrałem nową wersję AVRDude, połączyło się bez problemów ;)
    Procesor Atmega32a. Fusebity, które mi odczytało:
    hFuse C0
    IFuse FE


    czy mam zmienić te fusebity przed wgraniem bootloadera na:
    hFuse D0
    IFuse EF

    ? Wcześniej nie robiłem absolutnie niczego z fusebit.
    edit
    Działa z fusebitami które były ustawione wcześniej
    Dziękuję wszystkim bardzo za pomoc ;)

    Jeszcze tylko małe pytanko bo nie chce niczego popierdzielić :( jakie mają być wartości hFuse i IFuse jeśli procesor ma pracować z zewnętrznym kwarcem 16MHz? Bo nie chce znów bootladera stracić
  • Pomocny post
    #10 13742928
    zulusj23
    Poziom 25  
    Posty: 714
    Pomógł: 90
    Ocena: 103
    Myślę, że oba ustawienia będą dobre pod kwarc 16MHz, Twoje może nawet lepsze z uwagi na CKOPT. Sprawdź różnice tu:

    http://www.engbedded.com/fusecalc

    Nigdy nie sprawdzałem co i jak z Lockbit-ami ale to chyba tylko zabezpieczenia przed zczytaniem zawartości procesora w profesjonalnych zastosowaniach gdy chodzi o ochronę kodu.
  • #11 13744449
    Uzi103
    Poziom 11  
    Posty: 80
    Ocena: 7
    Oto screeen z mkAVR z konfiguracją dla mojej atmegi:
    Jak wgrać bootloader do ATmega32 za pomocą USBasp i skąd go pobrać?
    Tylko wydaje mi się jakby procesor nie pracował z częstotliwością 16mhz. Bo gdy napisałem program, który powinien gasić i zapalać diode co 1s (waitms 1000, toggle PortD.0) to dioda zapalała się i gasiła co 2 sekundy zamiast pożądanej jednej. Dlaczego?
  • #12 13744486
    el2010tmp
    Poziom 25  
    Posty: 713
    Pomógł: 97
    Ocena: 44
    Uzi103 napisał:
    Tylko wydaje mi się jakby procesor nie pracował z częstotliwością 16mhz. Bo gdy napisałem program, który powinien gasić i zapalać diode co 1s (waitms 1000, toggle PortD.0) to dioda zapalała się i gasiła co 2 sekundy zamiast pożądanej jednej. Dlaczego?

    Z tego co piszesz wynika że program ma zmieniać stan diody na przeciwny [co sekunde]. Czyli działa poprawnie.

    Pokaż ten program.
  • #13 13745491
    Uzi103
    Poziom 11  
    Posty: 80
    Ocena: 7
    wszystko jest ok, mój błąd

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik ma problem z wgraniem bootloadera do mikrokontrolera ATmega32 za pomocą programatora USBasp po przypadkowym usunięciu go w BASCOM-AVR. W odpowiedziach zasugerowano, aby pobrać plik HEX bootloadera od producenta zestawu uruchomieniowego oraz użyć AVRDude do wgrania bootloadera. Użytkownik musiał również sprawdzić fusebity, aby upewnić się, że bootloader uruchamia się poprawnie. Po zaktualizowaniu AVRDude, udało mu się połączyć z procesorem i wgrać bootloader, a także ustalić odpowiednie wartości fusebitów dla pracy z zewnętrznym kwarcem 16MHz.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA