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

Atmega32 - LockBity ustawiają się na 0, brak możliwości zapisu/odczytu

kalasz47 28 Sty 2007 11:50 1347 13
REKLAMA
  • #1 3497401
    kalasz47
    Poziom 14  
    Posty: 162
    Pomógł: 4
    Ocena: 8
    Witam

    Mam sobie Atmege32 w której same z siebie, bez niczyjej pomocy ustawiły się wszystkie LockBity. Problem jest o tyle dziwny, że nic przy niej nie kombinowałem zabezpieczeniami. Używam PonyProg2000, uC jest nowy, zaprogramowany może z 20 razy. Wszystkie LockBity ustawiają się na "0" w taki sposób że nie ma możliwości zapisu ani odczytu z uC. Próbowałem je usunąć poleceniem "Erase" w PonyProg ale nic to nie daje. Niby są kasowane ale gdy chcę coś zapisać/odczytać to znowu się ustawiają. Siedzę już nad tym drugi dzień i nie wiem co się dzieje. Może ktoś się z tym spotkał? Błagam pomóżcie.

    P.S. Programator to standardowy STK200 w 100% sprawny, uC jest w SMD więc wylutowanie wolałbym traktować jako konieczność.

    Pozdro
  • REKLAMA
  • #3 3497516
    kalasz47
    Poziom 14  
    Posty: 162
    Pomógł: 4
    Ocena: 8
    Używam PonyProg2000 2.06f beta. Czy to ma znaczenie ?
  • REKLAMA
  • #4 3497641
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    no tak bo myślałem, że może ciut starszej wersji w których bywało więcej czasem problemów - hmmm więc trudno mi przynajmniej coś dalej podpowiedzieć ale może jeszcze znajdzie się ktoś z dobrym na to pomysłem
  • REKLAMA
  • #5 3498021
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Ja ci się ustawił SPIEN to żaden reset procka ci go nie usunie, tylko programator wysoko napięciowy.
  • #6 3498620
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    SPIEN to nie lockbit, zachowanie bardzo dziwne, spróbuj z innym software, chociażby z bascomem.
  • #7 3500823
    kalasz47
    Poziom 14  
    Posty: 162
    Pomógł: 4
    Ocena: 8
    Ze SPIEN jest wszytko dobrze. Ustawia mi tylko LOCKBITY! Jaki soft polecacie do STK200. Testowałem z PonyProg - objaw jak wyżej. W ISS PROG wywali mi "DEVICE LOCKED" i nic się nie da zrobić. Natomiast w avrdude, polecenie -e wykrywa ze lockbity są zmienione i niby je zeruje, ale w rzeczywistości nic to nie zmienia. Sprawdze może z Bascomem.

    Pozdro
  • #8 3501025
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Na jakim zegarze jest "pędzony" ten ATmega32 - czy może na wewnętrznym, a zewnętrzny oscylator tylko jest przylutowany, a w programie sterującym programowaniem jest ustawiona częstotliwość rezonansowa tego drugiego ? Ponadto spotkałem się z takim ustawieniami konfiguracji zegara (CKSELX), w których jakiekolwiek próby odczytu konfiguracji były nieprawdziwe i dawały zero - na własnej konstrukcji programatorze równoległym.
    Długość przewodów do programatora ?
    Osobiście polecam ISPprog Adama Dybkowskiego. Zadziała na pewno, tylko trzeba się do niego przyzwyczaić...
  • REKLAMA
  • #9 3501358
    kalasz47
    Poziom 14  
    Posty: 162
    Pomógł: 4
    Ocena: 8
    Oscylator zewnętrzny, 16MHz. Programator typu STK200, kabel ok 40cm. Fuse bity ustawione następująco:
    Załączniki:
    • Atmega32 - LockBity ustawiają się na 0, brak możliwości zapisu/odczytu fb.jpg (28.21 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 3501415
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 573
    Jaką ma kolega pewność że programuje i kasuje procesor. Moim zdaniem bardzo prawdopodobne jest, że ze procersor nie programuje sie, i nadal jest w nim stary program. Ewentualnie jeśli kolega używa skrótu ctrl-P może w opcjach jest zaznaczone programowanie zabezpieczeń(command/program option /write security & config bits).
  • #11 3501471
    kalasz47
    Poziom 14  
    Posty: 162
    Pomógł: 4
    Ocena: 8
    Wszytko idzie normalnie tzn. najpierw jest zapis a potem weryfikacja. Potem wyskakuje "Write Failed". Jak robie sam odczyt to kilkaset pierwszych bajtów jest dobrych, zgodnych z programem a reszta to kolejne liczby: 0x30,0x31,0x32 .... itd. Nie używam Ctrl+P, tylko "Write/Read Program". Zresztą to i tak nie ma znaczenia bo zawsze jest tak samo.

    ISSProg w ogóle nie rusza, wyrzuca DEVICE LOCKED, a po komendzie ERASE jest "UKNOWN DEVICE".

    Podro
  • #12 3502630
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    A jak wygląda zasilanie tego procka ? Może tu coś siedzi. Bo jak nie, to trafił Ci się chyba jakiś specjalny egzemplarz procka.
  • Pomocny post
    #13 3503118
    szymtro
    Poziom 30  
    Posty: 1421
    Pomógł: 101
    Ocena: 59
    najbardziej podoba mi się to:
    Cytat:
    kilkaset pierwszych bajtów jest dobrych... a reszta to kolejne liczby: 0x30,0x31,0x32

    To znaczy że ewidentnie rozjeżdża ci się transmisja pomiędzy programatorem a uC.
    Gdyby się okazało że jednak te pierwsze bity są pierwszą częścią 0x30, 0x31 to jednak masz zablokowany uC przed odczytem.

    Stawiam jednak na zbyt niepewne połączenie programatora z uC.

    Masz zewnętrzny kwarc. Wymień go na 4MHz i zobacz jeszcze raz.
  • #14 3503724
    kalasz47
    Poziom 14  
    Posty: 162
    Pomógł: 4
    Ocena: 8
    Problem rozwiązany :)

    Okazało się, że winowajcą był przetwornik A/D podłączony równolegle do szyny SPI. Wymieniłem go i wszystko działa jak należy. Dzięki wszystkim za pomoc, zwłaszcza szymtro! Naprowadziłeś mnie tym rozjeżdżaniem transmisji, a już miałem chwytać za lutownice ;)

    PS Pracuje na zew. kwarcu, f=16MHzm jakie polecacie optymalne ustawienia Fus bitów? Chodzi mi zwłaszcza o CKSELx.

    Pozdro

Podsumowanie tematu

✨ Problem dotyczył mikrokontrolera Atmega32, w którym samoczynnie ustawiły się wszystkie LockBity na wartość 0, uniemożliwiając zapis i odczyt pamięci. Używano programatora STK200 oraz oprogramowania PonyProg2000 2.06f beta, ISS PROG i avrdude, jednak próby kasowania i programowania kończyły się niepowodzeniem lub komunikatami o zablokowanym urządzeniu. Podejrzewano problem z bitem SPIEN, ale ten był poprawnie ustawiony. Dyskutowano o możliwych przyczynach, takich jak błędne ustawienia fuse bitów, nieprawidłowa częstotliwość zegara, długość przewodów programatora oraz zakłócenia transmisji SPI. Ostatecznie przyczyną problemu okazał się przetwornik A/D podłączony równolegle do magistrali SPI, który zakłócał komunikację. Po wymianie przetwornika programowanie i odczyt mikrokontrolera przebiegały prawidłowo. Zalecano także rozważenie zmiany kwarcu na 4 MHz w celu stabilizacji transmisji oraz użycie oprogramowania ISPprog. Autor pytał również o optymalne ustawienia fuse bitów CKSELx dla zewnętrznego kwarcu 16 MHz.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA