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

Jak odblokować ATmega8 po zmianie ustawień Fuses na Ext. Crys.?

rav1989 09 Lip 2009 15:27 3595 21
REKLAMA
  • #1 6758575
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    Witam

    Mam problem mianowicie zablokowałem ATmege8. W następujący sposób:
    W programie SinaProg dałem Search przy Device i wszystko ładnie wykryło i ustawiło automatycznie na Atmega8, potem w Fuses przestawiłem na pozycje Ext. Crys. dałem Program i procek padł. Próbowałem go odczytać programem ISPprog, mkAVRCalculator i nic, dodam jeszcze, że układ pracował z MAX232 i do RxD i TxD są podłączone diody jedna z nich dokładnie ta podpięta pod 3 nóżkę ATmegi pali się i czasami zamiga, a jak próbuje rozpoznać w ISPprog to na chwilę gaśnie po czym zamiga i znów się zapala. Mógłby mi ktoś pomóc w odblokowaniu? dodam, że używam programatora STK 200 firmy Protech (kupiony na allegro), oraz mam jeszcze ATtiny13 które prawdopodobnie działa... a do programowania używam programów: SinaProg, ISPprog, mkAVRCalculator. Oraz do pisania i kompilacji programów BASCOM-AVR.

    EDIT:
    Przyczyną świecenia diody było to, że układ był podpięty pod komputer (COM1), po odłączeniu nic nie świeci.

    Pozdrawiam
    Rafał
  • REKLAMA
  • #2 6758843
    Pokey
    Poziom 17  
    Posty: 345
    Pomógł: 15
    Ocena: 54
    Może przez przypadek ustawił się też fuse zablokowania wejścia RESET, wtedy nie zaprogramujesz już jej szeregowo.
    Ale sprawdź jeszcze czy pracuje zewnętrzny rezonator kwarcowy, czy są prawidłowe pojemności przy nim.
  • REKLAMA
  • #3 6758898
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    Podłączyłem zewnętrzny kwarc 8MHz plus 2 kondensatory 27pF ale nie pomogło...
  • REKLAMA
  • #4 6758917
    Srubol
    Poziom 13  
    Posty: 52
    Pomógł: 4
    Ocena: 4
    Witam
    może ustawiłeś na zewnętrzny generator. Jeśli tak jest to podepnij generator pod ATmeg-e
  • #5 6758954
    Pokey
    Poziom 17  
    Posty: 345
    Pomógł: 15
    Ocena: 54
    W fus'ach ustawia sie również zakresy częstotliwości zewnętrznego oscylatora:
    0,1 - 0,9MHz;
    0,9 - 3.0MHz;
    3.0 - 8.0MHz;
    8 - 12MHz.
    Myślę, że jednak pomimo złego zakresu i tak by ruszył, ale spróbuj jeszcze innych kwarców.
    Chyba tylko to Ci pozostaje, bo mnie też kiedyś tak się zablokowała, przy którymś z kolei programowaniu. Podejrzewam, ze ustawił się fuse blokady resetu albo po prostu uszkodził się procesor, bo miałem niepewne połączenia pomiędzy programatorem a procesorem. Czasem nie mógł nawiązać komunikacji i musiałem potarmosić wtyczkę :D - to się zemściło. Wymieniłem wtyczkę programatora i Atmegę ;)
  • #6 6758987
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    niestety mam tylko 8MHz innych kwarców nie mam może dało by się jakoś emulować z ATtiny13 ?? taki generator? może by jakoś ruszyło?
  • #7 6759167
    papikus
    Poziom 15  
    Posty: 42
    Pomógł: 13
    musiałeś ustawić na zewnętrzny generator
    odblokujesz procka przez programowanie równoległe tj. "wysokim" napięciem
  • REKLAMA
  • #8 6759385
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    mógłbyś mi napisać dokładnie jak mam to osiągnąć za pomocą STK200 ?? wiesz ja dopiero zaczynam i nie bardzo wiem o co chodzi z tym programowaniem równoległym.
  • #9 6759476
    papikus
    Poziom 15  
    Posty: 42
    Pomógł: 13
    Tu masz (SCH+PCB+SOFT) do programatora równoległego.
  • #10 6759643
    Pokey
    Poziom 17  
    Posty: 345
    Pomógł: 15
    Ocena: 54
    Oczywiście na tiny możesz zrobić taki prosty generator, jest to tylko kilka instrukcji:

    loop:
    SBI Port,Pin
    NOP
    NOP
    CBI Port,Pin
    RJMP loop

    Wcześnej musisz tylko jeszcze skonfigurować Port,Pin jako wyjście.

    Ale jeśli chcesz go odblokować, to jednak zainteresuj się programatorem równoległym, o ile Twój procesor nie jest w obudowie SMD. Nie przeglądałem materiałów pod tym linkiem, ale podejrzewam, że służy do programowania procesorów w obudowach DIP.
  • #11 6760479
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    rozumiem ze ten kod jest w BASCOM
  • #12 6760772
    Pokey
    Poziom 17  
    Posty: 345
    Pomógł: 15
    Ocena: 54
    Ten kod jest w asemblerze. Dawno już nie programowałem w BASCOM ale można tam robić wstawki ASM. Ale jeszcze prościej zrobisz to w samym BASCOM. Chodzi tylko o naprzemienne ustawianie i zerowanie jednego z wyjść (albo całego portu dla ułatwienia). Na tym wyjściu pojawia się wtedy generowany sygnał. W zależności jakie dasz opóźnienia pomiędzy 1 a 0 to otrzymasz inną częstotliwość. Jako opóźnienia wstaw NOPy, częstotliwość jaką uzyskasz to będzie kilka MHz (dla kwarcu 8MHz).
  • #13 6760899
    papikus
    Poziom 15  
    Posty: 42
    Pomógł: 13
    jest jedno ale, attiny też trzeba zaprogramować ;)
    porażająca ekonomia ratować 6zł za pomocą 3zł, nie mając gwarancji powodzenia, poza tym jeszcze na płytce trzeba uwzględnić przy projektowaniu takie kwiatki :D
    jak będziesz miał pół szuflady takich eksperymentów, wnioski o tym, że programator równoległy, to jednak dobra rzecz nie wymyślona bezcelowo, same się pojawią...
  • #14 6760955
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    nie zaszkodzi spróbować :) tylko gdzie ja mam te nóżki od ATtiny podłączyć ?? do XTAL1 czy XTAL2 ATmegi i czy można bezpośrednio ?? czy może jakiś kondensator dać ??
  • #15 6760992
    papikus
    Poziom 15  
    Posty: 42
    Pomógł: 13
    Dokumentacja uC strona 32.
    Generator pod XTAL1, XTAL2 wisi
  • #16 6771200
    Srubol
    Poziom 13  
    Posty: 52
    Pomógł: 4
    Ocena: 4
    Zrób sobie generator na 555 ok 200kHz i wystarczy.
    Ja taki mam jak mi coś nie pójdzie w fuse to go odpalam i po problemie.
  • #17 6786369
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    Witam

    Do ATtiny13 wgrałem taki kod

    
    $regfile = "ATtiny13.dat"
    $crystal = 1200000
    $hwstack = 32
    $swstack = 18
    $framesize = 8
    
    Config Pinb.4 = Output
    Portb.4 = 0
    Led Alias Portb.4
    
    Do
      Set Led
      Waitms 40
      Reset Led
      Waitms 40
    Loop
    
    End


    Podłączyłem diodę LED i wszystko działa :)

    Teraz mam pytanie czy zostawić 40 ms. czy może zwiększyć lub zmniejszyć ??

    P.S
    Wiem, że się da na 555 ale na razie muszę użyć dostępnych pod ręką elementów a 555 niestety nie posiadam
  • #18 6786557
    Pokey
    Poziom 17  
    Posty: 345
    Pomógł: 15
    Ocena: 54
    Tutaj masz około 12Hz (okres 2 x 40ms). Częstotliwośc 200kHz to okres 5us. Nie programuje w Bascomie, nie wiem czy jest tam funkcja odliczająca mikrosekundy, ale jeśli kwarc masz 1,2MHz ($crystal = 1200000 - a nie 12MHz?) to zamiast każdego Waitms 40 wstaw po dwa NOPy i będzie około 200kHz.
  • #19 6788119
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    OK Zmieniłem w kodzie tak aby było 5us. podłączyłem pod diodę patrze działa co prawda nie widziałem jak mruga bo to niemożliwe lecz widziałem, że się ciągle świeci. Następnie podłączyłem układ do ATmega8 pod XTAL1 oraz dałem kondensator 27pF do GND (diodę odłączyłem) podłączyłem programator do ATmegi8 i uruchomiłem ISPprog, "Read Signature" i nic... sprawdziłem też avrdude i też nic... jedyne co się zmieniło to to, że bez względu czy uC jest podłączone pod COM czy nie to dioda na pinie 3 sobie mrugnie od czasu do czasu a tak to się świeci... tylko jak próbuję rozpoznać uC bez względu na to czy w ISPprog czy avrdude to na chwilę gaśnie. Ech chyba muszę sobie zakupić ten programator równoległy...

    $regfile = "ATtiny13.dat"
    $crystal = 1200000
    $hwstack = 32
    $swstack = 18
    $framesize = 8
    
    Config Pinb.4 = Output
    Portb.4 = 0
    Led Alias Portb.4
    
    Do
      Set Led
      Waitus 5
      Reset Led
      Waitus 5
    Loop
    
    End
  • #20 6791669
    janbernat
    Poziom 38  
    Posty: 3954
    Pomógł: 468
    Ocena: 50
    Nie dawaj tego kondensatora 27pF
  • #21 6798164
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    Bez kondensatora tez nie działa. Chyba muszę zakupić nową ATmege a tą odblokuje się kiedyś...
  • #22 6803564
    Pokey
    Poziom 17  
    Posty: 345
    Pomógł: 15
    Ocena: 54
    rav1989 napisał:
    Chyba muszę zakupić nową ATmege a tą odblokuje się kiedyś...

    Powinieneś to zrobić od razu ;) Nie opłaca Ci się kupować (robić) specjalny programator aby odzyskać 5zł z tej atmegi. Ja po takim jednym zablokowaniu procka kupiłem od razu 5 sztuk nowych. Na razie pozostałe 4 leżą sobie - ale kiedyś się przydadzą :P
    Pozdrawiam

Podsumowanie tematu

✨ Problem dotyczy zablokowania mikrokontrolera ATmega8 po zmianie ustawień fuse na zewnętrzny rezonator kwarcowy (Ext. Crys.). Próby programowania szeregowego (ISP) nie powiodły się, prawdopodobnie z powodu ustawienia fuse na zewnętrzny generator lub zablokowania pinu RESET. Użytkownik podłączył kwarc 8 MHz z kondensatorami 27 pF, jednak układ nie reagował na programowanie. W dyskusji zasugerowano, że do odblokowania konieczne jest programowanie równoległe (high voltage programming), które wymaga specjalnego programatora, np. programatora równoległego do DIP. Alternatywnie zaproponowano użycie prostego generatora sygnału kwarcowego wykonanego na ATtiny13 lub układzie 555, aby zasymulować sygnał zegarowy. Kod generatora na ATtiny13 w BASCOM-AVR został podany i przetestowany, jednak mimo poprawnego działania generatora, ATmega8 nadal nie odpowiada na programowanie ISP. Zalecenia obejmują zakup programatora równoległego lub wymianę mikrokontrolera, gdyż odblokowanie przez ISP jest niemożliwe przy nieprawidłowo ustawionych fuse. Dodatkowo zwrócono uwagę na prawidłowe podłączenie generatora do pinów XTAL1 i XTAL2 oraz na to, że kondensatory 27 pF mogą być zbędne lub przeszkadzać w symulacji sygnału.
Wygenerowane przez model językowy.
REKLAMA