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

Pomoc w doborze mikrokontrolera do nauki programowania na AVR Dragon

xrn51 27 Lip 2013 09:08 1896 10
  • #1 12565005
    xrn51
    Poziom 9  
    Witam

    Wczoraj udało mi się zakupić w dobrych pieniążkach Dragona. Z programowaniem avr miałem już do czynienia jednak zawsze na sprzęcie kumpli. Mam płytkę stykową i inne potrzebne pierdoły. Do dragona zakupiłem również podkładkę testową ZIF 40. Mam do Was pytanie. Planuje na razie uczyć się architektury avr dotykać jakiś prostych lecz ciekawych projektów. Tutaj znajduje się lista procesorów z którymi pracuje owy dragon, chodzi o debugowanie http://www.atmel.com/tools/AVRDRAGON.aspx?tab=devices

    Co polecacie kupić na początek jakąś konkretną atmege ? Xmege ? Od czego zacząć żeby nie kosztowało fortunę nawet kiedy zapełnię rom niepotrzebna pętla while i zęby nabierać dobrych nawyków, oraz mieć opcje debugowania.

    Z góry dzięki za każdą odpowiedź
  • #2 12565087
    tmf
    VIP Zasłużony dla elektroda
    Jak już masz Dragona to grzechem by było nieużywanie procka z JTAGiem. Z AVR polecam XMEGę, naprawde fajne procki. Mają peryferia charakterystyczne dla zaawansowanych MCU, w efekcie przesiadka w przyszłości na np. ARM (o ile będzie konieczna) będzie łatwiejsza.
    Zobacz tu:
    http://mikrokontrolery.blogspot.com/2011/02/mikrokontrolery-xmega-wybrane-moduly.html
    Na końcu masz fajne moduły do stykówki. Na kolejnej stronie masz schematy jak sobie taki moduł zrobić samemu.
    Można tez kupić np. XMEGA E5 i wlutować w przejściówkę do stykówki. Koszt XMEGA E5 to 9 zł za wersję z 32 kB FLASH + bootloader. Za <6zł można kupić wersję z 8 kB.
  • #3 12565100
    tehaceole

    Poziom 28  
    Na pierwsze kilka miesięcy w zupełności wystarczy Ci nawet Atmega 8. Zastanawia mnie tylko fakt zakupu dobrej klasy programatora przez początkującego. AVRami zajmuję się od kilku lat i powiem Ci szczerze: nigdy nie musiałem debugować programu programatorem. Inaczej - nauczyłem się tak pisać programy, żeby pewne krytyczne miejsca kodu móc zdebugować przy pomocy tego ca akurat posiadam podłączone do AVR (np. wyświetlacz, LEDy, beeper itp.). Gwarantuję, że dużo lepiej wyjdziesz na tym postępując w analogiczny sposób. W końcu bez przesady: AVR to nie ARM... :) Na STM32 rzeczywiście debugger sprzętowy to nieoceniona pomoc. Ale dla poczciwych atmeg?

    Nie zapominaj również, że Dragon nie posiada izolacji portów. Tak więc przy programowaniu ISP należy zachować szczególną ostrożność. Gdzieś kiedyś w którymś z wątków dyskutowałem już z Kolegą tmf nt. programatora dla początkującego. Ja uparcie obstawiam USBasp Thomasa Fischl'a. Dlaczego? Programator tani, prosty, działa od kopa, nie sprawia problemów, w sieci jest masa prostych schematów prezentujących optoizolację (fakt, że można je użyć także z dragonem). Osobiście w terenie jestem zawsze z USBasp i Dragonem, ale używam tylko USBasp. Dragon jest brany "na wszelki słuczaj". Koszt USBasp - 15zł jeśli składasz samemu. Koszt Dragona...

    No i tak jak już wspominałem - do debugu nigdy nie musiałem go użyć, natomiast wielokrotnie przydał mi się do odblokowania Atmeg którym deaktywowałem pin reset. Chociaż szczerze przyznam, że jak już człowiek się oswoi z fuskami to... ine pamiętam już kiedy mi się przygoda z resetem przydarzyła. :) Po latach przyznać muszę, że kupując Dragona byłęm tak samo jak Ty w tej chwili zafascynowany możliwością debugu atmeg... :)


    O, widzę tmf mnie uprzedził :)



    Pisze Kolega Autor o nabieraniu dobrych nawyków. Uważam, że to jaki mikrokontroler do zabawy wybierzesz absolutnie nie ma nic wspólnego z nabieraniem dobrych nawyków w pisaniu oprogramowania. Koledzy proponują Ci od razu xmegę - sądzę, że to nie jest dobry pomysł. Wiem że teraz pewnie znów wywołam burzę, ale na prawdę uważam, że poczatkującemu warto dać najpierw nóż do nauki walki a dopiero później pozwolić przesiąść mu się na armatę.

    :)
  • #4 12565174
    piotrva
    VIP Zasłużony dla elektroda
    tehaceole napisał:
    Ja uparcie obstawiam USBasp Thomasa Fischl'a. Dlaczego? Programator tani, prosty, działa od kopa, nie sprawia problemów,

    Hehehe, żart jakiś? Wystarczy spojrzeć na ilość wątków na elektrodzie pt. "USBasp nie działa", "USBasp nie wykrywany przez komputer", ... Ponadto sterujące tym programatorem AVRDude ma sporo błędów. Szczerze powiem tak, że Dragon jest dobry, czasem oddaje nieocenione korzyści, ale dla początkującego to za dużo. Ja osobiście polecam coś pośredniego: klon AVR ISP mkII - cena większa niż USBasp, ale w zamian mamy:
    1. bezproblemowe programowanie wszystkich procesorów AVR (Mega - ISP, XMega - PDI, Tiny - ISP, Tiny4/5/9/10 - TPI)
    2. Brak problemów ze sterownikami - wszystko podpisane cyfrowo od Atmela
    3. Współpraca z AVR/Atmel Studio - mamy dzięki temu m. in. zawsze aktualny kalkulator fusebitów
    4. W dodatku wszystkie klony z jakimi się spotkałem mają translator napięć - w związku z tym bez problemu zaprogramujesz mikro-kontroler zasilany dowolnym napięciem - niestety większość USBasp nie ma tej istotnej funkcji.

    tehaceole napisał:
    Na pierwsze kilka miesięcy w zupełności wystarczy Ci nawet Atmega 8.

    Ja polecam zamiast tej ubogiej staruszki:
    ATMega644p - fajny procesor, bogate peryferia, jak masz smoka to ma też JTAG, obudowa DIP
    ATMega328p - starszy i większy kuzyn ATmega8, ogólnie zamiast ATMega8 polecam coś z serii ATMega88/168/328
    Przyda Ci się też jakiś LCD, konwerter USB<>RS232, przyciski i tego typu drobnica.
  • #5 12565198
    tehaceole

    Poziom 28  
    piotrva napisał:
    Hehehe, żart jakiś? Wystarczy spojrzeć na ilość wątków na elektrodzie pt. "USBasp nie działa", "USBasp nie wykrywany przez komputer",
    Nie, wcale nie jest to żartem. Swojego USBasp złożyłem na zasadzie:
    - mój pierwszy własny projekt płytki w smd,
    - schemat wcześniej nie sprawdzony w pająku choćby (na dipie),
    - zadziała to fajnie, nie zadziałą to przynajmniej będzie wprawka w lutowaniu SMD.

    I jakos tak ten mój pierwszy programatorek do AVR działa bezawaryjnie już 7 czy 8 lat...
    Te wątki biorą się stąd, że każdemu się wydaje, że od kiedy jest Arduino to każdy może być mega super programistą. Zanika zdolność logicznego myślenia, kojarzenia faktów. A przede wszystkim po oczach bije porażające lenistwo. Do tego jeszcze okraszone "teoriami naukowymi" osób zakładających jakiś wątek, absolutnie sprzecznymi z radami uzyskanymi od bardziej doświadczonych użytkowników.

    A'propos wieku mojego programatora - samemu wspominałem wcześniej o braku izolacji portów. Jednak jak widać można przez tyle lat używać programatora bez izolacji i jakoś nie doprowadzić do miniaturowego wybuchu nuklearnego na stoliku... Jedyne co trzeba: wystarczy chcieć myśleć... :)
  • #6 12565199
    tmf
    VIP Zasłużony dla elektroda
    tehaceole: właściwie z niczym co napisałeś nie można się zgodzić. Piszesz, że nie używasz JTAG, bo zamiast tego piszesz kod tak, żeby jakoś na okrętkę go debugować. Gdzie tu sens? To mniej więcej tak, jakby napisać: mam śrubokręt, ale nie wkręcam na raz więcej niż 2 śruby bo mnie od tego ręka boli. Co prawda obok leży wkrętarka, ale rozkładam sobie pracę na parę dni i jest ok.
    JTAG dla początkującego jest najlepszym narzędziem. Umożliwia na żywo podgląd tego co dzieje się w programie, co w wielu przypadkach umożliwia od razu znalezienie przyczyny błędu. Poza tym umożliwa także debugowanie sprzętu poprzez możliwość bezpośredniego sterowania rejestrami MCU i obserwowania efektów na pinach IO. Dzięki temu np. zimny lut lub zwarcie na PCB można błyskawicznie wykryć. Zalet jest oczywiście więcej. Napisz co takiego ma ARM, co wymaga JTAGa, czego nie ma AVR?
    Nie jest prawdą, że Dragon nie ma buforów na wyjściu. Oczywiście zarówno jego ISP, PDI, jak i JTAG posiadają bufory z konwerterem poziomów. Nawet przy zwraciu do GND lub Vcc trudno je upalić, o czym niejednokrotnie się osobiście przekonałem. Buforów nie ma wyłącznie jego funkcja programatora równoległego, z której się praktycznie nie korzysta.
    USBasp to totalna porażka, mająca sens w czasach, kiedy oryginalne programatory Atmela były drogie, a klony nie istniały. Za 15 zł masz złom, z pseudo emulacją USB, bez konwertera poziomów, a więc działająy pewnie tylko dla 5V, wolny i nie wspierany przez Atmel Studio, dzięki czemu trzeba potem kombinować z fusebitami, lub robić różne cyrki z połączeniem AS z tym programatorem. W dodatku zaprogramujesz nim tylko ATMega i ATTiny. Za 40-50zł można kupić klona AVRISPMkII, którym zaprogramuje się wszystkie AVRy, przy wszystkich napięciach zasilania, w dodatku bezpśrednio z AS.
    Co do XMEGA - obecnie stosowanie procków z serii ATMega nie ma sensu, ani ekonomicznego (XMEGA przy większych możliwościach są tańsze niż ATMega), ani praktycznego. XMEGA są lepsze, szybsze, mają więcej peryferii, itd. Przy tym samym rdzeniu, a więc programuje się je tak samo jak inne AVRy. Za to mamy uporządkowane peryferia o większych możliwościach. W efekcie program jest bardziej przejrzysty, co dla początkującego ma podstawowe znaczenie.

    Dodano po 6 [minuty]:

    piotrva napisał:
    Szczerze powiem tak, że Dragon jest dobry, czasem oddaje nieocenione korzyści, ale dla początkującego to za dużo. Ja osobiście polecam coś pośredniego: klon AVR ISP mkII - cena większa niż USBasp, ale w zamian mamy:


    Nie zgodziłbym się, zę to za dużo, zawsze z tych dodatkowych funkcji nie trzeba korzystać, co oczywiście jest bez sensu. Ja bym powiedział tak - jak ktoś chce oszczędnie to oczywiście AVRISPMkII, jeśli kogoś stać na wydatek rzędu 240zł (Dragon) to jak najbardziej brać. Z pewnością, każdemu, kto chce się głębiej rozwijać JTAG się przyda, a praca ze sprzętowym debugerem to bajka.

    Dodano po 2 [minuty]:

    BTW, pamiętajcie, że autor wątku już ma Dragona, więc nie za bardoz ma sens rozwodzić się nad USBasp i innymi programatorami.
  • #7 12565263
    xrn51
    Poziom 9  
    Panowie i Panie żeby zakończyć te spory i walki. Tak programowałem już pod usbasp i nie jestem totalnym laikiem. Kilka małych projektów już za mną na atmedze 8 na sprzęcie kumpli. Dragona kupiłem dlatego, że trafiła mi się okazja i kosztował mnie 70zł ( nie skorzystalibyście :P ?). A zatem jeżeli można wrócić do meritum tematu - jaki procek, żebym miał jak najwięcej peryferiów, pamięć JTag no i sensowną cene.
  • #8 12565268
    tehaceole

    Poziom 28  
    tmf - dobrze wiesz, że mam olbrzymi szacunek do Twojej wiedzy i doświadczenia. Jednak staram się Autorowi podpowiedzieć żeby nie rzucał się od razu na głęboką wodę. Do wszystkiego należy dochodzić w naszej dziedzinie spokojnie, małymi kroczkami. To nie sztuka wziąć od razu na stół superwypasiony procesor z mnóstwem pierdół na pokładzie, spośród których raczej 80% nie zdołamy użyć. Sztuką jest opanować w jak największym stopniu podstawowy procesor, a dopeiro potem dobierać bardziej rozbudowane jednostki w zależności od potrzeb. Inaczej będziemy mieli zatrzęsienie migaczy a'la multiwibrator zrealizowanych na Atmegach256, xmegach albo armach...
    To po pierwsze.

    Po drugie: czemu tak sie uparłem na USBasp? Dlatego, że jest TANI! W cenie AVRISPMkII są aż 3 usbasp - a to ma niebagatelne znaczenie dla początkującego - tym bardziej jeżeli pierwsze konstrukcje będzie składać na płytce stykowej. Oczywiście prawdą jest to co piszesz. Jednak mój przykład pokazuje, że można z tego programatora korzystać bezproblemowo dłuuugie lata.

    Ale, jak to jeden z Użytkowników Elektrody ma w podpisie, "rupta co hceta". :)
    :)



    xrn51 napisał:
    Panowie i Panie żeby zakończyć te spory i walki. Tak programowałem już pod usbasp i nie jestem totalnym laikiem. Kilka małych projektów już za mną na atmedze 8 na sprzęcie kumpli. Dragona kupiłem dlatego, że trafiła mi się okazja i kosztował mnie 70zł ( nie skorzystalibyście ?). A zatem jeżeli można wrócić do meritum tematu - jaki procek, żebym miał jak najwięcej peryferiów, pamięć JTag no i sensowną cene.
    Szkoda, że od razu tego nie napisałeś. :)
    W takim razie poszukaj w moich postach bo gdzieś kiedyś założyłem wątek bliźniaczy do Twojego.
  • #9 12565310
    piotrva
    VIP Zasłużony dla elektroda
    Za 70 zł to trzeba było brać hurtowo :D
    Co do procesora:
    piotrva napisał:
    ATMega644p - fajny procesor, bogate peryferia, jak masz smoka to ma też JTAG, obudowa DIP
    ATMega328p - starszy i większy kuzyn ATmega8, ogólnie zamiast ATMega8 polecam coś z serii ATMega88/168/328

    lub XMega - dosyć bogate peryferia, ale bogatsze===bardziej skomplikowane w obsłudze
    ---
    Co do programatora i argumentu: "TANI" i Twojej sytuacji - to że Tobie działa od pierwszego razu - fajnie, ale są miliony gotowych bubli w necie, które mają nieprawidłową konstrukcję i z jednym PC działają a z innym nie. A to że ktoś jest początkujący i może nie ma od razu pełnej wiedzy, spowoduje np. to, że ten ktoś sam nie dojdzie do tego, że np. trzeba zmienić diody zennera itp. A uwierz mi, bo już niejednego początkującego przeszedłem, nic tak nie demotywuje do nauki jak walka z podstawowym sprzętem. A doświadczenie przychodzi później i wielu z tych "zielonych w temacie" po paru miesiącach/latach do czegoś dochodzą, mimo że zaczynali od tego, że sami nie ogarniali podłączenia diodki do uC.

    Co do tej taniości - niby na początek jest tanio, ale potem i tak ten "złomek" daje się we znaki - brak zintegrowanego kalkulator Fusebit skutkuje często pomyłką we wpisywaniu i "zablokowanymi" procesorami - trzeba składać generatory, FusebitDoctora, tracić czas.
    Potem chce ktoś programować XMega - też kiszka - niby są jakieś metody "harcerskie" ale działają podobno tylko kilku osobom - też trzeba kupić nowy programator.
    Prędkość pracy też nie jest zadowalająca, jeśli przychodzi wgrywać spore programy do większych uC, do tego wspomniany brak translatora napięć...

    Obiektywnie - bez sensu, a subiektywnie - "Róbta co chceta"
  • #10 12565333
    xrn51
    Poziom 9  
    Xmega jakaś konkretna ? Jeżeli już coś ?
  • #11 12565374
    tmf
    VIP Zasłużony dla elektroda
    W pierwszym poście podałem ci linki. XMEGA - dowolna - tania jest E5 i ma wszystko (9 zł w Seguro, nie ma USB). Takie są np. XMEGA128A1U - ma USB, 128 kB FLASH i interfejs EBI - 12 zł. XMEGI różnią się od siebie kosmetycznie, np. seria A ma dwa ADC z 4-stopniowym potokiem, wersje C, D, E mają jeden ADC bez potoku (chodzi o fizyczny aDC a nie liczbę wejść multipleksowanych, któych zazwyczaj jest 16). Wersja D nie ma DMA, pozostałe mają. Wersja A3 ma RTC32 i podtrzymywanie bateryjne RTC, pozostałe mają RTC bez podtrzymywania, itd. Jednak podstawowe peryferia we wszystkich są takie same (SPI, Timery, I2C, DMA, ADC, DAC, CRC, itd.), dzięki czemu banalnie przenosi się programy pomiędzy nimi - jedno kliknięcie na opcje projektu i zmiana mikrokontrolera. W ATMega tak prosto nie jest bo nazwy rejestrów i ich funkcje nie są kompatybilne.
    Na stronie kolegi Manekinen masz fajne płtki do stykówki:
    http://mdiy.pl/3-zgrabne-plytki-uruchomieniowe-dla-atxmega/
REKLAMA