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

Atmega8. Przywrócenie poprzednich ustawień. Programator?

neos87 02 Sty 2007 19:40 1841 21
REKLAMA
  • #1 3397539
    neos87
    Poziom 11  
    Posty: 25
    Pomógł: 1
    Mam jedno krótkie pytanie: czy w Atmedze8 po zmianie końcówki PC0 z reset na port wej-wyj jedynym sposobem powrócenia do poprzednich ustawień jest użycie programatora równoległego?
  • REKLAMA
  • #3 3398513
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    lub napisać i wgrać wcześniej bootloader i można końcówkę reset przemianować i robić inne cuda (wyłączyć spi też) a sposób programowania wtedy Ty ustalasz. więc można programować procki bez użycia "resetu" i bez programatora równoległego.
  • #4 3398637
    barbabulek
    Poziom 11  
    Posty: 25
    Ocena: 1
    To nieprawda, że po ustawieniu wejścia /RESET nie daje się programować tego kontrolera. /RESET i CLK muszą być na 0 podczas włączania zasilania. Warunkiem wejścia w ten tryb jest także poprawna synchronizacja. Procesor nie wykonuje kodu (a zatem nie ustawi /RESET jako wyjścia) przy sekwencji startowej trybu szeregowego programowania. Miałem podobny problem i był spowodowany niewłaściwym ustawieniem fuse-bitów. Pomyliłem się w ustawieniach CKSEL0-3. Przy pomocy programatora (a raczej czytnika) równoległego odczytałem fuse-bity i ustawiłem pod nie źródło zegara.
    Należy pamiętać o tym, że układ zewnętrzny może uniemożliwiać wyzerowanie /RESET.
  • REKLAMA
  • #5 3398660
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    kolego barbabulek - a ty o czym mówisz? (sorry, ale sam do końca możesz zrozumieć to co napisałeś?) twierdzisz?, że jeśli zmienisz ustawienie fusebita RSTDISBL i pin ten będzie działał jako typowy port I/O to nadal będzie możliwość zaprogramowania układu w trybie ISP za pomocą SPI zwykłym programatorem szeregowym np STK200 ?????????

    czy poprostu wtrąciłeś tu jakąś swoją wypowiedź wogóle nie związaną z tematem?

    pozdr
  • #6 3398661
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    Jeśli chodzi o konkretną odpowiedź na pytanie:
    neos87 napisał:
    Mam jedno krótkie pytanie: czy w Atmedze8 po zmianie końcówki PC0 z reset na port wej-wyj jedynym sposobem powrócenia do poprzednich ustawień jest użycie programatora równoległego?

    Tak - jeśli w prosesorze nie jest wgrany bootloader.
  • #7 3398674
    barbabulek
    Poziom 11  
    Posty: 25
    Ocena: 1
    Pisałem wyrażnie, że źle ustawione fuse-bity: CKSEL0-3 mogą powodować brak synchronizacji - czyli brak odpowiedzi procka na sekwencje startową programatora.
  • REKLAMA
  • #8 3398695
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    kolega prokopcio ma rację - przedstawił to bardzo jasno ;) chociaż zwróciłbym uwagę tylko na to, że nawet bootloader nie pozwoli nam na przywrócenie poprawnych wartości fusebitów odpowiedzialnych np za rodzaj zegara dla uC (CKSEL0..3) .... czyli pisząc

    Cytat:
    "...więc można programować procki bez użycia "resetu" i bez programatora równoległego"


    w miał 100% rację ;) ale kolega autor zapytał też:

    Cytat:
    "...jedynym sposobem powrócenia do poprzednich ustawień..."
    być może autorowi chodziło też o to czy własnie może zmieniać rodzaj zegara? bo np przeprogramował sobie niechcąco RSTDISBL oraz ustawił na dodatek zewnętrzny zegar taktujący a nie rezonator czy wewn oscylator - co jest częstym przypadkiem na początku zabawy z uC ;)

    Dodano po 5 [minuty]:

    no tak kolego barbabulek ale czy miałeś też przeprogramowany fusebit RSTDISBL z fabrycznego ustawienia na odwrotne ???? czyli pin działał jako port I/O ??? ..... i pomimo to przeprogramowałeś szeregowym programatorem procka ??????
  • #9 3398740
    barbabulek
    Poziom 11  
    Posty: 25
    Ocena: 1
    Przy zaprogramowanym RSTDISBL "0" należy poprosić Św. Mikołaja, zeby podrzucił pod choinkę programator równoległy.
  • REKLAMA
  • #10 3398768
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    spokojnie chłopaki - teraz powinien autor wątku napisać o co tak naprawdę Mu chodziło w tym pytaniu ;-)
  • #11 3398791
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    no racja ale może autor już śpi - więc poczekamy do jutra ;)

    a kolega barbablulek niech poczyta do poduszki co napisał ;) .... podejrzewam, że sam się w tym nie łapie

    najpierw pisze:
    barbalulek napisał:
    "To nieprawda, że po ustawieniu wejścia /RESET nie daje się programować tego kontrolera"


    a po chwili:
    barbalbulek napisał:
    "Przy zaprogramowanym RSTDISBL "0" należy poprosić Św. Mikołaja, zeby podrzucił pod choinkę programator równoległy."


    albo jeszcze to:
    barabulek napisał:
    "...źle ustawione fuse-bity: CKSEL0-3 mogą powodować brak synchronizacji... "
    skoro tu używasz słowa mogą to początkujący adept mógłby domniemać, iż czasem mogą a czasem nie powodują braku synchronizacji ;)

    jak już komuś doradzasz to staraj się choć odrobinę jaśniej pisać ok? ;) ... wtedy będziesz bardziej rozumiany przez innych ;) (bo może chciałeś dobrze coś powiedzieć ale wyrażałeś się, co najmniej - mało precyzyjnie"

    bez urazy proszę ale jak przeczytałem ten twój pierwszy post to przypomniała mi się sexmisja i też wyrwana z kontekstu wypowiedź "To nieprawda!!! Kopernik też była kobietą!!!" ;) ... czy jakoś tak ;)
  • #12 3398881
    barbabulek
    Poziom 11  
    Posty: 25
    Ocena: 1
    Przyznaję, że wyraziłem się niezbyt precyzyjnie - dzieki czemu MirekXX może sobie jeździć po mnie jak po łysej kobyle.
    Najważniejsze, że doszliśmy do sedna i raczej nic tu się nie da wymyśleć.
    Np. mozna dodać, że brak zasilania układu nie dopuszcza do synchronizacji.
    Cóż chciałem tylko zwrócić uwagę, że podczas próby przeprogramowania fuse-bit od IO RSTDISBL, może łapka się omsknąć i przeprogramujemy inne. (A jego akurat nie). Rozumiem, że MirekXX jest nieomylny i takie problemy go nie dotyczą. Zazdroszczę mu bardzo.
    Niestety dalej się upieram, że niektóre błędy w CKSEL0-3 mogą pozostać niezauważone, a inne mogą powodować brak synchronizacji
    Mam to udowodnić, czy sam się domyśli?
  • #13 3398951
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Niektóre procki ATMELa mają coś takiego jak High Voltage Serial Programming. Polega to na podaniu impulsu +12V zamiast 0V na pin RESET, a reszta przebiega standardowo. Dotyczy to głównie układów ATTiny, lecz możliwe, że w nowszych rewizjach układów ATmega ta opcja również jest dostępna mimo braku informacji o tym w dokumentacji. Pin RESET w ATmega8 wg. specyfikacji wytrzymuje +13V, więc można bez większego ryzyka spróbować...
  • #14 3399327
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    Witam,

    do kolegi barbabulek - bardzo przepraszam jeśli odebrałeś moją wypowiedź, jako "jeżdżenie po .... i tak dalej" - nie miałem takiego zamiaru. (chciałem tylko zwrócić uwagę na "trochę" bezładny sposób twoich wypowiedzi i fajnie, że sam to również w końcu zauważyłeś). Poza tym ja nie jestem nieomylny, i jak coś źle napiszę a koledzy tu na forum to skrytykują (słusznie - podając argumenty, z którymi gdy człowiek się zapozna i nie można im zaprzeczyć), czasem używając różnych określeń, to przynajmniej nie brnę uparcie dalej aby forsować swoje racje, tylko przeproszę albo podziękuję za zwrócenie uwagi i dzięki temu również dużo się uczę .... kolega natomiast z wypowiedzi na wypowiedź ........ ale ok dość o tym .... bo przecież w końcu okazało się, że myślimy podobnie - tak więc jeszcze raz przepraszam jeśli cię uraziłem ;)

    - do kolegi pmichniewski - właśnie słyszałem o tym programatorze szeregowym o którym piszesz ale nie znalazłem jakoś jego schematu, byłbym wdzieczny gdybyś podał link do niego albo sam schemat - może nie jest skomplikowany a z czasem może się przydać kiedyś ;)

    pozdrawiam
  • #15 3399657
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    12V podczas programowania podaje się podczas programowania Atmelków wcześniejszych z seri 89c.... To wiem napewno i jasno to określała nota aplikacyjna, coś nie do końca chce mi się wierzyć, jakoby Atmel miałby przed nami takie informacje ukrywać ;-) przecież to byłby wielki plus dla AVR'ów.
  • #16 3399706
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    hmmm ale ja również - jako żywo - przysiągł bym nawet, że któregoś razu kolego prokopcio widziałem gdzieś tę informację - tylko było to w czasach (choć nie są one tak odległe ;) ) gdy jeszcze nie wiedziałem tyle co teraz i drugi raz jakoś nie mogłem na tą informację wpaść ;) - więc może niech
    kolega pmichniewski zarzuci jakieś źródło tej informacji aby ją potwierdzić lub zdementować ;)

    pozdrawiam
  • #17 3399757
    teedd
    Poziom 19  
    Posty: 219
    Pomógł: 24
    Ocena: 2
    Witam.
    Jeśli chodzi o opis High-voltage Serial Programming, to opis można znaleźć np. w pdf-ie ATtiny13. O ile mnie pamięć nie myli, to również w książce "Mikrokontrolery AVR ATtiny w praktyce". Ale z informacją, że istnieje taka nieudokumentowana możliwość w większych procesorach, nie spotkałem się. Zresztą nie szukałem informacji na ten temat.
    teedd
  • #18 3399849
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    mam książkę "Mikrokontrolery AVR ATmega w praktyce" Rafała Baranowskiego i z ciekawości sprawdzę czy coś wspomianio (dział o programowaniu programatorem omijałem ;-) ).

    Dodano po 4 [minuty]:

    a jaszcze ciekawe, jeśli taka możliwość istnieje czy wtedy reset przy 12V zachowa się jak reset jeśli został wcześniej przemianowany na In/Out
  • #19 3399863
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 130
    Ehhh a wystarczy noty katalogowe czytać. Przy programowaniu w trybie równoległym konieczne jest podanie na pin /RESET napięcia 11.5-12.5. Wszystko jak zwykle w PDF. Co do programatora równoległego, jest sporo informacji na Elektrodzie.
    https://www.elektroda.pl/rtvforum/topic72511.html
  • #20 3399900
    teedd
    Poziom 19  
    Posty: 219
    Pomógł: 24
    Ocena: 2
    hehehe - czytać trzeba nie tylko noty katalogowe, ale również wątek, w którym się wypowiadamy :) . Akurat sobie tak gadamy i gdybamy o szeregowym programowaniu.
    Pozdrowienia - teedd
  • #21 3399928
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 130
    teedd napisał:
    hehehe - czytać trzeba nie tylko noty katalogowe, ale również wątek, w którym się wypowiadamy :) . Akurat sobie tak gadamy i gdybamy o szeregowym programowaniu.
    Pozdrowienia - teedd


    Oj czytałem i to od samego początku. Ale widzę że kolega nie sprawdził nawet zamieszczonych informacji i możliwości wspomnianego programatora. Sądzę że również szczegóły programowania w trybie równoległym i szeregowym "wysokonapięciowym" nie zostały dokładnie zrozumiane.
  • #22 3399959
    teedd
    Poziom 19  
    Posty: 219
    Pomógł: 24
    Ocena: 2
    :) czemu od razu tak poważnie? Link do tego wątku o programatorze równoległym znam, wydaje mi się również, że moje wypowiedzi były na temat. A gdyby nie? To spoko - więcej luzu :)
    Pozdrowienia - teedd

Podsumowanie tematu

✨ W dyskusji poruszono problem przywrócenia fabrycznych ustawień mikrokontrolera Atmega8 po zmianie funkcji pinu PC0 z resetu na port wejścia/wyjścia poprzez ustawienie fusebitu RSTDISBL. Zgodnie z większością wypowiedzi, jeśli fusebit RSTDISBL jest ustawiony i pin RESET działa jako zwykły port I/O, standardowe programowanie przez interfejs SPI (ISP) staje się niemożliwe, ponieważ nie można zresetować procesora, co jest konieczne do rozpoczęcia procedury programowania. W takim przypadku jedynym sposobem na przywrócenie oryginalnych ustawień jest użycie programatora równoległego, który wymaga podania napięcia wysokiego (około 12 V) na pin RESET (High Voltage Programming). Dyskutowano również o możliwości wcześniejszego wgrania bootloadera, który pozwala na programowanie bez użycia pinu reset, jednak nie umożliwia on zmiany fusebitów odpowiedzialnych za konfigurację zegara (CKSEL0-3) czy RSTDISBL. Wątek poruszał także kwestie synchronizacji i poprawnego ustawienia fusebitów, które mogą uniemożliwić programowanie, jeśli są błędnie skonfigurowane. Wspomniano, że dokumentacja Atmegi8 nie opisuje oficjalnie High Voltage Serial Programming dla tego modelu, ale pin RESET wytrzymuje napięcie do 13 V, co pozwala na próbę programowania równoległego. Linki do dodatkowych informacji i schematów programatorów równoległych dostępne są na forum Elektroda.pl.
Wygenerowane przez model językowy.
REKLAMA