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

PonyProg - problem z zapisem do uC przy użyciu prostego programatora LPT

Icey 10 Mar 2014 14:11 3429 6
  • #1 13389090
    Icey
    Poziom 13  
    Witam, temat założony jeszcze raz ze względu na zmianę nicku, jednak problem ten sam.
    Korzystam z PonyProg, o ile z uC odczytuje jak należy to z zapisem jest już ciężej. Korzystam z prostego programatora do LPT:
    10 pin ---> MISO
    9 pin ---> RESET
    7 PIN ---> MOSI
    6 pin ---> SCK
    Wszystkie te piny przez oporniki 330
    Zasilanie z USB

    W WinAVR kompiluje ten program:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Kompiluje ten program według poradnika znalezionego w sieci (fortbot) w pewnym momencie trzeba wybrać programator wybieram "stk-200", po udanym skompilowaniu przeciągam plik *.hex na Pony Prog. Pojawiają sie jakieś bezsensowne ciągi znaków. No ale klikam przycisk "Write program to memory (FLASH)", po pytaniu czy wykonać tą operacje, pojawia się okienko z postępem, przez około minutę pasek ani nie drgnie(0%). Chwile później jest weryfikacja, która kończy się niepowodzeniem(Verify Failed). Gdy kliknę przycisk "Write program to memory (EPPROM)" wszystko elegancko szybko się "wgrywa", po czym jest komunikat "Verify OK". Jednak po podłączeniu uC nic nie miga.
    Pozdrawiam!
  • #2 13389319
    dondu
    Moderator na urlopie...
    W opisie połączeń brakuje masy (GND) - zapomniałeś napisać, czy nie połączyłeś z masą mikrokontrolera?

    PonyProg - problem z zapisem do uC przy użyciu prostego programatora LPT

    Załącz tutaj plik .hex który wygenerowałeś i podaj dla jakiego mikrokontrolera go przygotowałeś.

    Swoją drogą zainstaluj co najmniej AVR Studio 4.18 lub najnowsze Atmel Studio:
    http://mikrokontrolery.blogspot.com/2011/04/kompilator-i-srodowisko-programistyczne.html
  • #3 13390911
    Icey
    Poziom 13  
    Witaj dondu ;)
    Co do masy... Może to sie wydać dziwne, ale... przeoczyłem ten kawałek schematu. Jednak, wydaje mi się że cały uC jest zmasowany, ponieważ GND podłączyłem z USB. Rozumiem że równie ważne jest podłączenie tych wsystkich pinów w LPT (np. 2 do 12)? Podejrzewam że ta część programatora umknęła mi z dość prostego powodu, wcześniej programowałem w bascom i miałem programator właśnie pod bascoma, a tam nie było takich "wariacji" z łączeniem pinów w LPT.

    Co do wsadu *.hex to bardzo byłbym wdzięczny gdybyś mi go sprawdził ;) Gdyż ja niestety nie mam takiej opcji.

    Środowisko to jest takie że mam Windows XP z dodatkiem service pack 3, mam zainstalowanego PonyProg'a2000 oraz AVR Studio 4.
    Dzięki za odpowiedź ;)

    Ps. mikrokontroler to ATmega16
  • #4 13391103
    Icey
    Poziom 13  
    Połączyłem te piny w LPT (2,12 oraz 3,11) - guzik to dało, dalej ten sam problem. Aaa co do łączenia masy, to nie widzę sensu, zrobiłem sobie teraz małe doświadczenie - mase podciągnąłem z USB a z jakiegoś pinu w LPT + dioda zaświeciła się. Co oznacza że branie masy z LPT ma taki sam sens jak z USB, a łączenie tych mas w LPT jest moim zdaniem pozbawione sensu xD
    Pozdrawiam ;)
  • #6 13395022
    dondu
    Moderator na urlopie...
    Icey napisał:
    Co do masy... Może to sie wydać dziwne, ale... przeoczyłem ten kawałek schematu. Jednak, wydaje mi się że cały uC jest zmasowany, ponieważ GND podłączyłem z USB.

    Jeżeli zasilasz mikrokontroler z gniazda USB tego samego komputera, do którego masz podłączony programator to oczywiście masa jest prawidłowo podłączona. Jeżeli natomiast zasilać go będziesz z innego źródła masę programatora musisz połączyć z masą mikrokontrolera.


    Icey napisał:
    Rozumiem że równie ważne jest podłączenie tych wsystkich pinów w LPT (np. 2 do 12)? Podejrzewam że ta część programatora umknęła mi z dość prostego powodu, wcześniej programowałem w bascom i miałem programator właśnie pod bascoma, a tam nie było takich "wariacji" z łączeniem pinów w LPT.

    Nigdy nie zagłębiałem się w zasadność tych połączeń, po prosty wykonałem programator wg schematu, który załączyłem w poprzednim poście i poprawnie działa z PonyProg2000.


    Icey napisał:
    Co do wsadu *.hex to bardzo byłbym wdzięczny gdybyś mi go sprawdził ;) Gdyż ja niestety nie mam takiej opcji.
    ...
    mikrokontroler to ATmega16

    Niestety nie mam tego mikrokontrolera pod ręką, ale w zamian przygotowałem Ci program i plik .hex, którym zaprogramuj swój mikrokontroler.


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Diodę LED z rezystorem podłącz do pinu PB0 i masy.
    Dioda powinna migać (przy standardowym ustawieniu fusebitów na 1MHz) co 2 sekundy.
    Specjalnie tak długi czas, by ewentualnie zaobserwować miganie, gdybyś miał przestawione fusebity na np. 8MHz (wtedy będzie migać znacznie szybciej).

    EDIT:
    Tylko nie zmieniaj fusebitów zanim nie będzie pewności, że nawiązałeś prawidłową łączność z mikrokontrolerem.
  • #7 13399766
    Icey
    Poziom 13  
    Dziękuje za odpowiedz dondu , już wszystko działa jak należy.
    Pozdrawiam ;)
REKLAMA