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

Błąd w aplikacji AVRDUDE - programator USBTINY MKII

manekinen 05 Mar 2013 14:43 1107 0
REKLAMA
  • #1 12020243
    manekinen
    Poziom 29  
    Zdaje się że znalazłem niewielki błąd w AVRDUDE (testowane wersje 5.10 i 5.11) i chciałbym potwierdzić w jakich jeszcze przypadkach / kombinacjach występuje.

    Mianowicie, komenda "chip erase" w zestawie komend protokołu ISP jest określona wyraźnie jako "AC 80 00 00".

    W przypadku współpracy AVRDUDE i klonu programatora AVRISP MKII (USBTINY MKII), do układu docelowego fizycznie wysyłane jest "AC 8X XX XX", lub nawet "AC 9X XX XX" gdzie X to nielosowe, powtarzalne bajty ale bez żadnego powodu różne od tych właściwych. Zmieniają się gdy zmodyfikujemy linię poleceń dla avrdude (np dodamy lub usuniemy parametry), ale zawsze są powtarzalne i nie losowe.

    Może trochę chaotycznie to opisuję, przykład:
    Atmel Studio ze sterownikiem Jungo wysyła prawidłowe AC 80 00 00
    Avrdude 5.10 wysyła AC 88 FA B2
    Avrdude 5.11 wysyła AC 94 5C C2
    Dowolny Avrdude z USBASP wysyła prawidłowe AC 80 00 00

    Na szczęście układ docelowy rozpoznaje takie coś i wykonuje wewnętrzną instrukcję chip erase więc problem jakoś do tej pory nie został zauważony, ale buduję urządzenie które symuluje układ docelowy i zaczęło mnie zastanawiać czemu w taki sposób wykracza to po za specyfikację.

    Jeśli ktoś ma wyżej wymieniony programator, klon lub oryginał, (lub inny programator) analizator stanów logicznych i chwilę wolnego czasu, niech rzuci okiem co programator śle po SPI.

    Dane wysyłane w programator można również podejrzeć, dopisując do linii poleceń -vvvv, wtedy otrzymamy dokładniejszy log, i pod koniec szukamy wartości 0x80, za nią powinny być 00 00 00.

    Powyższy log dowiedzie że te śmieci wysyłane są przez avrdude, i nie są wymysłem programatora. Kontaktowałem się z autorem programatora w tej sprawie, i programator obsługuje to tak: https://github.com/abcminiuser/lufa/blob/mast...ojects/AVRISP-MKII/Lib/ISP/ISPProtocol.c#L377

    Pozdrawiam
  • REKLAMA
REKLAMA