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

[atmega 8] [stk500]Błąd weryfikacji po zaprogramowaniu uC

pandor83 24 Wrz 2008 22:02 3150 12
REKLAMA
  • #1 5568577
    pandor83
    Poziom 10  
    Witam

    mam problem z zaprogramowaniem mojej atmegi
    Zakupilem programator STK500, probny program mam w AVR studio.
    Przy probie programowania zczytuje mi sygnature ukladu, lecz przy probie zapisania programu do uC wyskakuje mi komunikat: "WARNING, FLASH byte adress 0x000 is 0x00 (should be 0x12).. FAILED"
    przed tym komunikatem pisze ze programowanie i zczytanie Flashu - ok.

    Czy ktos moglby cos podpowiedziec ?
    Nie zmienialem nic we fusach

    Usunąłem "problem" z tytułu(regulamin p11.1) - tytuł poprawiłem
    [zumek]
  • REKLAMA
  • #2 5568990
    marenc
    Poziom 24  
    Zmniejsz prędkość ISP. Powinna ona wynosić co najmniej F_CPU/4, ale przy kwarcu 16MHz oraz prędkości 4MHz dla ISP też miałem problemy. W brew pozorom transmisja nie trwa długo przy małych programach, żeby używać maksymalnej prędkości ;)
  • REKLAMA
  • #3 5570310
    pandor83
    Poziom 10  
    zmniejszylem predkosc na 600 Hz przy zewnetrznym gen wewnetrznym 1MHz, oraz przy kwarcu zegarkowym - z zadnym skutkiem.

    W AVRdude wyskakuje podobny komunikat: "verification error, first mismatch at byte 0x0000 0x12 != 0x00 "
    przy weryfikacji odczytu

    Sproboje jeszcze to samo z generatorem 6MHz na XTAL1.
  • #4 5570316
    marenc
    Poziom 24  
    Wymień kostkę(mikrokontroler) i zobacz czy będzie to samo...
  • REKLAMA
  • #5 5570569
    pandor83
    Poziom 10  
    Pierwsze co zrobilem to zmienilem uC na drugi egzemplarz, obydwa reaguja tak samo.
  • #6 5570577
    marenc
    Poziom 24  
    Programujesz przez COM czy przejściówkę USB<->RS232?
  • #7 5570696
    pandor83
    Poziom 10  
    Mam STK500 podlaczany pod USB, ustawiony na porcie COM3
  • #8 5570717
    marenc
    Poziom 24  
    STK500 to zestaw startowy, a Ty masz programator zgodny z STK500 ... nie myl pojęć. Zwróć się z tym problemem do projektanta tego programatora.
  • #9 5887656
    pkoper
    Poziom 11  
    pandor83 napisał:

    "WARNING, FLASH byte adress 0x000 is 0x00 (should be 0x12).. FAILED"


    Ten temat wyskakuje jako jeden z pierwszych w googlach, a szkoda, użytkownicy potrafili tylko posłać na drzewo.

    Warto zauważyć, że zaprogramowanie się udało, a nie wyszła weryfikacja zaraz po programowaniu. Zapewne późniejsze weryfikacje zawartości FLASH jak i odczytywanie powodzą się.

    Problemem jest błędne okablowanie.
  • REKLAMA
  • #10 5887699
    marenc
    Poziom 24  
    pkoper napisał:

    Problemem jest błędne okablowanie.


    Bzdura, skoro programowanie się udaje, to dane wysyłane do mikrokontrolera wracają niezmienione(programowanie polega na wysyłaniu danych i oczekiwaniu na ich zwrot przez wewnętrzny układ programowania ISP mikrokontrolera). Po erase pamięć zostaje zapisana wartościami 0xff, a jeżeli podczas weryfikacji wyskakuje, że w danym miejscu pamięci jest 0x00, to może to być spowodowane błędnie działającym układem ISP w mikrokontrolerze lub uszkodzoną pamięcią. Często wystarczy zmniejszyć prędkość SPI podczas programowania, co skutecznie poprawia pewność poprawnej weryfikacji.
  • #11 5888063
    pkoper
    Poziom 11  
    Byłbym ostrożny z pisaniem "Bzdura".

    Sposób wygenerowania powyższego błędu, a zarazem uzasadnienie do najprostszej możliwej przyczyny (specjalnie sprawdziłem):

    AVR Studio + programator + uC z podłączonym AVCC do +5V i wiszącym w powietrzu VCC.

    Objaw to właśnie komunikat z pierwszego komentarza podczas programowania z weryfikacją. Reszta tak jak napisałem w poprzednim komentarzu.

    IMHO najprawdopodobniej w takiej sytuacji układ zasilany jest przez wewnętrzne diody zabezpieczające wejście AVCC przed podaniem napięcia wyższego niż VCC. Efekt nie występuje w przypadku odłączenia zasilania od AVCC.
  • #12 5888982
    marenc
    Poziom 24  
    Analizowanie układu błędnie lub wcale nie podłączonego poprawnie do napięcia jest bezsensu. Równie dobrze mógłbyś napisać, że telewizor nie podłączony do zasilania - nie wyświetla obrazu, ponieważ "jest błędne okablowanie". Systemy elektryczne i elektroniczne analizuje się biorąc pod uwagę stan przygotowania urządzenia do pracy.

    Jedno co mogę poddać wątpliwości, to najprawdopodobniej przyczyną takiego problemu może być zwarcie linii MOSI z MISO programatora. Komunikaty wysyłane przez programator wracają, a podczas weryfikacji do odbierania danych wysyłane jest słowo 0x00. Dlatego dla każdej komórki pamięci odpowiedź będzie wynosiła właśnie 0x00. Błąd się pojawia już w pierwszej komórce pamięci, więc jest to bardzo prawdopodobne.
  • #13 5889352
    BoskiDialer
    Poziom 34  
    marenc: niestety w przypadku zwarcia mosi z miso programator powinien wykryć brak układu (polecenie wejścia w tryb programowania jest zwracane z 8bitowym opóźnieniem), dodatkowo nie był by możliwy odczyt sygnatury. Co do prędkości zegara programatora: prędkość powinna być co najwyżej F_CPU/4.

    Osobiście po przebiegu tematu jestem za wersją pkoper'a. Zasilanie układu przez diody zabezpieczające jest możliwe, sam kiedyś robiłem projekt, w którym pomiędzy vcc a gnd dałem spory kondensator, ładowanie go było przez diodę zabezpieczającą. Programowanie układu bez zasilania też mi się raz zdażyło - na usbasp zapomniałem założyć zworkę, układ o dziwo wchodził w programowanie (kondensatory 100nF trochę go podtrzymały), dalej już było tylko źle..
REKLAMA