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

Zablokowana ATMega8? Difference at 00000. Nie mogę wgrać nowego programu.

ogor_89 15 Mar 2009 22:43 3216 15
REKLAMA
  • #1 6287361
    ogor_89
    Poziom 13  
    Wiem, że temat przewija się ciągle przez forum, ale nie mogę znaleźć rozwiązania mojego problemu. Mam to już z drugim prockiem w ostatnim czasie. Programuję, działa, potem programuję jeszcze kilka razy i w końcu rzy którymś zaprogramowaniu wyskakuje mi komunikat "Difference at 00000" i proc pada. Teraz jeden ruszył, ale ze starym programem, nie mogę nic wgrać, bo wyskakuje mi taki błąd. Wymazywałem pamięć i niby jest wymazana, ale kiedy wyłączę i włączę zasilanie to uC znowu śmiga na starym programie. Co z tym zrobić?
  • REKLAMA
  • #2 6287595
    kaktus_c++
    Poziom 18  
    miałem kiedyś podobny problem, , tak właśnie było że procek działał ale nie można go było zaprogramować, ale można było ustawiać/czytać fusy.
    Tamta Mega8 była programowana kilkaset razy i stwierdziłem że może się zużyła, do tej pory nie wiem co z nią naprawdę było, problem zaczął się po podłączeniu kwarca.

    -czy bawiłeś się fusebitami?
    -jak masz ustawione fusebity, możesz je czytać/ustawiać?
    -czy używałeś kwarca?
  • #3 6287693
    ogor_89
    Poziom 13  
    Fusebity zmieniłem na samym początku na kwarc 16MHz. Wszystko działało. Teraz mogę tylko odczytywać - zmieniać już nie.
  • REKLAMA
  • Pomocny post
    #4 6287738
    Galareta
    Poziom 23  
    Spróbuj go z zewnętrznego generatora taktować bo może takty gubić mi tak robiła atmega (nie wiem co jej zrobiłem wcześniej coś się samo źle zaprogramowało albo się pomyliłem jak ustawiałem) jako generator użyłem 2 atmegi:]
  • #5 6288092
    ogor_89
    Poziom 13  
    Ok, tylko 2 z 2 atmeg mi w ten sposób działają. Z kwarcem i bez kwarca to samo. Pytanko: jak podłączyć i jak zaprogramować uC żeby działał jako generator? Wystarczy na dowolne wyjście co jakiś czas podawać 1, albo 0? Czy chodzi o coś takiego:
    uatawić port na wyjściowy
    ustawić stan wysoki
    co np. 5 ms zmieniać stan na wyjściu
    Czy jakoś inaczej?
  • #6 6288095
    _Robak_
    Poziom 33  
    Musisz dawac naprzemiennie 1 i 0. Tak jak piszesz, ustaw na wyjscie potem w petli ustaw na 1 potem kilka nopow, 0 i kilka nopow :)
  • REKLAMA
  • #7 6288120
    ogor_89
    Poziom 13  
    Kilka czego?
    Jeszcze jedno pytanko. Jak połączyć obie kostki? bezpośrednio? Do XTAL0 czy XTAL1?
  • Pomocny post
    #8 6288133
    _Robak_
    Poziom 33  
    W datasheecie masz wszystko ;) nop - pusta instrukcja w avr gcc wyglada tak "asm("nop");". Ale swoja droga , jak zmieniles na zewnerzny kwarc, to nie wroze przyszlosci tej operacji ;)
  • #9 6288465
    ogor_89
    Poziom 13  
    Mam prośbę. Możesz mi podać stronę pdf-a? Szukałem i nie znalazłem.
  • #10 6288494
    _Robak_
    Poziom 33  
    elenota.pl
    datasheetcatalog.com
  • REKLAMA
  • #11 6288878
    ogor_89
    Poziom 13  
    Mam plik. chodziło mi o sumer strony.
  • #12 6288902
    _Robak_
    Poziom 33  
    Jak chcesz pdolaczyc dwie atmegi to strona (grr) 30 ;) Przeciez przejrzenie spisu tresci nie jest ciezkie ;)
  • #13 6297289
    ogor_89
    Poziom 13  
    Dzięki wszystkim za pomoc.
  • #14 6297711
    wader_669
    Poziom 28  
    Przede wszystkim naucz sie szukac. Dla poczatkujacego latwiej jest zrobic taki generator http://henwyd.republika.pl/ProgramyBMP/Generator4MHz.PNG niz starac sie odblokowac procesor drugim procesorem.
    Ja go uzywam dziala super objetnie jak przestawisz zegarek to zawsze pomaga.
    Co do twojeg problemu ja kiedys mialem podobny problem, ze wykrywal procesory i jak je programowalem to sie wszystkie blokowaly nie wiedzialem dlaczego. Pozniej sie zorientowalem, ze kabelki sie zwarly i po tym bylo wszystko ok.
  • #16 7204670
    PF
    Poziom 19  
    Witam !!!

    Chcąć ustawić fuse bity ATMEGI 8 na fabryczne [ ponoć takie są jak poniżej ] :

    CKSEL3 = 0
    CKSEL2 = 0
    CKSEL1 = 0
    CKSEL0 = 1
    SUT1 = 1
    SUT0 = 0

    Wpisałem w programie
    LF - 0xE1
    HF - 0xD9
    podobno, że to jest to samo.

    Po tej operacji ATMEGA zamarła.
    Szukając po necie znalazłem schemat generatora, który uruchamia uP po żle ustawionych fuse bitach.

    Zablokowana ATMega8? Difference at 00000. Nie mogę wgrać nowego programu.

    Cyt : ...Jedno z wyjść generatora dołączamy do Portb.6 Atmega8, masy złączone razem, włączamy zasilanie i poprawiamy źle nastawiony Fusebit. Przywróciliśmy procesor do życia...

    Mam pytanie dla osób bardziej zaawansowanych w uP.
    Czy przedstawiony poniżej układ rzeczywiście pomoże przestawić źle ustawione fuse bity.

    Zablokowana ATMega8? Difference at 00000. Nie mogę wgrać nowego programu.

    Zablokowana ATMega8? Difference at 00000. Nie mogę wgrać nowego programu.

    Dzięki za podpowiedzi.
REKLAMA