Elektroda.pl
Elektroda.pl
X
Arrow Multisolution Day
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Programator AVR USB USBASP z kilkoma ulepszeniami

electroNIXclock 28 Cze 2014 01:28 15963 31
  • Programator AVR USB USBASP z kilkoma ulepszeniami
    Witajcie,
    Tym razem nie będzie żadnego zegara Nixie ;-). Ale temat jest trochę z zegarami electroNIXclock związany.
    Programatorów USB do mikrokontrolerów AVR jest pełno na elektrodzie i w sieci. Jednak żaden z nich nie posiada funkcjonalności i wyglądu przedstawionego poniżej.
    Programator AVR USB USBASP z kilkoma ulepszeniami
    Programator powstał po wielu bojach z poprzednio używanymi programatorami AVRów. Na początku przygody z nimi korzystałem z programatora ISP na LPT. Po zaopatrzeniu się w laptopa bez tego portu, przerzuciłem się na AVRProga po RS232 (poprzez przejściówkę COM/USB). Po drodze był jeszcze "kupny" AVRProg zamknięty w obudowie pod dwa złącza DB9 sklejonej termo klejem... ale szkoda o nim więcej pisać - porażka. W końcu pojawił się genialny USBASP. Jest szybki, tani, open sourcowy, na USB, popularny, programuje wszystkie AVR 8-bit, do tego nie ma problemów z inicjalizacją w systemie.
    To właśnie te cechy sprawiły, że poniższy programator oparty jest o USBASP. Dodane zostały natomiast cechy, których brak zaobserwowałem podczas przygody z innymi programatorami:
    -nieduża, w pełni zamknięta obudowa. Wcześniej, w programatorach bez obudowy zdarzało się pogiąć ich element lub nieopatrznie dotknąć materiału przewodzącego i zrobić chwilowe zwarcie
    -opis wszystkich funkcji na panelu czołowym. Wcześniej często musiałem sięgać do dokumentacji programatora, żeby przypomnieć sobie którą zworkę nastawić, żeby włączyć lub wyłączyć daną funkcję. Grawerka laserowa na laminacie jest praktycznie niezniszczalna w przeciwieństwie do naklejek. Estetyka też jest na wysokim poziomie - gruby laminat skutecznie maskuje śrubki.
    -dip-switche konfiguracyjne, zamiast wypadających i gubiących się zworek
    -zintegrowany kabel - czasami zdarzyło mi się zapomnieć o kabelku USB i było nerwowe poszukiwanie
    -reset na pokładzie (target reset) - w moim odczuciu gotowa aplikacja nie potrzebuje przycisku resetu, za to jest on bardzo pomocny, w momencie pisania i debugowania oprogramowania, dlatego został on przeniesiony na programator
    -linie USB są zabezpieczone przed ESD za pomocą dedykowanego układu z diodami TVS




    -zintegrowane złącze 10pin i 6pin - stosowanie przejściówek lub krosowanie kabelków jest bardzo męczące, dlatego programator jest "fabrycznie" wyposażony w dwa złącza do programowania: 10pin (standard Kanda) i 6pin (standard Atmel). W ten sposób nie trzeba robić rzeźby za każdym razem gdy zmieniamy standard złącza lub posiadać przejściówkę.
    Programator AVR USB USBASP z kilkoma ulepszeniami Programator AVR USB USBASP z kilkoma ulepszeniami Programator AVR USB USBASP z kilkoma ulepszeniami Programator AVR USB USBASP z kilkoma ulepszeniami
    Pozostała funkcjonalność jest zgodna USBASP. Najnowsza wersja firmware działa z Win8 i Win7 i nie ma problemów z podpisywaniem sterowników itp. Domyślnie USBASP działa z AVRDude. Przypominam też, że działa on z wieloma nakładkami graficznymi. Moimi ulubionymi są: Khazama (z uwagi na łatwość programowania fusów i locków) i avrdude-GUI (z uwagi na bogactwo obsługiwanych mikrokontrolerów).
    Schemat nie odbiega znacznie od oryginału, dodałem jedynie wspomniany przycisk reset i zabezpieczenie ESD.
    Programator AVR USB USBASP z kilkoma ulepszeniami Programator AVR USB USBASP z kilkoma ulepszeniami
    Płytka drukowana dwustronna zaprojektowana od podstaw, z opisem wykonana w profesjonalnym zakładzie. Obudowa typu Maszczyk, model KM-10. Etykieta wypalona laserem, na laminacie do tego przeznaczonym. Na odwrocie programatora, również wypalone laserem, dane znamionowe.
    Programator AVR USB USBASP z kilkoma ulepszeniami
    W załączniku firmware, schemat, wzór etykiety i matryca pcb dla chętnych samodzielnego wykonania pcb.


    Fajne!
  • Arrow Multisolution Day
  • #2 28 Cze 2014 02:11
    george2002

    Poziom 19  

    Bardzo ładnie wyszedł programator, jedyne co to widzę dużo zabezpieczeń polimerami ale brak zabezpieczeń diodami np sygnałów miso miso sck reset z programatora :)

  • #3 28 Cze 2014 09:01
    I_TOMEK_I
    Poziom 13  

    Programator bardzo estetycznie zrobiony i dobry pomysł z zdublowaniem złącz z komputera, czasem się przydaje. Z takich praktycznych uwag: położyłeś nacisk na zabezpieczenia od strony USB. Moim zdaniem "od tej strony" jest małe prawdopodobieństwo kłopotów, słyszałem tylko ( bo ja takich nie mam) o problemach z poziomami sygnałów z USB, które można zażegnać zmniejszeniem wartości napięcia Zenera diod podłączonych do szyn danych USB z 3,6V na 3,3V. Natomiast, nie wiem czy bawisz się w bardziej zaawansowane klocki które można zasilać już tylko 3,3V. Wtedy programatorem "pięcio-voltowym" uszkodzisz taki układ. Genialnie prosto można to rozwiązać za pomocą układu buforującego sygnały idące do programowanego układu. W tedy zasilanie tego bufora bierzesz z mikrokontrolera który programujesz. Możesz w ten sposób zasilając swój programator napięciem 5V, programować układ który ma max. zasilanie np. 3,3V i nic nie uszkodzisz .... i jeszcze go zaprogramujesz :D Ja przerobiłem kiedyś w ten sposób swój programator i doskonale to się sprawdza w olbrzymiej większości przypadków, zakładając że mikrokontroler programowany nie ma jakichś cudów podłączonych pod wyprowadzenia służące do zaprogramowania go. Jak chcesz to mogę Ci narysować to co u mnie się sprawdziło .....

  • Arrow Multisolution Day
  • #4 28 Cze 2014 09:03
    tmf
    Moderator Mikrokontrolery Projektowanie

    Wykonanie fajne, pytanie czy obecnie USBasp ma sens? Programator + debugger do wszystkich AVR8, AVR32 i ARM można kupić za $32, pracujący z wszelkimi napięciami, w pełni wspierany przez Atmel Studio, a przede wszystkim dający możliwość debugowania w układzie. Ile kosztuje wykonanie twojego programatora?
    Poza tym dałeś zabezpieczenie ESD od strony USB, nie wiem czy jest ono potrzebne. Natomiast nie ma żadnego zabezpieczenia od strony interfejsu ISP, a tu by się jakieś przydało. Do tak wypasionej płytki warto też byłoby dodać translator poziomów - kosztuje to grosze, a programator bez problemu pracowałby z układami zasilanymi dowolnym napięciem. Tak możesz pracować w praktyce tylko z wychodzącymi z użycia układami zasilanymi 5V.

  • #5 28 Cze 2014 09:31
    Top Gun
    Poziom 20  

    I_TOMEK_I napisał:
    Jak chcesz to mogę Ci narysować to co u mnie się sprawdziło .....


    Nawet jeśli autor programatora nie chce to ja poproszę :)

  • #6 28 Cze 2014 10:10
    Steryd3
    Poziom 31  

    tmf napisał:
    Wykonanie fajne, pytanie czy obecnie USBasp ma sens? Programator + debugger do wszystkich AVR8, AVR32 i ARM można kupić za $32, pracujący z wszelkimi napięciami, w pełni wspierany przez Atmel Studio, a przede wszystkim dający możliwość debugowania w układzie.

    Tu muszę się zgodzić z kolegą w całej rozciągłości jego wypowiedzi. Po co robić programator gdy za podobne pieniądze(wliczając czas wykonania który da się na pieniądze przeliczyć) można mieć oryginalny produkt bijący na głowę tego typu konstrukcje.

    Ogólnie ładnie i starannie wykonany programator z pewnymi udogodnieniami. Fajnie to wygląda i właściwie tyle. Trudno to nawet nazwać projektem -to tylko kolejne wykonanie nieco zmodyfikowanego czyjegoś projektu. Pisanie, że się laserowo coś tam opisało i że się to nie zaciera ... wszystko oczywista prawda ale co to wnosi. Jak bym miał sprzęt do tego też bym grawerował ale nie mam i muszę nakleić wydruk z drukarki.
    Ja kiedyś też skorzystałem ze wsadów do mikrokontrolera z elektrody i wykonałem sobie tester tranzystorów projektując do niego swoją płytkę...ale go nie publikuje bo moje działania nic do tej koncepcji nie wniosły-nie ja opracowałem schemat i nie ja pisałem firmware. Nawet wkurza mnie, że nie działa on dokładnie tak jak ja bym chciał ale nie na tyle by brać się za mozolną pracę pisania swojego wsadu.

    Z drugiej strony fajnie, że ludzie coś robią, coś publikują bo coś się na forum dzieje ale jak otwieram 10 raz ten sam programator w innej obudowie z dipswichem zamiast jumperków...

    Przepraszam autora jeżeli poczuł się urażony - na pewno nie chcę mu skrzydeł podcinać.

  • #7 28 Cze 2014 10:23
    szymon122
    Poziom 37  

    Układ bardzo ciekawy ale to ze względu na jakość wykonania, praktyczną budowę. Co do ochrony ESD to również mi się wydaje, że od strony usb nie ma zbytnio sensu, co innego z drugiej strony - programowanego układu.
    Za każdym razem gdy widzę taki programator to się zastanawiam czy jest sens pakować tam taki wielki układ jakim jest AtMega8? W programatorze vusbtiny zastosowano attiny45/85 który jest dużo tańszym i mniejszym mikrokontrolerem oraz jedynie 5 dodatkowych elementów przez co cała płytka programatora praktycznie nie wystaje ze złącza usb.

  • #8 28 Cze 2014 10:51
    mkpl
    Poziom 37  

    Fajny programator ;) trochę duże te smd 1206 wystarczyły by 0805. Przyczepię się troche zabezpieczeń usb. Jeśli dajesz diody ESD to nie ma potrzeby dawania bezpiecznika polimerowego w tor danych bo nigdy nie zadziałają (są za wolne). Natomiast bezpiecznik w zasilaniu 500mA jest za duży. Polimer aby zadziałał potrzebuje wielokrotnie większego prądu. Taki 500mA zadziała w czasie poniżej 1s dopiero gdzieś przy 750mA więc myślę, że taki 100 ~ 150mA byłby ok.

    Przydał by się też bufor wyjściowy, który umożliwiał by programowanie AVR z różnym napięciem zasilania. W chwili obecnej programując procesor 3v3 to różnica napięcia zamknie się na rezystancji dynamicznej diody obejściowej na nodze procesora a to może być niebezpieczne.

    Tak na przyszłość warto atmegę wrzucić na zasilanie 3v3 i nie potrzeba diod zenera na lini usb. One powodują wiele problemów a wystarczy głupi stabilizator LE33 lub jakiś tani LP29xx w obudowie SOT23.

    Tak czy siak gratuluję. Konstrukcja wykonana bardzo estetycznie i podnosi poziom elektrody :)

  • #9 28 Cze 2014 12:17
    I_TOMEK_I
    Poziom 13  

    Top Gun napisał:
    Nawet jeśli autor programatora nie chce to ja poproszę :)


    Podłączyłem tak :

    Programator AVR USB USBASP z kilkoma ulepszeniami

    Zasilanie układu buforującego przychodzi od układu który programujemy, więc musi tam być włączone zasilanie w momencie programowania.
    Bufor załącza się automatycznie sygnałem RST ( zanegowanym ) i dzięki temu
    samego algorytmu programu nie trzeba przerabiać. Ten od Fishla chodzi ok.
    Ja zastosowałem 74HC125 bo taki akurat miałem, ale pewnie jakby pomyśleć mogą być inne, byleby mogły pracować od 3 V wzwyż i były wystarczająco szybkie.

  • #10 28 Cze 2014 12:31
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zastosowanie układu z serii HC jest błędem - max napięcie wejściowe dla tych układów to Vcc - w tym przypadku np. 3.3 V, podczas, gdy ATMega zasilana z 5 V da praktycznie 5 V co może uszkodzić układ. Poprawnie byłoby zastosować układy z rodziny LVC lub LVCX, dla których maksymalne napięcie wejściowe niezależnie od nap. zasilającego wynosi 5,5 V.

  • #11 28 Cze 2014 12:48
    I_TOMEK_I
    Poziom 13  

    tmf napisał:
    Wykonanie fajne, pytanie czy obecnie USBasp ma sens? Programator + debugger do wszystkich AVR8, AVR32 i ARM można kupić za $32, pracujący z wszelkimi napięciami, w pełni wspierany przez Atmel Studio, a przede wszystkim dający możliwość debugowania w układzie. Ile kosztuje wykonanie twojego programatora? ......
    .


    Oczywiście masz rację, ale wtedy jaki sens ma jakiekolwiek hobby ?
    Wszystko można kupić od Chińczyków z 5 razy taniej niż w naszej skubiącej nam skutecznie portfele Unii Europejskiej. Ale wtedy nie ma frajdy że samemu zrobiliśmy.
    Poza tym przy takiej "dłubaninie" czegoś tam praktycznego można się nauczyć ....
    i wykorzystać wiedzę zdobytą przy studiowaniu bardzo fajnej moim zdaniem książki:
    "Język C dla mikrokontrolerów AVR - od podstaw do zaawansowanych aplikacji" :D :D :D

    Dodano po 8 [minuty]:

    tmf napisał:
    Zastosowanie układu z serii HC jest błędem - max napięcie wejściowe dla tych układów to Vcc - w tym przypadku np. 3.3 V, podczas, gdy ATMega zasilana z 5 V da praktycznie 5 V co może uszkodzić układ. Poprawnie byłoby zastosować układy z rodziny LVC lub LVCX, dla których maksymalne napięcie wejściowe niezależnie od nap. zasilającego wynosi 5,5 V.


    Programator używam ze 3 lata, programowałem nim wiele układów i zasilanych 3,3V i 5V ... Programuje się bez błędów i problemów. Szczerze mówiąc zrobiłem go na zasadzie "prototypa na pająku" i tak już zostało. Ale zaraz poszukam z ciekawości noty katalogowej ......

  • #12 28 Cze 2014 13:21
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zasadniczo masz rację, ale... programator to tylko narzędzie. Jeśli chcesz odkręcić nakrętkę to bierzesz klucz a nie studiujesz metalurgi wcelu odlania własnego, prawda?:) Oczywiście przykład przejaskrawiony, sam pierwszy programator na lpt zrobiłem sobie sam. Niemniej USBasp w pokazanej wersji ma bardzo poważne ograniczenia, a największym ograniczeniem (USBasp) jest brak możliwości debuggowania, co IMHO jest niezwykle przydatne. Ale nawet jeśli ktoś uważa, że to niepotrzebne to i tak lepiej byłoby się pokusić o wykonanie klona AVRISP MkII - jest szybszy, działa w Atmel Studio, ma translator poziomów i programuje prawie wszystkie AVR8. Skompilkowanie układu jest podobne - procesor AVR (tyle, że zazwyczaj ze sprzętowym USB) + scalak konwertera poziomów. Oczywiście moje uwagi dotyczą samej konstrukcji IMHO przestarzałego USBasp, który był fajny w czasach kiedy oryginalne programatory kosztowały krocie. Natomiast podkreślam, że jakość wykonania pokazanego projektu jest bardzo wysoka i przyjemnie się go ogląda.
    Co do zastosowanego translatora HC125 - być może dla 3,3 V jeszcze działa, niemniej jest to poza specyfikacją. Oczywiście sztukę elektroniki można uprawiać na różne sposoby - na zasadzie mój dziadek tak robił i było dobrze, można też mieć podejście bardziej racjonalne - czyli czytać noty i starać się nie przekraczać zawartych tam parametrów. Oczywiście znowu w elektronice amatorskiej, sztywne trzymanie się regół nie zawsze jest potrzebne (aczkolwiek zawsze jest to proszenie się o kłopoty), niemniej jeśli można wybrać zalecane rozwiązanie lub naciągane rozwiązanie to zawsze lepiej wybrać zalecane. Tym bardziej, że w pokazanym schemacie wystarczy wymienić 74HC125 na 74LVC125 (lub też zastosować dowolny inny układ mający 4 bufory, lub ich ekwiwalenty).

  • #13 28 Cze 2014 13:37
    MasMas
    Poziom 16  

    Odnośnie USBasp i Atmel AVR Studio - to nie ma problemu, bo tu parę osób mówi, że jakieś tam inne współpracują.

    Sam mam USBasp i korzystam z AVRStudio - pod crtl+F8 mam kompilacje, crtl+F9 i się układ programuje - wystarczy dodać jedną komendę w AVRS. i bez problemu można używać USBasp w wygodny sposów, AVRS nawet wyświetla "u siebie w konsoli" wyjście z avrdude.

  • #14 28 Cze 2014 13:52
    tmf
    Moderator Mikrokontrolery Projektowanie

    To prawda, nawet napisałem jak to zrobić w przypadku nowszego Atmel Studio:
    http://mikrokontrolery.blogspot.com/2011/03/Atmel-Studio-Programator-USBasp-USBTiny.html
    Niemniej jest to tylko proteza, o ile programowanie działa, to bezpośrednio nie skorzystasz ani z możliwości graficznej konfiguracji fuse i lockbitów, a także z możliwości wykorzystania plików produkcyjnych (elf).

  • #15 28 Cze 2014 14:24
    Mateusz-me-1990
    Poziom 15  

    Niestety takie umiejscowienie zabezpieczenia ESD jest bezsensowne. Powinno być umieszczone dokładnie tak by sygnał z USB przechodził przez nie, a dopiero potem szedł do procesora. W takiej konfiguracji skuteczność jest ograniczona. Jakikolwiek strzał w wtyczkę zostanie osłabiony z racji obecności samego kabla, więc co nieco to ratuje sytuację. To co jeszcze wymaga uwagi to co nieco więcej uwagi do prowadzenia par różnicowych, bo tu wszystkie zasady są złamane... Co prawda nie jest to USB 3.0;) i długość połączenia jest mała, ale dobre nawyki warto stosować nawet w takich sytuacjach.

  • #16 28 Cze 2014 15:15
    I_TOMEK_I
    Poziom 13  

    Odnośnie serii HC sprawdziłem dla pewności i układy serii HC to młodsi bracia "z czasów TTLa", więc uszkodzić ich napięciem 5V z USB nie uszkodzę. Kiedy składałem programator technologia 3V była znacznie mniej popularna jeszcze i nie jestem pewien czy LVC były ogólnie dostępne i tanie. Natomiast rzeczywiście na dzień dzisiejszy kiedy 74125LVC jest do kupienia bez problemu, i zaprojektowany jest pod kątem pracy z logiką i 3 i 5 Voltową jak najbardziej można go wstawić za tego HC. Niemniej jednak HC który wlutowałem dawno, też doskonale się w tej funkcji sprawdził chociaż producent przewiduje jego poprawną pracę zasadniczo przy 5V. Jeśli chodzi o możliwość asemblowania i analizy kodu jako "stara wyga i zawodowiec" to dla Ciebie rzecz podstawowa, ale jak ktoś zaczyna przygodę z programowaniem to asemblowanie kodu na początku dla niego będzie "czarną magią", niech sobie zrobi najprostszy programator żeby się nie zniechęcić a potem za jakiś czas wrócimy do przeglądania kodu i jego analizy. Sam też dam przykład z życia: .... za dawnych dobrych czasów używałem rosyjski ( jak na owe czasy wypasiony ) 2 - kanałowy oscyloskop. Kiedy kupiłem cyfrowy jeszcze przez pół roku i tak posiłkowałem się analogiem, bo cyfrowy miał tyle funkcji, że czasem oglądałem pomiary i zastanawiałem się czy dobrze pomierzyłem a następnie włączałem "prostego" analoga żeby się upewnić. Czasem więc lepiej zaczynać od prostszych narzędzi ale świadomie i skutecznie ich używać, jak kupić coś wypasionego a potem się gubić w użytkowaniu i nie wiedzieć czy mamy sensowne pomiary. AVRISP MKII ma osiągi i możliwości rzędu USBASP ale USBASP łatwiej i taniej zbudować i tutaj pewnie kryje się sekret jego popularności. Co do ICE II i jego poprzedników to jednak są dość złożone więc trudniej je zbudować i chyba wysokonapięciowego programowania nie mają. 32$ to rzeczywiście nie aż tak dużo, ale jak zobaczę, że ktoś za tyle sprzedaje to uwierzę, bo na razie nie widziałem i nie słyszałem.

  • #17 28 Cze 2014 16:15
    tmf
    Moderator Mikrokontrolery Projektowanie

    Co do HC to problem leży w czymś innym. Wg noty maksymalne dopuszczalne napięcie na pinie układu to Vcc, jeśli układ zasilasz z układu programowanego zasilanego np. napięciem 3,3V, to max dopuszczalne napięcie na wejścu HC też wynosi 3,3V. Problem w tym, że ATMega z USBAsp daje na wyjściu 5V bo tak jest zasilana. Działa - fajnie, jednak trzeba mieć na uwadze, że działać nie musi.
    Co do AVRISPMkII - jego stopień skomplikowana jest identyczny do USBAsp - to AVR + konwerter poziomów, różnica praktycznie tylko we wsadzie. AVR ICE można kupić za $32 w sklepie Atmela od ręki, jest też np. w Seguro - za 169 zł - prawie dwukrotnie więcej ale to zawdzięczamy naszemu cudownemu państwu, podatkom i "wspieraniu" innowacyjności.
    Co do debugowania w układzie - IMHO to jest właśnie szczególnie przydatne dla początkujących. Ktoś bardziej zaawansowany sobie rzuci okiem na kod i w wielu przypadkach widzi, gdzie jest błąd. Początkujący może go wykonać step by step i sprawdzić kiedy jego dzialanie rozmija się z oczekiwaniami.

  • #18 28 Cze 2014 17:44
    I_TOMEK_I
    Poziom 13  

    Przyznam szczerze, że nie bardzo rozumiem dlaczego HC miałby się uszkodzić przy zasilaniu ATmegi z portu USB 5V przy założeniu, że układ buforujący zasilany jest 3,3V z innego zasilacza, zakładając wspólną masę. HC według producenta "przetrzyma" do +7V. Zakładając nawet awarię zasilania z portu USB, specyfika układów utrzymywania 5V i ograniczania prądu do założonej wartości w porcie, charakteryzuje się tym że w przypadku awarii zasilanie do portu jest odłączane. Na 99,9% przypadków tego typu awarii napięcie zasilające nie wzrasta a jest wyłączane, więc generalnie ATmega jest bezpieczna. Zwarcie nawet wszystkich wejść buforów 74125hc awarii nie spowoduje ... Moim skromnym zdaniem problem może być tylko wtedy kiedy kupimy egzemplarz który przy 3V zasilania odmówi współpracy .... :D Natomiast jeśli chodzi o testowanie poprawności działania programów i ich uruchamiania, przyglądałem się wiele razy ludziom, którzy zaczynają zabawy z mikrokontrolerami. Jak im się od razu nie pokaże czy wręcz nie wymusi obowiązku używania np. symulatora, opcji debugowania czy symulowania, to te opcje będą jednymi z ostatnich opcji do jakich się dokopią w AVR-STUDIO. Ponieważ w Polsce państwo niestety zabiera nam większość dochodu dla większości hobbystów oryginalne produkty Atmela są poza zasięgiem. Prosty, tani i niezawodny programator oparty na wsadzie Fishla zrobił furorę, czemu trudno się dziwić.

  • #19 28 Cze 2014 18:11
    tmf
    Moderator Mikrokontrolery Projektowanie

    Źle czytasz notę układu. +7V to limiting value dla Vcc, nie dla wejścia bramki. Input voltage dla wejścia to Vcc, w praktyce ze względu na charakterystykę diody zabezpieczającej będzie to Vcc+0,5V. Czyli dla zasilania układu z 3,3V absolutne max na jego wejściu to 3,8V, podczas, gdy ATMega zasilana z 5V daje w stanie wysokim prawie 5V. W praktyce układ zapewne przeżywa, gdyz na skutek rezystancji drenu bufora wyjściowego ATMega napięcie zaczyna spadać i pewnie się stabilizuje w okolicach 3,8V. Niemniej wiąże się to ciągle z ryzykiem uszkodzenia bufora HC125, ryzykiem uszkodzenia ATMega na skutek nadmiernego prądu wyjścia, a z pewnością ze znacznie zwiększonym poborem prądu przez cały układ.
    Co do używania debugera/symulatora to zapewne masz rację. Ale IMHO przyczyną nie jest złożoność tych narzędzi tylko niewiedza, że one w ogóle istnieją. A skoro ktoś nie wie, że coś istnieje to z tego nie korzysta.
    BTW, jeśli te $32 + koszty wysyłki to za dużo to warto kupić ATmega168 Xplained Mini - kosztuje $8 lub ok. 30 zł, ma w sobie dwa procki (ATMega168 i ATMega32U2), przy czym ten drugi działa jako programator/debugger tego pierwszego. Nie da się tym zaprogramować innych AVRów, lecz za tą cenę jest to świetny układ dla początkującego.

  • #20 28 Cze 2014 19:27
    I_TOMEK_I
    Poziom 13  

    Mam dziś gości i nie mogę w tej chwili za bardzo się zaangażować, więc tylko krótko. Scalak jest wykonany w technologii HC, więc wygląda na to, że właśnie przy jedynce logicznej o napięciu bliskim zasilaniu będzie pracował w założonych przez producenta warunkach.

    Programator AVR USB USBASP z kilkoma ulepszeniami

    Potem się odezwę ...bo mnie z Rodziny wypiszą :D sorka ...

  • #21 28 Cze 2014 19:40
    tronics
    Poziom 36  

    No to ja jeszcze raz napiszę o co chodzi tmf. Jeśli programujesz układ 3.3V to zasilasz bufor z 3.3V. Tyle wynosi właśnie Vcc układu w tej sytuacji, dla której to wielkości sygnał rzędu 5V na Vin jest przekroczeniem tego co jest w nocie katalogowej. A właśnie 5V podajesz od strony atmegi w programatorze.

  • #22 28 Cze 2014 22:22
    mkpl
    Poziom 37  

    Panowie... kłócicie się a widział z was ktoś budowę takiej bramki? Cały myk z tym zasilaniem opiera się o diody obejściowe na wejściu. Gdy napięcie na wejściu jest większe od VCC + UF diody zaczyna ona przewodzić i zbija nadmiar napięcia do zasilania. Wystarczy wrzucić rezystor w linie sygnałową powiedzmy 10k i prąd wejściowy wyniesie Iwe + 1.7mA na diodzie obejściowej czyli w miarę znośne.

  • #23 28 Cze 2014 22:27
    I_TOMEK_I
    Poziom 13  

    my się nie kłócimy :D gadamy sobie ... a ma może ktoś schemat takiego inwertera żeby zobaczyć jak jest zbudowane wejście i przeanalizować ? mam tylko schemat blokowy wnętrza całego 74HC125 niestety

  • #24 29 Cze 2014 00:22
    adambehnke
    Poziom 24  

    No to może z innej strony.Skoro UsbAsp jest już przestarzały (choć ja go wciąż używam) to jaki programator polecacie do programowania AVR. Fakt że idealnie by była aby można było przy okazji obsłużyć XMEGA oraz ARM .

  • #25 29 Cze 2014 11:00
    krzycho123
    Poziom 31  

    Najbardziej uniwersalny dla Atmeli jest aktualnie ICE , wersja PCBA do kupienia za niewiele ponad 100zł .

    Dziwne tylko jest to że Atmel zdecydował się na zastosowanie gniazd o rastrze 1,27 jednak można i sobie z tym poradzić robiąć adapter.

  • #26 29 Cze 2014 11:06
    siejacy_zamet
    Poziom 12  

    Mam kilka uwag do schematu:

    1. Do linii RESET dodałbym kondensator 10nF..47nF dla eliminacji drgań zestyków przycisku.
    2. R18 (2R) uważam za zupełnie niepotrzebny - po co ograniczać prąd, który ma być odcięty bezpiecznikiem? Żeby wydłużyć czas, po którym zadziała bezpiecznik?
    3. Bezpieczniki F2 i F3 uważam za zbędne wobec obecności R1 i R2 (68R), które ograniczą prąd w razie jakiegoś niedobrego zdarzenia.
    4. D1 i D2 (Zener 3V6) moim zdaniem są niepotrzebne, ponieważ "nadmiar" napięcia z ATmegi (zasilanej 5V) odłoży się na rezystorach R1 i R2.
    5. Bardzo pochwalam użycie D3 (TVS).

    Ogólnie - według mnie, należy zastanowić się co i przed czym zabezpieczamy. Czy laptopa przed programatorem, czy programator przed laptopem i ESD?

  • #27 29 Cze 2014 11:19
    tmf
    Moderator Mikrokontrolery Projektowanie

    adambehnke napisał:
    No to może z innej strony.Skoro UsbAsp jest już przestarzały (choć ja go wciąż używam) to jaki programator polecacie do programowania AVR. Fakt że idealnie by była aby można było przy okazji obsłużyć XMEGA oraz ARM .


    Jeśli i AVR i ARM to tak jak kolega Krzycho pisze Atmel ICE. Cena bardzo sensowna jak za programator i debugger do wszystkiego. Raster 1,27mm nie przeszkadza, pełna wersja zawiera przejściówkę na 2,54mm, z drugiej strony w nowych projektach warto używać listwy 1,27mm, po co złącze ma zajmować tyle miejsca?
    Natomiast jeśli tylko do AVR8 i AVR32 i tylko programator to AVRISPMkII - oczywiście nie oryginał, który ma cenę z sufitu, lecz własnoręczny klon - cena jak za USBasp - to tylko procesor + translator poziomów - programuje przez ISP i PDI, czyli XMEGA obsłuży i działa bezpośrednio w Atmel Studio.
    Można też inaczej - kupić moduły Atmela - np. ATmega168 Xplained Mini lub moduły z ARM SAM D20/D21, które mają rozsądne ceny (30-50 zł) i oprócz procka zawierają wbudowany programator/debugger. Jako tani startup idealne.

  • #28 29 Cze 2014 19:40
    electroNIXclock
    Poziom 11  

    Celem projektu było możliwe najlepsze usprawnienie USBASP, a nie budowa programatora/debuggera dorównującego AtICE lub podobnemu. Patrząc na podobne konstrukcje dostępne w handlu i w sieci, myślę, że się to udało - zarówno pod względem jakościowym jak i funkcjonalnym. USBAsp jest przeznaczony raczej dla hobbystów, choć zdarzało mi się wykonywać za jego pomocą projekty komercyjne.

    siejacy_zamet napisał:
    Mam kilka uwag do schematu:
    1. Do linii RESET dodałbym kondensator 10nF..47nF dla eliminacji drgań zestyków przycisku.

    Jest C2 100n.
    siejacy_zamet napisał:
    2. R18 (2R) uważam za zupełnie niepotrzebny - po co ograniczać prąd, który ma być odcięty bezpiecznikiem? Żeby wydłużyć czas, po którym zadziała bezpiecznik?

    Zasilając układy programowane z USB (przez programator), które nie są do tego przystosowane - mające dużo pojemności na zasilaniu i pobierające większy prąd początkowy (inrush), bezpiecznik F1 reagował zbyt szybko, a bez bezpiecznika F1 błąd wyrzucał system. W konsekwencji były problemy z inicjalizacją programatora w systemie.
    Dokładając szeregowy rezystor R18 (wstępnego ładowania) problemy zniknęły.
    I_TOMEK_I napisał:
    Natomiast, nie wiem czy bawisz się w bardziej zaawansowane klocki które można zasilać już tylko 3,3V. Wtedy programatorem "pięcio-voltowym" uszkodzisz taki układ. Genialnie prosto można to rozwiązać za pomocą układu buforującego sygnały idące do programowanego układu.

    Maksymalnie 3,3V zasilania mają chyba tylko mikrokontrolery serii xmega. Pozostałe mają szerszy zakres napięć zasilania. Z pewnością chodzi Ci raczej o ewentualne peryferia podpięte pod linie ISP chodzące tylko na 3,3V (karty SD, itp.). Najprostszym sposobem będzie dodanie szeregowych rezystorów ~100R na linie MOSI, MISO, SCK.
    tmf napisał:
    Programator + debugger do wszystkich AVR8, AVR32 i ARM można kupić za $32, pracujący z wszelkimi napięciami, w pełni wspierany przez Atmel Studio, a przede wszystkim dający możliwość debugowania w układzie. Ile kosztuje wykonanie twojego programatora?

    Oczywiście najprościej jest kupić od chińczyka. Takim zdaniem można podważyć każdy projekt DIY!
    Co do kosztów wykonania odsyłam do www.tme.pl (z uwagi na wahające się ceny komponentów). Płytka: nie więcej jak 10pln.
    Steryd3 napisał:
    Pisanie, że się laserowo coś tam opisało i że się to nie zaciera ... wszystko oczywista prawda ale co to wnosi.

    Wnosi to, że jest XXI wiek i wypalanie laserowe to nic nadzwyczajnego i niedostępnego. Patrząc na sprzedaż laserów w Polsce, to pewnie jest ich po kilkadziesiąt w każdym mieście. Wystarczy znaleźć miejsce i prawdopodobnie tej wielkości etykieta będzie kosztowała 5-10zł (głownie koszt operatora) lub nawet za "dziękuję" zrobią.
    Steryd3 napisał:
    Przepraszam autora jeżeli poczuł się urażony - na pewno nie chcę mu skrzydeł podcinać.

    Nie poczuł - pełen relaks.

  • #29 30 Cze 2014 18:41
    tesla97
    Poziom 12  

    I_TOMEK_I napisał:
    Genialnie prosto można to rozwiązać za pomocą układu buforującego sygnały idące do programowanego układu (...) Ja przerobiłem kiedyś w ten sposób swój programator...

    Stosując bufory w USBASP psujemy całe założenia twórcy tego programatora. Nie możemy wgrać nowego firmware. W przypadku zastosowanie buforów atmege trzeba zaprogramować i wlutować w pytkę. Nie mamy możliwośći zaprogramowania jej ISP.

    Mam pytanie to autora. Czy złącze atmel (to 6 pin) nie powinno być proste tzn. w jednym rzędzie 6 (tych "gniazdek goldpinowych")?

  • #30 30 Cze 2014 19:00
    electroNIXclock
    Poziom 11  

    tesla97 napisał:
    Mam pytanie to autora. Czy złącze atmel (to 6 pin) nie powinno być proste tzn. w jednym rzędzie 6 (tych "gniazdek goldpinowych")?

    Nie, rekomendowane złącze przez Atmela jest 2x3 piny.
    Wyjaśnione jest to na stronie drugiej w nocie aplikacyjnej Atmela AVR910:In-system Programming
    www.atmel.com/images/doc0943.pdf