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

atmega 168 i 88 - programator stk200 ich nie widzi

quelque 15 Kwi 2011 20:40 2828 8
  • #1 9404922
    quelque
    Poziom 10  
    cześć :)
    Programator STK200 przestał rozpoznawać atmegę168, kupiłem nową (atmega88) i po ok. pięciu flashowaniach tez "padła".
    Tzn mikrokontroler nie padł całkiem, bo LED miga tak jak wcześniej została zaprogramowana, czyli ostatnio wgrany program działa dobrze...
    Gdy programator próbuje rozpoznać uC, to bajty identyfikujące przyjmują najczęściej wartości 00, ff, 1f, 7f - w różnych kombinacjach. Więc jakieś dane na tych portach MISO i MOSI się pojawiają.
    Do tego niezbyt losowe, bo gdy sprobowałem odczytać flash, to w zależności od zgadywanego taktowania (ustawiałem różne wartości w programatorze) dostawałem dłuższe lub krótsze bloki zer i jedynek. Na taktowaniu 32768Hz odczytany flash wciąż nie przypominał programu:
    
    :100000000100008000FF000F00000000FE00FF0064
    :100010000000000000E000FF003F000000000000C2
    :10002000F800FF000700008000E000FF001F000054
    :100030000000F0000000FF00FF000000010000C011
    na większym taktowaniu oczywiście są dłuższe bloki 00 i FF
    

    Nie ustawiałem żadnych fusów blokujących SPI ani RESET, chyba że po pół roku poprawnej pracy programatorowi (układowi albo programowi) coś odbiło i sam ustawił ;]
    Ostatnio wgrywany programik zmieniał taktowanie, ale nie trwale:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Wygląda na to, że ISP jest uszkodzony, tylko jak to stwierdzić z całą pewnością? Żeby nie wyrzucić dobrego procka...
    Programator będzie raczej dobry, bo jak mowiłem: nową atmegę udało sie ok pięć razy zaprogramować, jakiś attiny też rozpoznaje poprawnie.
    Atmegę sprawdzam na płytce stykowej: jest sam uC, reset podpiety przez rezystor podciagający do +5,10V z kompa, i do tego linia reset z programatora, zasilanie na pin7, masa na pin8, i SCK, MISO, MOSI na portach 17,18,19
  • #2 9405006
    dondu
    Moderator na urlopie...
    Witaj,

    Zacznij od rozrysowania schematu (warto czas na to poświęcić) i załączenia go tutaj. Opis słowny niby wystarczy ale nie takie błędu już widywano na forum- bez urazy.
    Jakim programem to cudo programujesz?
  • #3 9405238
    quelque
    Poziom 10  
    ISP Programmer 1.2.0.53 autor Adam Dybkowski
    rysować chyba nie ma czego, do LPT jest podłączony "programator" - czyli we wtyczce LPT zmieściłem bufor 74HC244 bez rezystorów ochraniających port, tzn jedynie dałem na pinie ACK. Bufor jest zasilany +5V z zasilacza komputera bezpośrednio (czyli z wolnego molexa).
    Z tego programatora idą cztery żyły do uC: reset, miso, mosi i sck.
    Nic wiecej nie podłączałem jeszcze do nowej atmegi88, nawet LEDki.
    Jeśli naprawdę trzeba to rozrysować, to mogę śmignąć w paincie zaraz ;)

    PS. ten programator powinien byc dobry, w końcu rozpoznał nową, jeszcze nie uszkodzoną, atmegę
    tę atmegę czy tego atmega?
  • #4 9405397
    bogdan_p
    Poziom 39  
    Cytat:
    Z tego programatora idą cztery żyły do uC: reset, miso, mosi i sck.

    Masz wspólną masę LPT > programator > ATMega ?
  • #5 9405945
    quelque
    Poziom 10  
    Cytat:
    Masz wspólną masę LPT > programator > ATMega ?

    tak, pin 25 portu LPT (innych pinow GND nie łączyłem) jest połączony do szyny "minus" na płytce stykowej, a wcześniej jeszcze zahacza o pin GND układu 74HC244.
    I do tej samej szyny jest doprowadzony czarny przewód z molexa i pin 8. atmegi - czyli wszędzie powinien być jeden punkt odniesienia
  • #6 9406459
    dondu
    Moderator na urlopie...
    W takich przypadkach gdzie trudno jest określić co jest przyczyną, trzeba od czegoś zacząć. Ja zaproponowałem rozpocząć od schematu. Jeżeli nie poradziłeś sobie jeszcze z tematem to zrób go. Jeżeli chcesz robić w Paincie to weź chociaż skan układu z datasheet by były wszystkie nóżki procka wraz z opisami.
  • #7 9407191
    quelque
    Poziom 10  
    atmega 168 i 88 - programator stk200 ich nie widzi
    "linia zapasowa" nie jest podłączona do atmegi, poprowadziłem ją, bo jak już lutowałem programator, to czemu nie wykorzystać wolnej linii - może kiedyś się przyda do komunikacji z kompem.
    Piny 20 i 22 też miałem podłączone odpowiednio do +5V i masy, i połączone kondensatorkiem (ceramiczny, z napisem 104), tak było w atmega168, na nowej do tych pinów nic nie podłączałem, bo chciałem na szybko sprawdzić czy programator ją zobaczy.

    [edit]
    chyba pin reset nie stykał, bo jak mierzyłem napięcie na pinach uC (włączając odpowiednie piny w LPT), to się okazało że na resecie skacze napięcie. Docisnąlem i rozpoznalo procka :)
    sprawdzę jeszcze drugi procek i czy się dobrze programuje i zamknę temat :)

    chociaż skoro już jest post, to chętnie bym się dowiedział czy da się uszkodzić sam uklad SPI i jak to zweryfikować? JTAG? (akurat nie ma go w atmega168, ale moze w innych...). Bo domyślam się że porty z których SPI korzysta mogą działać, a sam układ nie będzie się z nóżkami kontaktował...
  • #8 9656277
    NoName200
    Poziom 12  
    Podepnij linie MISO do "+'" przez rezystor 100k, wolne wzmacniacze w 74HC244 połącz równolegle do lini RESET zwiększy to ich obciążalność to samo można zrobić dla lini SCK, we wtyczce DB25 połącz pin 2 z 11 i czasami wymagane jest aby procek miał podpięty kwarc.
  • #9 10112165
    quelque
    Poziom 10  
    dostaję przypomnienia na maila zeby zamknac temat, wiec zamykam ;)
    Niestety nie doczekałem się odpowiedzi jak rozpoznać czy nie uszkodził się sam układ SPI (i czy w ogóle jest taka możliwość).
    Jak juz pisałem wyżej rozwiązaniem był zły styk na resecie.
REKLAMA