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.

[Attiny45][AVRStudio4][STK500] - Błąd weryfikacji pamięci flash

IRFP640 05 Lip 2013 16:16 990 4
  • #1 05 Lip 2013 16:16
    IRFP640
    Poziom 9  

    Przedstawię komunikat błędu od razu:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Sygnaturę odczytuje dla ustawionej prędkości 460.8kHz i dla 4kHz też (i dla każdej pośredniej z listy).
    Fusebity:
    ext: 0xFF
    high: 0xDD
    low: 0xFF
    Sygnatura: 0x1E 0x92 0x06
    Kwarc zewnętrzny 11.0592MHz, na kondensatorach 27pF.
    Nie ma znaczenia czy kod napiszę i skompiluje w AS6 czy w AVRStudio4. Nic się nie dzieje a ja już tracę włosy z głowy.
    Czy ktoś potrafi mi wskazać gdzie szukać błędu? Programator (klon stk500) do tej pory nie stwarzał problemów.

    0 4
  • #3 05 Lip 2013 23:00
    IRFP640
    Poziom 9  

    Błąd występuje przy każdej prędkości.
    Fusebity jak wyżej. Odczytuje je właśnie w ten sposób. Pierwszy odczyt (zaraz po podpięciu programatora) wykazał włączony wewnętrzny rezonator rc oraz włączony dzielnik częstotliwości i wyłączony brown out detector. Zmieniłem to na zewnętrzny rezonator powyżej 8MHz i wyłączyłem dzielnik zegara. Zaprogramowałem - i w zasadzie za każdym razem takie ustawienia odczytuje.
    Raz na jakiś czas (raz na 10 odczytów) pojawi się błąd odczytu fusebitów - podobnie rzecz się ma z sygnaturą.
    Do uC jest podpięty tylko rezonator a na nóżce PB0 jest mosfet. (jest oczywiście podpięty programator). Zasilanie z programatora. Obecnie to wszystko.

    0
  • #4 06 Lip 2013 00:14
    Marek_Skalski
    Moderator Projektowanie

    Cytat:
    a na nóżce PB0 jest mosfet.


    Schemat prosimy. PB0 to linia MOSI i pewnie tutaj jest problem, jeżeli MOSFET jest podłączony bezpośrednio.
    Dopóki nie widzę schematu, to nie wiem jaki to tranzystor, jaka jest jego pojemność wejściowa (C_GS) i jak to może wpływać na działanie układu. Ale ogólnie, zasada jest taka, że do linii SPI nie podłączasz żadnych elementów, które mogą wchodzić w interakcję z interfejsem.
    Odłącz tranzystor, albo przynajmniej podłącz go przez jakiś bufor separujący i zobacz jak się zachowuje układ. Jeżeli zaprogramujesz, to sprawa jest jasna.

    0
  • #5 06 Lip 2013 01:39
    IRFP640
    Poziom 9  

    Podłączony tranzystor to IRFL024z, obecnie nie ma na tej linii (gate) pullupa. Rozumiem, że problemy mogą stwarzać układy na 1Wire itp. które potrafią wymusić zero na linii. Ale u mnie takich nie ma a przecież to In System Programming. Tak czy siak (ale to już po weekendzie) odłączę ten tranzystor i zobaczę czy się programuje.
    Daję obraz pcb, może tu są jakieś problemy, których nie widzę.
    Pozdrawiam i życzę dobrej nocy.

    0