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

Jaki programator i oprogramowanie do AtMega128 przez ISP?

Brzoza 21 Wrz 2006 13:17 2955 13
REKLAMA
  • #1 3042306
    Brzoza
    Poziom 14  
    Posty: 143
    Pomógł: 2
    Ocena: 8
    Witam
    Mamu urządzenie które pracuje na AtMega128 i chciałem do niego wgrać nowe oprogramowanie. Urządzenie ma nawet złącze do ISP ale nie wiem jakiego dokładnie programatora użyć. z tego co udało mi się ustalić to złącze ISP jest podłączone do uP w następujący sposób:

    1.
    2.
    3. masa
    4. SCK
    5. TXD
    6. RXD

    Pierwszych 2 pinów nie umiem zlokalizować ponieważ ścieżki wchodzą pod układ (albo też 2 ostatnich, zależy od której strony patrzeć ).

    Zazwyczaj programowałem przez STK200/300 i tam były wykożystane inne połączenia: MISO, MOSI, SCK, +, -.
    Proszę o pomoc czym można to zaprogramować i jakiego programu najlepiej do tego użyć.
    Z góry dzięki za okazaną pomoc.
  • REKLAMA
  • #2 3042332
    xbaj
    Poziom 20  
    Posty: 415
    Pomógł: 17
    Ocena: 16
    Prawdopodobnie w procesorze wgrany jest bootloader, który umożliwia update oprogramowania przez UART (Txd, Rxd). Pewnie któryś z dodatkowych pinów wykorzystwany jest również jako linia kontrolna...
  • Pomocny post
    #3 3042430
    m8se
    Poziom 15  
    Posty: 91
    Pomógł: 11
    Ocena: 2
    Brzoza napisał:

    Zazwyczaj programowałem przez STK200/300 i tam były wykożystane inne połączenia: MISO, MOSI, SCK, +, -.
    Proszę o pomoc czym można to zaprogramować i jakiego programu najlepiej do tego użyć.
    Z góry dzięki za okazaną pomoc.


    Jeśli spojrzysz do noty to piny RxD i TxD mają alternatywne oznaczenia PDI oraz PDO. Służą one właśnie do programowania szeregowego i są odpowiednikami MISO i MOSI, które w mega128 służą tylko do komunikacji. Możesz więc użyć dotychczasowego programatora :)

    Zerknij na stronę 304 pdf-a do megi128.
  • #4 3043428
    Brzoza
    Poziom 14  
    Posty: 143
    Pomógł: 2
    Ocena: 8
    Czy to w takim razie oznacza że wystarczy że podepne:

    VCC i AVCC do plusa,
    GND do masy
    SCK (PIN11)
    Reset (PIN20)
    zamiast MISO - RxD (PIN2)
    zamiast MOSI - TxD (PIN3)


    i już mogę kożystać z STK200????? :)
  • REKLAMA
  • #5 3043470
    mag32
    Poziom 19  
    Posty: 450
    Pomógł: 4
    Ocena: 17
    Wg mnie NIE. Dlatego, że zakładając, iż nie znasz działania bootloadera to nie uda ci się załączyć transmisji programowania.
    Sądzę, że należy racej podpiąć się pod MOSI/MISO i tendy wykonać programowanie, ewentualnie przez JTAG.
  • #6 3043657
    Brzoza
    Poziom 14  
    Posty: 143
    Pomógł: 2
    Ocena: 8
    Może i to prawda ale samo urządzenie napewno też było programowane przez ISP a jeżeli tak to powinno mieć połączenie z MISO i MOSI a tak nie jest. Te piny w uP są nie podłączone. Nie sądzę aby najpierw składali całe urządzenie, programowali a następnie wprowadzali modyfikacje na płytce w postaci odłanczania MOSI i MISO i podpinania RxD i TxD. To tylko taka moja sugestia gdyż jak patrze na układ to MOSI i MISO są nie podpięte.
  • REKLAMA
  • #7 3043688
    mag32
    Poziom 19  
    Posty: 450
    Pomógł: 4
    Ocena: 17
    oczywiście, ale jeśli wykożystali wewnętrzny Bootloader, to prawdopodobnie pisali pod niego jakiś program, który dogaduje się z konkretną aplikacją, w sposób znany tylko im, no, może nie tylko. W takim przypadku, zaprogramowanie tą metodą, może być co najmniej trudne.
  • Pomocny post
    #8 3043752
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    VCC i AVCC do plusa,
    GND do masy
    SCK (PIN11)
    Reset (PIN20)
    zamiast MISO - RxD (PIN2)
    zamiast MOSI - TxD (PIN3)

    Podłączenie jest prawidłowe i możesz tak programować procesor po ISP, a bootloader Cie kompletnie nie obchodzi, możesz go wykasasować.

    Piny oznaczone jako MISO i MOSI NIE służą do programowania! Od tego są piny PDO i PDI, jak napisał m8se
  • #9 3043781
    m8se
    Poziom 15  
    Posty: 91
    Pomógł: 11
    Ocena: 2
    Jeszcze raz napiszę:)

    MISO i MOSI mogą być niepodpięte ale przez nie NIE PROGRAMUJE się megi128 szeregowo, rolę tych pinów przejęły piny PDI oraz PDO, alternatywne do RxD i TxD (i nie trzeba nic przełączać). W nocie aplikacyjnej na stronie 304 proszę sobie zerknąć:)

    Co do bootloadera, to owszem, podpinanie programatora do portu szeregowego może to sugerować ale po co wtedy byłby wyciągany pin SCK, ten sugeruje mi właśnie ISP. SCK, PDI, PDO, RESET i normalny programator STk200 taki ;) Jestem na bieżąco akurat z megą128 i to jest sprawdzone o tyle że po prostu się pomyliłem nie doczytując początkowo pdfa i musiałem pocrossować potem na gotowej płytce piny, więc do końca życia zapamiętam :)
  • REKLAMA
  • #10 3044355
    Brzoza
    Poziom 14  
    Posty: 143
    Pomógł: 2
    Ocena: 8
    Sprawa wygląda tak, wszystko już podpiąłem ale pojawił się jeszcze jeden problem, w STK200/300 są następujące wyprowadzenia: SCK, MISO, MOSI, RESET, VCC i GND. Dokopałem się przed chwią w sieci do schematu urządzenia i opisu złącza ISP :) no i wszystko super ale zamiast VCC w tym opisie jest TD0 i teraz za bardzo nie wiem co zrobić. Poczytałem pdf'a układu atmega128 i doczytałem się że jest to PIN potrzebny przy programowaniu JTAG'iem (jeśli się mylę to mnie poprawcie). Czy to znaczy że jednak STK200/300 tego nie zaprogramuje i potrzebny jest JTAG? Jeżli zamieszałem to napiszcie, zamieszcze wtedy schemat ideowy tego urządzenia i może wszystko wtedy się wyjaśni. Ogólnie napiszę że jest mi to potrzebne do smartclip'a do zdejmowania simlcka z motoroli. Wyszedł upgrade który miał to urządzenie "ulepszyć" a jak się okazało uszkodził i teraz jedyną szansą na jego naprawienie jest wgranie nowego HEXa. Proszę o jakieś info w tej sprawie gdyż zatrzymałem się na tym etapie i dalej nie wiem co zrobić.
    Pozdrawiam
  • #11 3044607
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    SCK, MISO, MOSI, RESET, VCC i GND - tyle wystarczy do zaprogramowania megi, VCC jest zasilaniem dla programatora, żeby stany logiczne miały poprawny poziom, TDO tam nie ma (nie jest potrzebny do ISP), Jtag może posłużyć do programowania, ale nie musi, można to zrobić po ISP (może być że jest to wyłączone za pomocą fusebitów, ale szczerze w to wątpie)
  • #12 3044763
    Brzoza
    Poziom 14  
    Posty: 143
    Pomógł: 2
    Ocena: 8
    Pewnie masz rację, dla janości sprawy zamieszcza schemat urządzenia na którym jest opis ISP:

    Jaki programator i oprogramowanie do AtMega128 przez ISP?
    Jaki programator i oprogramowanie do AtMega128 przez ISP?

    generalnie teraz natrafiłem na taki problem że przy próbie wgrania flasha i eepromu pojawia się komunikat że program jest za duży. Teraz dopiero zauważyłem że to nie jest hex (wcześniej na to nie patrzyłem więc się nie śmiejscie :) ) tylko bin który zajmuje około 132kB. Do tej pory myślałem że to hex i dlatego o nim wcześniej pisałem. Może jest to problem CodeVision przez którego próbuję to zaprogramować??
    Poprostu nie wiem o co biega, pomóżcie, wcześnie programowałem tylko 3 razy uP na którego sam pisałem program w CodeVision a teraz dostałem gotowego hexa i okazuje się że jest za duży na uP na który został napisany...... dziwne :|
    HELP :(
    PS. dla kolegi który pomoże mi z pozytywnym skutkiem przesyłam 4-ro-paka browara :)
  • #13 3044791
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 123
    Na tym schemacie może to być błąd, albo ktoś używa tego pinu jako jakiś testowy, jednak bardziej obstawiałbym że to błąd.

    Jak się nie boisz, to podeślij tego bina na PW, albo otwórz go hexedytorem i zobacz czy nie ma na końcu przykładowo samych FFów.
  • #14 3054090
    Brzoza
    Poziom 14  
    Posty: 143
    Pomógł: 2
    Ocena: 8
    Panowie dziękuję za pomoc, wszystko poszło tak jak należy. Wasze wskazówki okazały się bardzo cenne. Dziękuję jeszcze raz za pomoc:)
    Temat można zamykać :)
    Pozdrawiam

Podsumowanie tematu

✨ Dyskusja dotyczy programowania mikrokontrolera AtMega128 przez interfejs ISP w urządzeniu posiadającym nietypowe wyprowadzenia złącza programatora. Standardowe piny MISO i MOSI nie są podłączone, zamiast nich używane są piny RxD (PDO) i TxD (PDI), które pełnią funkcję linii programowania szeregowego zgodnie z dokumentacją AtMega128 (strona 304 noty katalogowej). Do programowania można użyć programatora STK200/300, podłączając VCC, GND, SCK, Reset oraz RxD i TxD zamiast MISO i MOSI. Bootloader obecny w procesorze nie przeszkadza, można go nadpisać. Wątpliwości pojawiły się przy opisie złącza ISP, gdzie zamiast VCC pojawił się pin TDO, który jest związany z programowaniem JTAG, jednak do ISP nie jest on potrzebny. Problem z programowaniem pojawił się także z powodu próby wgrania pliku binarnego o rozmiarze około 132 kB, co przekracza pojemność pamięci mikrokontrolera. Ostatecznie dzięki wskazówkom dotyczącym prawidłowego podłączenia i formatu pliku programowanie zakończyło się sukcesem.
Wygenerowane przez model językowy.
REKLAMA