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 nie wykrywana po wgraniu programu do LCD - konflikt pinów?

miduchp 16 Paź 2007 11:22 4528 9
REKLAMA
  • #1 4383586
    miduchp
    Poziom 10  
    Posty: 29
    Ocena: 6
    Witam,

    Ostatnio postanowiłem skonstruować prosty wyświetlacz LCD sterowany przez USB. Zaczerpnąłem schemat z http://www.linuxfocus.org/Polish/March2003/article286.shtml

    Jedyną zmianą jaką wprowadziłem była zmiana mikrokontrolera na ATMEGA8. Programuje w C. Do programowanie używam programatora STK200 i aplikacji uisp.

    Niestety napotkałem poważny problem! Jeżeli wgrywam do mikrokontrolera proste programy napisane własnoręcznie które wykonują komunikacje via UART, zapalają diodę, współpracują z przełącznikami wszystko jest ok.
    Gdy wgrałem aplikację autora projektu która współpracuje z LCD Atmega zmarła (uisp ani PonnyProg jej nie wykrywa). Fusebity ustawione są ok, własne aplikacje wgrywałem do atmegi kilkadziesiąt razy.

    Przyznaję się że nie przeanalizowałem schematu przed konstrukcją i teraz zauważyłem że LCD jest podpięty do tych samych wyjść mikrokontrolera, które uzywane są do programowania.

    Schemat układu: Atmega8 nie wykrywana po wgraniu programu do LCD - konflikt pinów?

    PYTANIA:

    1. Czy to może powodować problem?
    2. Orginalnie autor używał kabla bezpośrednio wpiętego do LPT więc na schemacie są oporniki podpięte do linii SCK, MISO, MOSI. Czy one mogą zakłócać pracę programatora jeśli używam programatora STK200 zakupionego na Allegro ?
    3. Czy powinienem podłączać GND z programatora (układ jest zasilany z USB) ?
    4. Czy usmażyłem tą Atmegę czy poprostu jest zblokowana przez wgraną aplikację. Czy można ją ożywić, nie chcę stracić następnego mikrokontrolera.

    Dziękuję za wszelką pomoc i wyrozumiałość. Jestem mało zaawansowanym elektronikiem, wolę programować :).

    Pozdrawiam
  • REKLAMA
  • #2 4383725
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    1. absolutnie nie może to powodować problemu, że piny do LCD są także wykorzystywane do programowania (co najwyżej w trakcie programowania na wyświetlaczu zobaczysz jakieś ptaszki-krzaczki)

    2. jeśli używasz programatora STK200 obojętnie gdzie kupionego to absolutnie pozbądź się tych rezystorów wpiętych szeregowo w linie do programatora

    3. Musisz zapamiętać raz na zawsze że prograując za pomocą STK musisz podłączać nie tylko linie sygnałowe MOSI, MISO, SCK i RESET ale także i to koniecznie GND oraz VCC !

    4. jeśli nie poleciał jakiś siwy dym po twoich operacjach to na pewno jej nie usmażyłeś a gdy się zastosujesz do poprzednich punktów to może się okazać że ona "ożyje" ;)

    jedyne czym mogłeś ją zablokować to poprzez złe ustawienie fusebitów ale to też nie niszczy fizycznie procka i zwykle nadal jest on w prosty lub bardziej skomplikowany sposób do odratowania

    pozdrawiam
  • #3 4383797
    miduchp
    Poziom 10  
    Posty: 29
    Ocena: 6
    Hej

    Dzięki ci wielkie za odpowiedź. Fusebity są ustawione ok na 100%, gdyż przed wgraniem softu autora projektu moje aplikacje działały. Zgodnie z twoimi sugestiami pozbędę się rezystorów, mam tylko jedno pytanie:

    Autor projektu, co widać na schemacie, nie przewidział podłączenia VCC z programatora STK200. Układ jest zasilany z USB w momencie programowania. Czy powinienem podłączyć VCC z ST200 do VCC w układzie skoro zasilanie idzie z USB (Boje się że usmażę programator)?

    Z góry dzięki za odpowiedź (Odpowiedź na to pytanie rozwieje wszystkie moje wątpliwości).
  • REKLAMA
  • #4 4383801
    snow
    Poziom 31  
    Posty: 1825
    Pomógł: 178
    Ocena: 201
    Programator MUSI dostać zewnętrzne napięcie zasilania gdyż nie jest zasilany z portu LPT. Zatem musisz tą linie zasilania co idzie do procesora podłączyć również do programatora (na programatorze powinno być opisane w którym miejscu we wtyczce należy podać VCC).
  • REKLAMA
  • #5 4383919
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    dokładnie tak jak powiedział wyżej kolega snow - programator STK200 najnormalniej w świecie potrzebuje napięcia zasilania bo w środku jest scalak - i najspokojniej w świecie możesz mu podać zasilanie z tego układu czyli z USB czyli +5V oraz GND i zapewniam cię że będzie to działało i nic się nie usmaży. Jeśli wcześniej robiłes coś tym progrmatorem i nie zasilałeś go z układu +5V to miałeś poprostu fuksa - bo wystarczało mu na tyle siły zasysając resztki miliamperów z LPT zadziałał gdy podłączałeś np samą ATmegę ;)

    autor projektu nie korzystał z zasilania bo jak widzisz podłączał się na tzw "wampira" do LPT co może czasem przy małej nieuwadze skończyć się usmażeniem LPT a wtedy jest gorzej ;) bo zwykle tylko jeden LPT masz w kompie. Dlatego milion razy lepiej jest programować przez STK200 bo masz wtedy bufor po drodze w postaci scalaka którego jak wspominałem trza zasilić ;)

    pozdrawiam i powodzenia
  • #6 4383933
    miduchp
    Poziom 10  
    Posty: 29
    Ocena: 6
    Dzięki wielkie. Nie miałem pojęcia że STK200 bierze prąd z programowanego układu. Widać miałem fuksa, bo podłączałem tylko GND + linie programujące:). W sumie to powinienem się zorientować że coś jest nie tak bo PonnyProg często zwracał błąd przy weryfikacji zapisanego HEX'a. Dzięki wielkie. Jak wrócę do domu z roboty to sprawdzę.

    Pozdrawiam i dzięki za wyrozumiałość :)
  • #7 4386582
    miduchp
    Poziom 10  
    Posty: 29
    Ocena: 6
    Witam,

    Układ został zmodyfikowany zgodnie z instrukcjami, niestety Atmega jest martwa. Jak nabiorę doświadczenia może uda mi się ją ożywić. Na razie poeksperymentuję z drugą. Wygląda na to że teraz programator działa poprawnie, nie otrzymują błędów z uisp.

    Ma ktoś może jakiś pomysł co mogło się stać z tamtą Atmegą (Wykluczając źle ustawione fusebity) ?

    Pozdrawiam
  • REKLAMA
  • #8 4386674
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    jeśli układ jest dokładnie zmontowany jak na schemacie to naprawdę ten procek nie powinien być uwalony.

    rozumiem że próbujesz go programować gdy on siedzi w układzie tak? i dobrze - ale aby się upewnić czy może nie dzieje się tak przez jakiś błąd jednak w układzie wyjmij procka (lub wylutuj) i podłącz go bezpośrednio (samego) do STK200 oczywiście podając zasilanie i GND do procka i programatora +5V. Możesz go włożyć w podstawkę i do nóżek podstawki podłączyć MOSI, MISO, SCK, RESET, VCC i GND - wtedy będziesz miał 100% pewności czy coś jest nie tak z samym prockiem czy może coś z układem.
  • #9 4387280
    miduchp
    Poziom 10  
    Posty: 29
    Ocena: 6
    Niestety nie będzie to takie proste, bo mikrokontroler ma przestawione fusebity do używania zewnętrznego kwarcu 4Mhz. Zrobię tak jak mówisz, jak w następnym miesiącu zakupię płytkę do montażu na pająka (na razie brak kasy :) ). Może wtedy coś mi się uda zdziałać. Na razie zaprogramowałem kilka razy drugi mikrokontroler i hula ok. Miejmy nadzieję że nie zejdzie po kilkunastu cyklach programowania jak poprzedni.

    Pozdrawiam i dzięki za wszystkie bardzo wartościowe sugestie!
  • #10 4387323
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    jako ciekawostkę podpowiem ci tylko, że nawet tak na pająka gdy podłączysz sam procek do STK200 a jest on zaprogramowany na kwarc zewnętrzny to wystarczy tylko tego kwarca (BEZ KONDENSATORKÓW) podłączyć do nóżek XTAL i też będzie chulało bez najmniejszych problemów.

    ostatnio w jakimś poście rozmawiałem tu na elce z kolegą prokopcio i to on mi to podpowiedział - hyhyhy od tej pory do testów również nie bawię się z podłączaniem kondensatorków przy kwarcu

Podsumowanie tematu

✨ Problem dotyczy mikrokontrolera ATmega8, który przestał być wykrywany przez programatory STK200 i uisp po wgraniu programu sterującego wyświetlaczem LCD według schematu z linuxfocus.org. Autor zmienił mikrokontroler na ATmega8 i zauważył konflikt pinów programowania z pinami LCD. Wskazano, że współdzielenie pinów programowania i LCD nie powinno fizycznie uszkodzić mikrokontrolera, a problemem może być brak zasilania programatora STK200, który wymaga podłączenia linii VCC oraz GND z układu zasilanego z USB. Zalecano usunięcie rezystorów szeregowych na liniach programowania oraz podłączenie pełnego zasilania do programatora. Po tych zmianach programator działa poprawnie, jednak pierwszy mikrokontroler pozostał nieaktywny, co może wynikać z innych przyczyn niż fusebity, które były poprawnie ustawione. Sugerowano testowanie mikrokontrolera poza układem, podłączając go bezpośrednio do programatora z zewnętrznym kwarcem 4 MHz (nawet bez kondensatorów), aby wykluczyć uszkodzenie fizyczne. Drugi mikrokontroler działa poprawnie po wielokrotnym programowaniu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA