Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATmega2561 + USBasp - nie mogę wrzucić dużego flasha

29 Gru 2010 13:21 5363 12
  • Poziom 14  
    Witam!
    Zakładam temat, bo skończyły mi się już pomysły.
    Mam ATmege2561 i programator USBasp. Chciałem zaktualizować bootloader, co wiąże się z zapisaniem całej pamięci w uC. Podczas programowania AVR8 Burn-O-Mat v2 wyświetla mi taki błąd:
    Code:
    C:\Program Files\Avrdude 5.5\avrdude.exe -C C:\Program Files\Avrdude 5.5\avrdude.conf -p m2561 -P usb -c usbasp  -U flash:w:C:\Documents and Settings\aleexander\Pulpit\Project\System Panel\panel_bootloader.hex:a 
    

    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.02s

    avrdude.exe: Device signature = 0x1e9802
    avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed
                 To disable this feature, specify the -D option.
    avrdude.exe: erasing chip
    avrdude.exe: reading input file "C:\Documents and Settings\aleexander\Pulpit\Project\System Panel\panel_bootloader.hex"
    avrdude.exe: input file C:\Documents and Settings\aleexander\Pulpit\Project\System Panel\panel_bootloader.hex auto detected as Intel Hex
    avrdude.exe: writing flash (261156 bytes):

    Writing | ################################################## | 100% 49.98s

    avrdude.exe: 261156 bytes of flash written
    avrdude.exe: verifying flash memory against C:\Documents and Settings\aleexander\Pulpit\Project\System Panel\panel_bootloader.hex:
    avrdude.exe: load data flash data from input file C:\Documents and Settings\aleexander\Pulpit\Project\System Panel\panel_bootloader.hex:
    avrdude.exe: input file C:\Documents and Settings\aleexander\Pulpit\Project\System Panel\panel_bootloader.hex auto detected as Intel Hex
    avrdude.exe: input file C:\Documents and Settings\aleexander\Pulpit\Project\System Panel\panel_bootloader.hex contains 261156 bytes
    avrdude.exe: reading on-chip flash data:

    Reading | ################################################## | 100% 44.33s

    avrdude.exe: verifying ...
    avrdude.exe: verification error, first mismatch at byte 0x1f800
                 0xff != 0x8f
    avrdude.exe: verification error; content mismatch

    avrdude.exe done.  Thank you.


    Błąd pojawia się zawsze w tym samym miejscu. Teraz czego nie potrafię wyjaśnić: mniejsze pliki programują się bez problemu, tj. kiedy ładuje flasha docelowego to programowany jest poprawnie i uruchamia się w układzie docelowym. Fusy tak samo, poprawny odczyt i zapis. Flash który programuje się poprawnie ma około 65kB. Plik bootloadera ma 256kB, tyle co pamięć w uC.
    Czy jest jakieś znane ograniczenie wielkości pliku programowanego przy pomocy USBasp? Próbowałem również użyć khazamy, ale efekt ten sam (błąd zapisu).

    Jeśli ktoś ma jakieś pomysły to proszę pisać śmiało, ja nie bardzo wiem za co się chwycić.

    Pozdrawiam serdecznie,
    aleexander
  • Poziom 34  
    usbasp powinien normalnie programować do 128KB, 3 lata temu pisałem z tego względu łatkę. Spróbuj wgrać najnowszy firmware na usbasp oraz użyć najnowszego avrdude. Jeśli będzie problem z zapisem powyżej 128KB, to prosił bym Cię o kontakt najlepiej przez gadu co bym sprawdził avrdude oraz ewentualnie napisał łatkę żeby całość działała dla kodu 128KB++. Wtedy posłużysz mi jako osoba testująca łatkę.
  • Poziom 34  
    Z tego co ja wiem, sprawa wygląda tak: usbasp owszem nie ma już ograniczenia na rozmiar adresu przesyłanego po usb (moja łatka z przed iluś tam lat), ale jeszcze będę musiał dorobić wysyłanie po SPI komunikatu aktualizacji górnej części adresu. Roboty z tym dużo nie ma, ale potrzebuję mieć możliwość przetestowania kodu co będzie się wiązało z wgrywaniem nowego firmware na usbasp oraz sprawdzaniem czy układ docelowy poprawnie się programuje pewnymi spreparowanymi przeze mnie plikami. Do tego potrzebuję co najmniej jedną osobę na PW/gg
  • Poziom 14  
    Złośliwość rzeczy martwych... Chciałem zaktualizować bootloader bo miał ograniczenie wielkości kodu do 64kB i nie mogę, bo programator ma limit do 128kB.

    Spróbuję teraz wykombinować inny programator i odezwę się, jak już będę mógł coś podziałać z firmwarem USBaspa.
  • VIP Zasłużony dla elektroda
    Zawsze możesz zaktualizować bootloader innym bootloaderem, tyle, że wgranym na miejsce zwykłego programu. Kwestia tylko zdjęcia locków BLB(chip erase), jeśli są.
  • Pomocny post
    Poziom 34  
    Problem mam nadzieję rozwiązany, należało dodać do usbasp wysyłanie instrukcji "Load Extended Address". W załączniku poprawiony firmware oraz (dla osób nie posiadających) najnowszy avrdude.

    Firmware oraz avrdude zawierają moje łatki z tematu [Attiny4/5/9/10][usbasp][avrdude] Testy wsparcia dla TPI.

    Prośba do autora tematu: sprawdź czy działa ten firmware.
  • Poziom 14  
    Skleiłem na szybko programator z tej strony:
    AvrISP
    i udało mi się zmienić firmware w USBasp'ie.

    Wgrałem ten dostarczony przez kolegę BoskiDialer, zastosowałem nowy AvrDude i wszystko działa doskonale. :)

    Dziękuję za szybką pomoc, prace nad układem ruszają dalej.
  • VIP Zasłużony dla elektroda
    Czy coś już wiadomo na temat nowszej wersji avrdude i USBasp zawierającej powyższe poprawki ? (Upstream)
  • Poziom 34  
    łatki wysłałem do twórców avrdude, autor usbasp potwierdził przyjęcie tych łatek ale jakoś nic jeszcze nie zrobił, wyślę maila z zapytaniem jak postęp prac

    -- edit:

    Jako że łatki które wysyłałem to dwie części: łatka wspierająca 128KB++ oraz łatka dodająca wsparcie do TPI, Thomas oczekuje na attiny z TPI żeby przetestować drugą z moich łatek.
  • VIP Zasłużony dla elektroda
    Znaczy się potrzebuje aby mu wysłać np. ATtiny10 ?
  • Poziom 34  
    Znaczy się, że miał ciężko zdobyć attiny z tpi do testów, ale już jest zamówiony.
  • Poziom 14  
    Jako, że w temacie zostało wszystko wyjaśnione a dla osób borykających się z tym problemem istnieje rozwiązanie podane powyżej - temat zamykam.

    Pozdrawiam serdecznie,
    aleexander