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

Klon AVR JTAG ICE, wersja USB

ciapciok 25 Oct 2009 20:51 21325 18
Altium Designer Computer Controls
  • Klon AVR JTAG ICE, wersja USB

    W ostatnim czasie przestałem pisać programy typu mrugająca dioda i obsługa przycisków i zabrałem się za coś poważniejszego. Postanowiłem zbudować prosty zegar. Po kilkuset linijkach kodu, okazało się, że zegar nie jest już tak prosty, bo pojawił się w nim: obsługa LCD, RTC, PWM, timer w trybie CTC, zewnetrzne przerwania, a w drodze było 1wire. Właśnie w tym momencie w programie pojawił się olbrzymi bug, który powodował zawieszanie się procka. Zacząłem interesować się na poważnie debuggowanie i odkryłem projekt debuggera sprzętowego. Z racji, że cena wykonania oscylowała w okolicach 20zł, przestałem zaprzątać sobie głowę debuggowanie software'owym.

    Projekt nie jest mojego autorstwa, gotowca, którego przerobiłem do własnych potrzeb znalazłem w sieci. Różnica taka, że mój jest na USB, co osiągnąłem poprzez usunięcie z oryginalnego projektu konwertera MAX232 i zastąpienie go gotowym konwerterem USB->RS. Konwerter, który zastosowałem, pochodzi z kabelka do tel. komórkowego, który zakupiłem na aukcja za śmieszne 1zł :wink: Konwerter ten, to Prolific PL2303, w systemie widziany jako pełnoprawny port szeregowy.

    Link do strony projektu: http://www.m2uu.com/elektronika:avrjtag

    Lista obsługiwanych procesorów nie jest imponująca, głównie z tego powodu, że procesor musi mieć JTAG. Dlatego popularne mega8 i tiny2313 odpadają na starcie. Nie jest to wielka wada, przynajmniej dla mnie, bo i tak wszystkie projekty robię na mega32, a później przenoszę na mniejsze procki - jedno z dobrodziejstw języka C :wink:

    Lista obłsugiwanych układów:
    Quote:
    ATmega128, ATmega128L, AT90CAN128
    ATmega16, ATmega16L
    ATmega162, ATmega162L, ATmega162V
    ATmega165, ATmega165V
    ATmega169, ATmega169L, ATmega169V
    ATmega32, ATmega32L
    ATmega323, ATmega323L
    ATmega64, ATmega64L


    Zrezygnowałem ze złącza DC-jack, programator i programowany układ można zasilać z portu USB, zabezpieczone przez bezpiecznik polimerowy, na prąd o wartości 0,2A. Mieli w sklepie bezpiecznik 0,5A, ale nie byłem pewny, który będzie bardziej selektywny - czy ten w płycie głównej, czy w programatorze. To tylo dmuchanie na zimne, w moim laptopie i tak są polimerowe - nie raz zwarcie zrobiłem i nic się nie stało :wink: Drugi sposób zasilania, to przez złącze JTAG, wtedy cały programator jest zasilany przez to złącze, prócz konwertera - on jest zasilany z USB. Wybór zasilania zworką. Wybieranie sposóbu zasilania jest istotne, jeśli debuggowany układ jest zasilany innym napięciem niż 5V lub debuggowany układ wymaga większej wydajności prądowej niż 0,2A. Wprawny czytelnik pewnie dostrzegł, że w moim układzie jest mega16, a nie mega16L, a co za tym idzie nie mogę debuggować układów zasilanych niższym napięciem niż 5V. Ten stan rzeczy spowodowany jest słabo zaopatrzonymi sklepami w Opolu. Wkrótce planuje spore zakupy przez internet części elektronicznych, wtedy kupie sobie "elkę" i podmienię.

    Obudowy brak. Myślałem, że autor zaprojektował płytkę pod jakąś konkretną obudowę, dlatego moja płytka ma takie same wymiary co jego. W załączniku schemat i płytka w formacie Eagle 5.4.0.

    Zdjęcia:

    Klon AVR JTAG ICE, wersja USB Klon AVR JTAG ICE, wersja USB Klon AVR JTAG ICE, wersja USB Klon AVR JTAG ICE, wersja USB


    Pozdrawiam

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    ciapciok
    Level 20  
    Offline 
    Has specialization in: naprawa spawarek
    ciapciok wrote 503 posts with rating 104, helped 3 times. Live in city Opole. Been with us since 2004 year.
  • Altium Designer Computer Controls
  • #2
    Krater28
    Level 18  
    Witam
    No i super - im więcej urządzeń na USB tym lepiej. Może nie zrobiłeś rewolucji ale powstało kolejne urządzenie do wyboru.
    Ja jestem zielony w programowaniu ale korci mnie aby kiedyś spróbować... jaką aplikację byś polecił? AVR-GCC czy AVRStudio a może coś innego? Oczywiście jak zaczynać to już w "C" prawda?
  • Altium Designer Computer Controls
  • #3
    petione
    Level 17  
    A powiedz jak szybko chodzi Ci ten Jtag?
    Raz zrobiłem sobie Jtaga, działał, lecz już na prostej instrukcji warunkowej if typu if (a==10), Jtag zatrzymywał się na ok 10 s nie mówiąc już o czymś poważniejszym. Mowa tu o pisaniu programów w C i późniejszej symulacji oczywiście w AVR Studio. Jak to jest z twoim Jtagiem?
  • #4
    Karol966
    Level 30  
    Witam. Na schemacie używasz tylko dwóch wyprowadzeń przejściówki (RxD oraz TxD) a na płytce widać więcej niż 2 połączenia. Jak to z tym jest? Masz może zdjęcie tej przejściówki od drugiej strony? Napisz z jakiego kabla pochodzi ta przejściówka -posiadam dwa DKU5 orz DKU2 (znajdę tam podobną?).
  • #5
    Duch__
    Level 31  
    yild wrote:
    można prosić o nazwę aukcji (numer etc), ew jakieś zdjęcie tego kabla - przejściówki? :)


    Pozwole se odpowiedzieć za kolegę ciapcioka.
    Kiedyś razem z kolegą ciapciok kupowałem właśnie te przejściówki. Pochodzą od kabla do Siemensa SX1.
  • #6
    ciapciok
    Level 20  
    Quote:
    Ja jestem zielony w programowaniu ale korci mnie aby kiedyś spróbować... jaką aplikację byś polecił? AVR-GCC czy AVRStudio a może coś innego? Oczywiście jak zaczynać to już w "C" prawda?


    Ja zaczynałem od Bascoma, ale szybko zaprzestałem, dzięki czemu nie nabrałem brzydkich nawyków ;) Używam AVRStudio + WinAvr. Właśnie w WinAvr jest kompilator AVR-GCC.

    Quote:
    Witam. Na schemacie używasz tylko dwóch wyprowadzeń przejściówki (RxD oraz TxD) a na płytce widać więcej niż 2 połączenia. Jak to z tym jest?


    To dodatkowe połączenie ma zapewnić stabilność konstrukcji, jak widać na zdjęciu, pad nie jest nigdzie podłączony.

    Quote:
    Jak to jest z twoim Jtagiem?


    Nie dostrzegłem takich problemów. Często AVRStudio błędnie działa z JTAG. Ja muszę uważać, żeby zasilania nie odłączyć przypadkiem od układu, inaczej czeka mnie restart AVRStudio.

    Pozdrawiam
  • #7
    yild
    Level 14  
    Duch__ wrote:
    yild wrote:
    można prosić o nazwę aukcji (numer etc), ew jakieś zdjęcie tego kabla - przejściówki? :)


    Pozwole se odpowiedzieć za kolegę ciapcioka.


    dziękować :)

    nie znam się na telefonach więc tutaj mam zgryz z zakupem "jakiegoś" kabelka bo mogło by się okazać że zły więc by leżał (a potrzebuję takich co najmniej 3) ;)


    ps. widzę że jakiś nadgorliwiec już mojego posta wywalił, co mało merytoryczny ?
    miałem napisać "śliczne, wspaniałe, etc." ? :P pytanie które zadałem było na temat
  • #8
    Lazer
    Level 23  
    Z tego co widzę to kabelek od siemensa np A62...
  • #9
    rasz
    Level 21  
    Lazer wrote:
    Z tego co widzę to kabelek od siemensa np A62...


    są dwa typy, 510 (ten) i 540, 510 kosztuje tyle co normalny RS232-USB komputerowy. Wątpliwa oszczędność.
  • #10
    autoservice
    Level 20  
    Czy ten Jtag może pracować jako zwykły programator podanych wyżej procków?
    Pzdr.
  • #11
    siejacy_zamet
    Level 12  
    Jak programować AVRy, to tylko asembler! Cud, miód i orzeszki! Nie ma wtedy niespodzianek, z którymi w C walczy się godzinami, a kompilator nie zoptymalizuje kodu, powodując, że nic nie działa. Jak się panuje nad programem i pisze z głową, to wcale nie zajmuje to więcej czasu niż w C. Polecam ZWŁASZCZA początkującym - poznajcie procesor od kuchni, dogłebnie, a dopiero potem piszcie skomplikowane programy w C. Łatwiej wtedy zdebugowac taki program, znając zachowanie procka poznane w asemblerze.
  • #12
    wader_669
    Level 28  
    Nie wiem dlaczego, wszyscy chca sie dowiedziec z kad masz ten konwerter usb -> uart. Jest ich pelno tylko wpisac usb -> rs232. Oczywiscie nie jest to pelne rs232 poniewaz stan logicznego 0/I sie nie zgadza i zapewne nie ma wszystkich wyjsc coma tylko rxd i txd, czyli tak naprawde jest to przejsciowka usb-> uart. Wiec mozna kupic zwykla najtansza przejsciowke usb -> "rs232" na allegro tez bedzie smigac
  • #13
    gemiel
    Level 25  
    A mnie zastanawia po co autor wydłubywał płytkę przejściówki zamiast zostawić ją w obudowie. Skoro dla większości zaglądających na elektrodę wydatek paru złotych na części to kosmiczny problem to po co jeszcze wydawać pieniądze na kabel USB? Kabel w sklepie kosztuje więcej niż kabel do telefonu, zwłaszcza starszego typu. Jeśli ktoś zajmuje się elektroniką to zawsze znajdzie jakiś kabelek walający się po pudełkach od fonów lub szufladach.
  • #14
    ul1111
    Level 23  
    Czy może kolega wytłumaczyć obecność kondensatora C3.
  • #15
    ciapciok
    Level 20  
    Quote:
    Czy może kolega wytłumaczyć obecność kondensatora C3.


    W Eagle nie znalazłem bezpiecznika polimerowego, więc zastosowałem kondesator o takim samym rastrze.

    Pozdrawiam
  • #16
    liku
    Level 10  
    Płytka zmieści się w obudowie Z-76 albo PP4M, można znaleźć w TME. Łatwiejsze i wygodniejsze jest wycięcie kawałka drewna/płytki i przykręcenie układu na podkładkach dystansowych, potem podklejenie jakiś podstawek gumowych.

    Co do USB - z powodzeniem używałem przejściówki na tanim układzie Prolific (może być konieczne ustawienie numeru portu COM na coś między 1 a 4).
  • #17
    kwiatek6324
    Level 11  
    Witam.

    Ja mam pytanko dlaczego na liscie jest tylko AT90CAN128..
    A brakuje wersji CAN32 i CAN64 ktore to tez maja JTAG..

    Skads to wynika ?

    Pozdrawiam
    AK
  • #18
    michalm
    Level 12  
    Też sie na tym naciąłem. Standardowo JTAGICE nie obsługuje tych procków, jak sie próbuje podłączyć, to rozpoznaje po sygnaturze, że to nie te.
  • #19
    olo_3
    Level 15  
    Jak wygląda sprawa z obsługą Xmega128 (jak wynika z pdf - nie programuje) ?