Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATmega8 - Zablokowany mikrokontroler podczas programowania ISP

Radioamator Staszek 05 Sie 2013 17:37 1530 3
  • #1 05 Sie 2013 17:37
    Radioamator Staszek
    Poziom 11  

    Witam,
    Sytuacja wygląda następująco:
    -Podłączam świeżą ATmege8 pod złącze ISP przez programator FT-232R i odczytuje fuse bity by sprawdzić poprawność połączenia (używam AVRDUDE-GUI).
    -Następnie wpisuje swoje bity o wartościach: hFuse: D0 oraz lFuse: EF.
    -Wrzucam napisany przeze mnie program ok. 6,5kB.
    -Przekładam uP do płytki gdzie będzie używany. Zewnętrzny oscylator 8Mhz. Wszystko działa taka jak powinno.

    no i teraz się zaczyna:

    -Chce nanieść poprawki w moim programie dlatego z powrotem przerzucam scalaka w programator.
    -Ponownie używam funkcji Read w o kontekście fusebitów. Wyskakuje komunikat o błędnym połączeniu złącza ISP oraz ostatecznie rc=-1

    Code:
    avrdude.exe: BitBang OK 
    
    avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
    avrdude.exe: drain OK

     ft245r:  bitclk 9600 -> ft baud 4800
    avrdude.exe: ft245r_program_enable: failed
    avrdude.exe: initialization failed, rc=-1
                 Double check connections and try again, or use -F to override
                 this check.


    avrdude.exe done.  Thank you.


    Od tej pory mikrokontroler nie daje znaku życia. Podejrzewam że go zablokowałem, niestety nie wiem jak. Proszę o podpowiedź gdzie popełniam błąd bo nie chce zabijać tych scalaków w przyszłości. A może gdzieś indziej jest coś nie tak? Dodam że zasilanie, oraz złącze ISP podłączone prawidłowo, sprawdzanie parę razy włącznie zz mierzeniem przewodów. W ten sposób zabiłem 2 scalaka. W obu przypadkach sytuacja wyglądała tak samo.

    0 3
  • #2 05 Sie 2013 17:58
    landy13
    Poziom 29  

    Radioamator Staszek napisał:
    dlatego z powrotem przerzucam scalaka w programator.
    A czy w tym programatorze masz podłączonego kwarca? Pewnie nie. Podłącz i zadziała.
    No i dlaczego nie programujesz w układzie?

    0
  • #3 05 Sie 2013 18:35
    piotrva
    Moderator na urlopie...

    Dokładnie ISP jest od tego, żeby nie bawić się w przekładanie.
    Jeśli masz kwarc to może podczas przekładania za bardzo wygiąłeś nogę w uC/podstawce tego programatora?
    Jeśli nie to spróbuj podać na XTAL1 sygnał prostokątny 1MHz 50% TTL i wtedy spróbować programować (oczywiście wcześniej trzeba odłączyć kwarc i kondki).
    A w ostateczności - fusebit doctor lub znaleźć kogoś z HVPP w okolicy.

    0
  • #4 05 Sie 2013 20:44
    Radioamator Staszek
    Poziom 11  

    Tak mam kwarc 8MHz w podstawce. Oczywiście w samej płytce mam wyprowadzenia pinów pod ISP, ale na początku myślałem że coś jest nie tak że nie zadziałało czytanie fusów(pierwsza próba programowanie na PCB). Mnie tylko dziwi do że po tym jak uP zaczął pracować przy próbie odczytu - a nie zapisu - fusebitów zablokował się. Cóż będę próbował go pobudzić. Zwykły generator na 555 wystarczy?
    EDIT:
    Podłączenie sygnału z generatora niestety nie przyniosło rezultatu.
    Po przestawieniu w Command line Option na sygnature: -P ft0 -F 19200, otrzymałem następujące fusy: hFuse: 0xff i lFuse:0xff, odczytany lockbit: 3F

    Próba zmiany fusów przynosi następujący komunikat:

    Code:
    avrdude.exe: BitBang OK 
    
    avrdude.exe: pin assign miso 3 sck 5 mosi 6 reset 7
    ft245r_drain called but queue is not empty 1
    avrdude.exe: drain OK

     ft245r:  bitclk 230400 -> ft baud 115200
    avrdude.exe: ft245r_program_enable: failed
    avrdude.exe: initialization failed, rc=-1
    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.00s

    avrdude.exe: Device signature = 0xffffff
    avrdude.exe: Yikes!  Invalid device signature.
    avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07
    avrdude.exe: reading input file "0xD0"
    avrdude.exe: writing hfuse (1 bytes):

    Writing |  ***failed; 
    ################################################## | 100% 0.13s

    avrdude.exe: 1 bytes of hfuse written
    avrdude.exe: verifying hfuse memory against 0xD0:
    avrdude.exe: load data hfuse data from input file 0xD0:
    avrdude.exe: input file 0xD0 contains 1 bytes
    avrdude.exe: reading on-chip hfuse data:

    Reading | ################################################## | 100% 0.02s

    avrdude.exe: verifying ...
    avrdude.exe: verification error, first mismatch at byte 0x0000
                 0xd0 != 0xff
    avrdude.exe: verification error; content mismatch

    avrdude.exe done.  Thank you.

    0