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łędy przy programowaniu procesora ATMega8.

heyka 18 Gru 2005 21:50 1866 13
REKLAMA
  • #1 2096118
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    przy programowaniu ATMega 8 wyrzuca mi czasem komunikaty Diference at i potem symbol np 0300 albo 0DBE albo 013C i inne, do tej pory wszystko działało super co moze byc tego przyczyną, czy to mozliwe ze programator wysiadł, bo czasem zaprogramuje dobrze bez komunikatu, programuje z pod Bacsom przez STK 200
  • REKLAMA
  • #2 2096188
    PiotrLotnik
    Poziom 15  
    Posty: 207
    Pomógł: 2
    Ocena: 2
    Mam to samo bo niechlujnie zrobiłem sobie programator i czasem coś na stykach nie łączy.
    Jak poruszam programatoram to wtedy jest ok.

    Wniosek. Pożądnie wykonywać układziki :)
  • REKLAMA
  • #3 2096893
    aristot
    Poziom 14  
    Posty: 149
    Pomógł: 10
    Ocena: 4
    a napiszcie jakim programem programujecie bo ja eksperymentowalem z różnymi i w wiekszości mialem podobny problem że czasem bylo ok a czasem wyskakiwal ten bąd weryfikacji. W końcu trafilem na Bascom avr i pozbylem się problemów. Teraz każdy zapis kończy się sukcesem.
  • #4 2097034
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    heyka napisał:
    przy programowaniu ATMega 8 wyrzuca mi czasem komunikaty Diference at i potem symbol np 0300 albo 0DBE albo 013C i inne, do tej pory wszystko działało super co moze byc tego przyczyną, czy to mozliwe ze programator wysiadł, bo czasem zaprogramuje dobrze bez komunikatu, programuje z pod Bacsom przez STK 200


    to jest problem z weryfikacją.
    program sie nagrał ale z błędami i należy nagrać go jeszcze raz.
    problem ten pojawia sie gdy:
    - procesor używa wewnętrznego oscylatora na częstptliwości powyżej 2 Mhz.
    - procesor używa duzego kwarcu
    - dużo zakłuceń które moga powodować przekłamania
    - procek ma juz sporo programowań za sobą i żywotnoćs flasha sie kończy.
    - czasami pojawia sie przypadkiem ale to żadko

    ja używam AVRISP (programator atmela zbudowany na at90s2313 i problemy sie skończyły)
  • REKLAMA
  • #5 2097578
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    Uzywam Bascom AVR, programator kupiłem i było wszystko OK, błedy pojawiły sie nagle, zauważyłem jeszcze jedno, że wtedy kiedy programator jest podłączony do procesora to wtedy procesor nie chce działać, wystarczy, że wyjmę wtyczkę i procesorek działa bez zarzutu, mysle że chyba programator cos nawala.
  • #6 2097737
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    Masz problem z linią RESET w programatorze. Może padł bufor. Stąd taki objaw, że po zaprogramowaniu procek pozostaje w stanie resetu..
  • #7 2097822
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    Wiesz genetix, masz chyba rację, ponieważ jak właśnie odłączę kabelek podłączony do Reset w procesorku to nawet jak wtyczka programatora siedzi sobie i reaszt przewodów jest podłączona to procesorek działa, musze tylko sprawdzić czy ten reset jest niezbedny w procesie programowania procesora, czy może można go odłączyć. Jeżeli padł bufor tzn że scalaczek w programatorku sia zakończył? Czy to mogł sie wydarzyć przez to że podłączyłem programator w czasie pracy komputera?

    Pozdrawiam
  • #8 2097842
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    Procesor nie wejdzie w tryb programowania bez podania resetu. Ten sygnał jest niezbędny.

    Dodano po 1 [minuty]:

    Sprawdź poprawność połączeń w układzie (może wejście bufora na linii RESET wisi w powietrzu?) Jak sprzawdzenie nie da efektu to wymień kość (pewnie HC/LS244) na nową i po krzyku.
  • #9 2097878
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    w takim razie ten restet co jakis czas dziala poniewaz mniej wiecej co trzecia proba zaprogramowania konczy sie powodzeniem, kosc bym wymienil tylko ze jest ona malutka do lutowania powierzchniowego a ja mam tylko lutownice transformatorową, a obawiam sie ze za jej pomoca to bedzie katorga i w dodatku moge scalaka przegrzac
  • Pomocny post
    #10 2098000
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    Wytnij dziada obcinaczkami, potem pojedynczo wylutuj pozostałe piny. Wyrównaj powierzchnię pól lutowniczych, przyłóż nowy scalak i pojedynczo przylutowuj go do płytki. Ja osobiście lutuje piny po przekątnej, żeby nie grzać dwóch wyprowadzeń obok siebie w krótkim okresie czasu.
  • REKLAMA
  • #11 2098763
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    dzieki za pomoc zrobie tak jak piszesz, mam jeszcze jedno pytanko ile razy mozna zaprogramowac ATMega8 - flesh? i co oznaczaja ustawienia fuse bit

    0000:External clock
    0101:011 external RC osc
    0110:0110
    1000:1000 external RC osc
    1001:1001 external low freq XTAL
    1010:1010
    1011:1011
    1100:1100
    1110:1110 external XTAL
    1111:1111 external XTAL
  • #12 2099337
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    1) pamięć FLASH można programować w setkach tysięcy razy (min. 100.000, ale w praktyce pewnie więcej)
    2) ustwaienia FUSE BITS wprowadzono, aby producent nie musiał robić kilku wersji tego samego kontrolera. dzięki temu sam możesz sobie skonfigurować go wg. uznania.

    external clock - zewnętzrne źródło zegara, np. generator scalony.
    external RC osc - zewnętrzny oscylator RC
    external low freq XTAL - zewnętrzny kwarc o małej częstotliwości
    external XTAL - zewn. kwarc
  • #13 2099900
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    a te same cyferki bez opisu np 1011:1011 co sie stanie jak tak ustwie fus bity
  • #14 2100528
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    no tu jest problem - ale generalnie zero oznacza zaprogramowanie bitu, a jedynka to niezaprogramowanie. bez opisu trudno się do tego odnieść, ale na logikę powinno to się zgadzać z Fuse High Byte i Fuse Low Byte (szczegóły w datasheet).

    Dodano po 1 [minuty]:

    aha, i nie skasuj sobie czasem SPIEN (czyli nie ustaw go na "1") bo nie dogadasz się więcej z prockiem przez "szeregowca".

    Dodano po 5 [minuty]:

    podsumowanie znaczenia bitów (ATmega8):
    Załączniki:
    • Błędy przy programowaniu procesora ATMega8. fuses_m8.gif (34.52 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

✨ Podczas programowania procesora ATMega8 pojawiają się komunikaty błędów weryfikacji typu "Difference at" z różnymi symbolami adresów. Przyczyny mogą obejmować niepewne połączenia w programatorze, uszkodzony bufor na linii RESET, zakłócenia sygnału, użycie wewnętrznego oscylatora powyżej 2 MHz, duży kwarc lub zużycie pamięci FLASH procesora. Programator STK200 z Bascom AVR jest używany, jednak problem pojawił się nagle, a procesor po zaprogramowaniu pozostaje w stanie resetu, co wskazuje na problem z linią RESET i buforem (np. układ HC/LS244). Linia RESET jest niezbędna do wejścia w tryb programowania. Zaleca się sprawdzenie połączeń, a w przypadku uszkodzenia wymianę scalaka bufora, nawet jeśli lutowanie jest trudne. Pamięć FLASH ATMega8 można programować co najmniej 100 000 razy. Fuse bity służą do konfiguracji źródła zegara i innych funkcji procesora; ich ustawienia definiują m.in. typ oscylatora (zewnętrzny kwarc, RC, zegar zewnętrzny). Programowanie fuse bitów wymaga ostrożności, aby nie zablokować komunikacji SPI z procesorem.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA