Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Rozbudowany programator ISP AVR (zgodny z STK200/300)

RomanWorkshop 28 Jun 2013 12:48 18312 20
Altium Designer Computer Controls
  • Rozbudowany programator ISP AVR (zgodny z STK200/300)

    Wykonałem własną wersję programatora ISP mikrokontrolerów AVR. Podłącza się go do portu równoległego (LPT), wymaga zewnętrznego napięcia zasilania 9-15V (o dowolnej polaryzacji, może być niestabilizowane). Jest to ulepszony STK200/300 (www.lancos.com/e2p/betterSTK200.gif, opisany w EdW 2/2008), ale zawierający dodatkowo:

    * rezonator kwarcowy (4 MHz) - podłączany bezpośrednio do wyprowadzeń XTAL1/XTAL2, zapewnia sygnał taktujący uC.

    * generator kwarcowy (8 MHz) z dzielnikiem - źródło zewnętrznego sygnału taktującego uC, podłączane do XTAL1. Umożliwia uzyskanie częstotliwości f=8 MHz (w zależności od kwarcu) oraz f/2, f/4, f/8 i f/16. Przydatne w przypadku programowania uC, ustawionych na pracę z zewnętrznym zegarem.

    * 7 podstawek DIP dla większości uC z rodziny ATtiny/ATmega oraz kilku AT90S i AT89S (rozwiązanie podobne do adaptera opisanego w EP 7/2007)

    * 2 diody sygnalizujące włączenie zasilania oraz odczyt/zapis uC

    * układ zasilania: mostek prostowniczy ze stabilizatorem 78L05 (maks. 100 mA)

    Tak on wygląda (pierwszy obrazek to widok 3D z programu DipTrace 2.3.1):

    Rozbudowany programator ISP AVR (zgodny z STK200/300) Rozbudowany programator ISP AVR (zgodny z STK200/300)

    Programator jest bardzo prosty i jednocześnie funkcjonalny. Użyto w nim 3 układy scalone: 74HC244, 74LS04 i 74LS93. Pobór prądu przez sam programator wynosi ok. 30 mA. Prototyp został wykonany na płytce jednostronnej, o wymiarach 161x146 mm z 39 zworkami (grube ścieżki 1 mm). Jednak nic nie stoi na przeszkodzie, aby przeprojektować go na mniejszą płytkę. Kondensatory filtrujące zasilanie uC (CX1-CX7: 100n), przylutowano od strony druku, bezpośrednio do wyprowadzeń podstawek.

    Programator był testowany i współpracuje z programami:
    PonyProg2000 2.08c (free)
    ISP Programmer 1.2.0.56 (free)
    AVR-ISP 5.6.0.1 (free)
    Bascom AVR 2.0.7.1 (demo)

    Dodałem złącze z wyprowadzonymi sygnałami do programowania mikrokontrolerów w systemie oraz złącze do zasilania programatora z systemu docelowego. Ponadto podstawki pod rezonatory kwarcowe (po 2 piny z podstawki precyzyjnej), co umożliwia ich szybką wymianę w zależności od potrzebnej częstotliwości.

    Rozbudowany programator ISP AVR (zgodny z STK200/300) Rozbudowany programator ISP AVR (zgodny z STK200/300)

    W załączonym archiwum znajdują się: schematy dla Eagle (5.9) i DipTrace (2.3.1), płytka dla DipTrace oraz dokument PDF zawierający: opis podstawek i zworek, schemat ideowy, spis elementów oraz krótki wykaz mikrokontrolerów AVR z podstawowymi informacjami o nich.

    W drugim archiwum znajdują się modele 3D w formacie WRL (dla DipTrace).

    Cool? Ranking DIY
    About Author
    RomanWorkshop
    Level 12  
    Offline 
    RomanWorkshop wrote 137 posts with rating 210. Been with us since 2013 year.
  • Altium Designer Computer Controls
  • #2
    dondu
    Moderator on vacation ...
    Napracowałeś się ... tylko po co się tak męczyć, skoro producenci mikrokontrolerów po to wymyślili programowanie w docelowym układzie (tzw ISP - In System Programming), by nie męczyć się z przekładaniem układów pomiędzy programatorem a, układem docelowym? O układach SMD już tylko wspomnę.

    Wystarczy programator na powszechnym w obecnych czasach USB - za kilkanaście złotych np. USBAsp lub USBTiny.

    Nie obraź się, ale muzeum to dobra miejsce ... tym bardziej, że port LPT :)

    A jeżeli już LPT i chcemy za grosze (dosłownie) to działający poprawnie:

    Rozbudowany programator ISP AVR (zgodny z STK200/300)
    i programujemy w układzie docelowym podłączając pod piny mikrokontrolera.

    BTW.
    Wrzuć początkową grafikę (patrz inne tematy w tym dziale), bo moderator ....
  • Altium Designer Computer Controls
  • #3
    RomanWorkshop
    Level 12  
    Wychodzi na to, że nie jest to programator stricte ISP, a tylko działający na tej zasadzie. Może się przydać, np. gdy mamy nowe/używane mikrokontrolery bez systemu docelowego i chcemy je sprawdzić/odczytać zawartość pamięci. A port LPT... jeszcze całkiem nie wymarł :)
  • #4
    dondu
    Moderator on vacation ...
    RomanWorkshop wrote:
    Może się przydać, np. gdy mamy nowe/używane mikrokontrolery bez systemu docelowego i chcemy je sprawdzić/odczytać zawartość pamięci.

    Każde, urządzenie znajdzie swoje zastosowanie

    RomanWorkshop wrote:
    A port LPT... jeszcze całkiem nie wymarł :)

    Ja także czasami używam w jednym z komputerów przeznaczonym stricte do elektroniki :)
    Dokładnie ten prościutki schemat, który wkleiłem powyżej.

    A tak swoją drogą, to LPT warto wykorzystać na analizator stanów logicznych jeżeli ktoś nie ma.
  • #5
    piotrva
    VIP Meritorious for electroda.pl
    Cóż, poza tym co napisał dondu (tym bardziej, że najprostszy programator USB kupimy za parę złotych):
    + generatory - to się czasem przydaje, jeśli nie mamy programatora HV, szczególnie ze zmianą częstotliwości
    - estetyka wykonania pozostawia wiele do życzenia... Ponadto całość można było upchnąć na mniejszej powierzchni stosując elementy SMD jeśli już
    - kwarc tak odległy od najdalszego układu - niezbyt dobry pomysł
    - podstawki zwykłe... Wkładanie i wyjmowanie wcześniej czy później skończy się uszkodzeniem podstawki i/lub układu

    Można było już zainwestować w jedną podstawkę ZIF 40-pin mix, zrobić jej wszystkie wyprowadzenia i podłączać odpowiednie piny kabelkami (jak w AvrDragon), tym bardziej, ze sam piszesz:
    RomanWorkshop wrote:
    mamy nowe/używane mikrokontrolery bez systemu docelowego i chcemy je sprawdzić/odczytać zawartość pamięci

    Bo niestety szybkość nie kwalifikuje raczej układu jako programator do produkcji seryjnych, a takie zastosowanie, hmm, lepiej było zrobić fusebit doctora lub ewentualnie jego połączenie z jakimś programatorem ISP, jeśli ma być to układ do sprawdzania "nieznanych" procesorów AVR/89S...

    + Za chęci
    - Za funkcjonalność - urządzenie ma raczej ograniczoną przydatność we współczesnym warsztacie elektronika

    Co do LPT zaś - szkoda że na płytach nawet w postaci mini złącz już nie ma tego. Obecnie pracuję nawet nad przejściówką USB<>LPT mogącą służyć jako multiprogramator (ISP, JTAG, ...)
  • #6
    krzycho123
    Level 31  
    Trochę sztuka dla sztuki :D

    LPT niestety wymarł , w nowym sprzęcie brak - trzeba się posiłkować PCI czy kartami expresscard choć i z nimi są często problemy.

    Druga sprawa to czas programowania , przez LPT ładując 256KB będzie naprawdę długo - przez USB w najtańszym programatorku kilka sekund.
  • #9
    kaka0204
    Level 28  
    zackass1 wrote:
    Skoro i tak robiłeś wzór ścieżek na komputerze to czemu nie zastosowałeś metody żelazkowej?

    Zapewne ten sam problem co ja niegdyś. Brak drukarki laserowej.
  • #11
    Alana
    Level 37  
    Szacun za metodę mazakowa!
    Co do urządzenia to skoro jest ono zrobione na LPT to widocznie kolega ma swoje powody do budowy takiego urzadzonka. Np zajęte porty USB w komputerze. Takie wynalazki jak to buduje się pod konkretny warsztat i konkretny komputer!
    Tylko ze jak już budować tego typu zabawkę to może lepiej jest poszukać schematu programatora HVPP [wysokonapięciowego] tak żeby dało się odblokowywać procesory np z wyłączonym SPI albo końcówka reset przestawiona w tryb IO
  • #12
    RomanWorkshop
    Level 12  
    Jest to prototyp wykonany w stylu "starej szkoły" (i nie chodzi tu o technikum), a co do pisaka, to chciałem się popisać :) Oczywiście płytkę można zrobić mniejszą stosując cieńsze ścieżki i termotransfer (pomijam elementy SMD). Po przeprojektowaniu można też zmniejszyć odległość kwarcu od podstawek (już precyzyjnych). Nie zastosowałem jednej podstawki (ZIF), bo wymaga to przestawiania jumperów lub lutowania kabelków. Co do portu LPT, jak ktoś nie ma, to może użyć przejściówki USB-LPT. Jego szybkości niestety nie da się zmienić, ale w amatorskich zastosowaniach nie jest to wielki problem. Estetykę wykonania też można poprawić, funkcjonalność jak dla mnie jest zadowalająca. Stworzenie tego "cuda" miało taki sens, że bez problemu programuje nim AVR'y.

    Faktycznie przydałaby się możliwość zmiany tych fusebitów (RSTDISBL i SPIEN)... może w kolejnym programatorze.
  • #13
    piotrva
    VIP Meritorious for electroda.pl
    Alana wrote:
    Np zajęte porty USB w komputerze.

    A huby USB? Nie prościej tak?
    RomanWorkshop wrote:
    jak ktoś nie ma, to może użyć przejściówki USB-LPT

    To poproszę model na działającą bez problemu w takich zastosowaniach przejściówkę USB2LPT (i jeszcze pod Win7). Poza tym jaki jest sens inwestować w 2 urządzenia (programator LPT + przejściówka USB2LPT), skoro można kupić od razu jedno szybsze urządzenie?

    Skoro Autorowi to wystarcza to to jest najważniejsze, że spełnia swoją rolę...
  • #14
    piwkooo
    Level 23  
    Witam
    Może nie na temat, ale ile masz lat i ile lat zajmujesz się elektroniką, bo to może mieć wpływ na oceny ?
    Druga sprawa to, że sam kiedyś szukałem schematu programatora, bo "chciałem sam" i zrobiłem AVT-5125 kompatybilny z STK500 v.2. Nie twierdzę, że jest idealny, ale przede wszystkim jest na USB i chyba nie ma komputera, który go nie ma ! Wiem, wiem twój komputer ma LPT, ale co jak zmienisz na nowszy model, będziesz robił następny programator, po co ?

    Płytki mazakiem to chyba by mi się już nie chciało robić, to wiercenie, nie ma to jak SMD !

    Pozdrawiam
    Andrzej
  • #15
    11111olo
    Level 42  
    Szacunek że Ci się chciało.

    Samo wykonanie to już tragedia w trzech aktach:
    - brak podstawek precyzyjnych
    - elementy lutowane od spodu
    - fatalna jakość lutowania (za dużo kalafonii)

    Dużo lepszym pomysłem jest zrobienie programatora i adaptera do układów DIL. Przy przejściu na inny programator adapter zostaje.
  • #16
    RomanWorkshop
    Level 12  
    Faktycznie, większość przejściówek USB-LPT nie nadaje się do podłączenia mojego sprzętu. Wasze oceny są jak najbardziej słuszne, bez względu na mój wiek/płeć/status społeczny/staż w elektronice :) Gdybym chciał mieć nowy programator USB, to na pewno bym go nie robił tylko sobie kupił, oczywiście z odpowiednimi adapterami w zależności od potrzeb i świetnym softem. Ale byłby to zwykły, niczym nie wyróżniający się z tłumu programatorek. A tak mam niepowtarzalny, unikalny i wyjątkowy programator, który trudno jest zgubić :) Co do wykonania: dałem takie podstawki jakie miałem pod ręką, a nie planuje masowego programowania AVR'ów więc trochę wytrzymają. Trudno żeby na płytce jednostronnej lutować elementy od góry (do laminatu?) :) Im więcej kalafonii się daje tym lepiej, bo zapobiega ona utlenianiu się lutowanych elementów, przez co cyna bardziej i szybciej do nich przywiera. Osobną sprawą jest usunięcie jej nadmiaru, ale mi ona nie przeszkadza. Ważne, że luty są mocne więc pod tym względem ich jakość jest dobra.
  • #18
    gbd.reg
    Level 21  
    Wybór programatorów USB jest bardzo duży:
    USBAsp
    STK500
    FT-232 w trybie bit bang (musisz mieć wyprowadzone wszystkie sygnały, a nie tylko rx i tx)
    i wiele innych...
    Sens w budowaniu programatora pod LPT w dzisiejszych czasach widzę tylko po to, aby zaprogramować megę w USBAsp własnej roboty.
  • #20
    11111olo
    Level 42  
    Dondu w 2 poście pokazał jaki programator się nada do zaprogramowania mikrokontrolera - jest prosty jak drut i nie wymaga płytki drukowanej.

    Twój to jak dla mnie "sztuka dla sztuki".
  • #21
    RomanWorkshop
    Level 12  
    "11111olo" wiedziałem, że gdzieś widziałem tą ksywkę. Po mieście, województwie i ładnej pani na avatarze wnioskuję, że jesteś tym samym "11111olo" z forum PPA (Link). Ponieważ byłeś kilka razy na mojej stronie (wczoraj o 13:37:47), to może uruchamiałeś na swojej Amidze mój program do sprawdzania modelu procesora 680x0. A jeśli tak, to czy rozpoznaje on twój procesor 68030?

    Dołączone archiwa zawierają poprawioną wersję programatora (dodane złącze ISP, złącze zasilania z systemu docelowego oraz podstawki pod kwarce) wraz z modelami 3D.