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

AVR - jak zacząć i co wiedzieć trzeba.

17 Cze 2008 02:44 54055 17
  • Poziom 38  
    Zarys.
    AVRy to sympatyczne uC (mikrokontrolery) firmy znanej chyba wszystkim z produkcji legendarnej "51" z pamięcią Flash - http://www.atmel.com . Rodzina ta należy do procesorów RISC - choć lista rozkazów jest dość rozległa Smile. Większość rozkazów wykonują w JEDNYM takcie - w przeciwieństwie do np. 12 taktowych MCS-51. Dodatkowo posiadają mechanizm pipeline czyli przetwarzania potokowego.
    Taktowane przeważnie do max 16MHz (mające jednak duże zdolności do podkręcania nawet do 30MHz w przypadku serii ATMmega). Procesorki zewnętrznie 8 bitowe, jednak pamięć programu ma organizację w postaci słów.

    Wszystkie nowe AVR-y nie wymagają zew. zegara do działania. Stare układy z gałęzi Classic np. AT90S2313 nie posiadały takich możliwości. Dlatego w ich przypadku kwarc czy sygnał zegarowy jest niezbędny.
    A co chyba najważniejsze są l4m3 odporne! Nie straszne im odwrotne włożenie w podstawkę, zbyt duże napiecię, zwieranie portów, itp przypadki - spocą się, ostygną i działają dalej Smile


    Możliwości
    AVR 8bit dzielą się obecnie na parę głownych grup: Classic - obecnie już wycofane, Tiny, Mega oraz XMEGA o których później. Istnieją jeszcze mikrokontrolery specjalizowane jak: Lighting AVR (z dużą ilością generatorów PWM), Pico Power (o bardzo niskim poziomie poboru energii), USB (posiadające np. sprzętowy interfejs USB) czy Automotive. Jednakże są to układy niszowe.
    Wracając jednak do głównego podziału. Jak łatwo się domyśleć rodzina Tiny jest okrojona z znacznej części peryferiów/zasobów które posiada rodzina Mega. Największe układy Mega umożliwiają dołączenie zew. pamięci RAMu czyniąc z nich kompletne potworki Smile.

    Co w standardzie:
    -TWI (w nomenklaturze Atmel-a I2C)
    -SPI
    -min. 2 TIMERy, a przeważnie 3 z czego jeden asynchroniczny (można taktować 32768Hz)
    -min. 1 U(S)ART
    -PWM z wieloma trybami
    -5 źródeł resetu
    -Indywidualne wektory przerwań
    -EEPROM
    -SRAM nawet do wielu KB
    -Podciąganie na wszystkich portach (taki uraz po 51 Razz ) - które jednak można wyłączyć.

    Obudowy: od poczciwego DIP8 do TQFP100
    Napięcia zasilania: 2,X V do 5,5V


    Oprogramowanie
    To co przemawia za AVR to: darmowe środowiska programistyczne + bogata liczba kompilatorów i nieskończone zasoby bibliotek!

    Lista popularnego oprogramowania przedstawia się następująco:"
    * ASEMBLERY: AVR Asembler (składnik AVR Studio), AVRA
    * C/C++: WINAVR (środowisko), AVRGCC, IAR C++, CodeVisionAVR
    * BASIC: BASCOM AVR, FastAVR
    * PASCAL: Embeeded Pascal AVR, AVRCo

    Darmowe środowisko AVRStudio, zintegrowane z kompilatorem ASMa i możliwością dointegrowania WINAVR daje nam w pełni profesjonalne i co najważniejsze DARMOWE środowisko. Samo AVRStudio umożliwia poza pisaniem softu także debugowanie przy użyciu JTAGa i DebugWire. Jest jeszcze symulator avrów VMLAB http://amctools.com/ też już darmowy.


    Programowanie/Narzędzia uruchomieniowe
    Sposoby programowania:
    - ISP - tzw. programowanie w systemie. Wystarczą 4 linie + masa. A procesora nawet nie trzeba wyciągać z podstawki/urządzenia.
    - Równoległe HV - Dużo przewodów ale umożliwia odblokowanie procesorów z wyłączonym ISP lub z wyłączoną nóżką RESET.
    - Szeregowe HV - Odpowiednik Równoległego HV dla procesorów z ograniczoną ilością nóżek.
    - JTAG - dostępne w układach rodzin MEGA/XMEGA

    Sposoby debugowania:
    - JTAG-ICE (JTAG) - starsze, ale nadal popularne narządzie. Doczekało się nawet tańszych klonów.
    - MKii (ISP+JTAG+DW) - ponoć są klony.
    - DW - dla układów z ograniczoną ilością końcówek.


    Sprzęt uruchomieniowy
    STK 200/300 http://www.lancos.com/prog.html
    AVR - jak zacząć i co wiedzieć trzeba.
    do niego ponyprog z tej samej strony, lub ispprog stąd: http://dybkowski.net/elka/ispprog.html

    USBasp http://www.fischl.de/usbasp/ programator szeregowy z USB - nie wspierany przez avrstudio
    AVR - jak zacząć i co wiedzieć trzeba.

    MKii-ISP http://atmel.com/dyn/products/tools_card.asp?...family_name=AVR%AE+8%2DBit+RISC+&tool_id=3808
    AVR - jak zacząć i co wiedzieć trzeba.

    Klony stk500:
    HVPROG http://www.der-hammer.info/hvprog/index_en.htm z możliwością programowania równoległego poprzez COM (i przejściówki COM-USB)
    AVR - jak zacząć i co wiedzieć trzeba.

    AVR-DOPER http://www.obdev.at/products/avrusb/avrdoper.html podobnie jak hvprog z tym,że poprzez usb.
    AVR - jak zacząć i co wiedzieć trzeba.


    Debugery:
    Jtag-miniice http://www.scienceprog.com/build-your-own-avr-jtagice-clone/ Klon Jtaga atmelowskiego z COMem.

    Jtag mkii http://atmel.com/dyn/products/tools_card.asp?...family_name=AVR%AE+8%2DBit+RISC+&tool_id=3353
    AVR - jak zacząć i co wiedzieć trzeba.

    Zestawy uruchomieniowe:
    Tani i malutki ale jakże sprytny AVR Butterfly:
    http://atmel.com/dyn/products/tools_card.asp?...family_name=AVR%AE+8%2DBit+RISC+&tool_id=3146
    AVR - jak zacząć i co wiedzieć trzeba.


    I wielki ale bardzo zaawansowany (a co za tym idzie...drogi Very Happy ) STK500:
    http://atmel.com/dyn/products/tools_card.asp?...family_name=AVR%AE+8%2DBit+RISC+&tool_id=2735
    AVR - jak zacząć i co wiedzieć trzeba.

    Jeśli nie działa Ci AVR - sprawdź dlaczego!

    Literatura:
    Mikrokontrolery AVR w praktyce - Jarosław Doliński - BTC (kurs C+asm)
    Programowanie mikrokontrolerów AVR w języku Bascom - Marcin Wiązania -BTC (dla mnie świetna książka - ja się z niej nauczyłem wszystkiego
    Mikrokontrolery AVR AtMega w praktyce-Rafał Baranowski - BTC (kompletny kurs ASM).
    EdW za pośrednictwem BTC wydało książkową wersję Mikroprocesorowej Oślej Łączki. http://www.btc.pl/?id_prod=2084400

    Oprócz tego w wersji elektronicznej:
    http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=86&Itemid=54
    Usunąłem "martwe" linki.
    [zumek]

    Tłumaczenie do FASTAVR:
    https://www.elektroda.pl/rtvforum/viewtopic.php?t=953685
    Krótki wstęp jak przejść przez "konfigurację " AvrStudio i zacząć pisać pierwszy projekt:
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=5349788#5349788
    Kurs R. Koppela(Niestety same listingi): http://elportal.pl/index.php?module=ContentExpress&func=display&ceid=286



    AVR 8 bit - X-MEGA
    Są to stosunkowo nowe układy dostępne jeszcze tylko przez sample, ale może dystrybutorzy polscy się zlitują Smile. Miały one w/g ATMEL-a być rewolucją na rynku, niestety spóźnili się o jakieś 2lata :/


    AVR32bit -
    AVR32, który jest jeszcze mało popularny ze względu (jak do tej pory) mało DIY-atrakcyjność przejawiającą się w obudowach BGA. Co prawda już wszystkie modele AVR32 zostały zaopatrzone w wyprowadzenia TQFP-podobne, ale procesory te nie należą do łatwych do ogarnięcia:
    - kontroler matryc TFT
    - kontroler kamery CMOS
    - kontroler audio i wideo
    Jeden procesor i wystarcza na budowę porządnego, energooszczędnego palmtopa.
    Do zalet należy dodać także niskie ceny tych układów, a także dostępnych modułów rozwojowych: NGW100, EVK110X. Niskie ceny oczywiście nie u wszystkich polskich dystrybutorów Sad
    Do wad należy dodać obsługę tylko 2 debugerów: JTAG-ICE mkII (300$) oraz AVR ONE! (2x więcej niż poprzednik)

    O ile AVR(mega) z AVR-x(mega) mają wiele wspólnego, o tyle AVR32 ma wspólną tylko nazwę.



    =======================================
    Changelog:
    17.06.2008 - Początek, dodano informacje o XMEGA i AVR32
    18.06.2008 - Dodano książkę i polski help do bascoma
    20.06.2008 - Dodano kompilator FASTAVR i kilka poprawek drobnych, poprawa stylistyki:)
    21.06.2008 - Poprawiono liczbę bitów X-Mega
    06.07.2008 - Dodano polskie tłumaczenie helpa do FASTAVR
    16.07.2008 - Dodano link do konfiguracji AvrStudio - czyli jak zacząć.
    Autorzy:
    Balu, Ch.M., Freddy, VanThor, ZbeeGin
  • Sklep ECSYSTEM
  • Poziom 27  
    Balu napisał:

    AVR8bit dzielą się na Tiny i Mega:

    Szanowny kolega pominął nowego kolegę AVR - xMega, który jest co prawda 16bitowy, ale mocno związany ze swoimi "słabszymi" braćmi :)
    Co prawda dostępność układów tylko przez sample utrudnia zapoznanie się, ale liczymy na większą śmiałość dystrybutorów.

    Wstępnie już zapodałeś info o AVR32, który jest jeszcze mało popularny ze względu (jak do tej pory) mało DIY-atrakcyjność przejawiającą się w obudowach BGA. Co prawda już wszystkie modele AVR32 zostały zaopatrzone w wyprowadzenia TQFP-podobne, ale procesory te nie należą do łatwych do ogarnięcia:
    - kontroler matryc TFT
    - kontroler kamery CMOS
    - kontroler audio i wideo
    Jeden procesor i wystarcza na budowę porządnego, energooszczędnego palmtopa.
    Do zalet należy dodać także niskie ceny tych układów, a także dostępnych modułów rozwojowych: NGW100, EVK110X. Niskie ceny oczywiście nie u wszystkich polskich dystrybutorów :(
    Do wad należy dodać obsługę tylko 2 debugerów: JTAG-ICE mkII (300$) oraz AVR ONE! (2x więcej niż poprzednik)

    O ile AVR(mega) z AVR-x(mega) mają wiele wspólnego, o tyle AVR32 ma wspólną tylko nazwę.
  • Poziom 38  
    Balu napisał:
    Programowanie mikrokontrolerów AVR w języku Bascom - Marcin Wiązania - BTC (jedyne polskie kompedium wiedzy na temat BASCOMa)

    Strzeliliście jak kulą w płot.
    Po pierwsze to nie jedyne kompedium, bo EdW za pośrednictwem BTC wydało książkową wersję Mikroprocesorowej Oślej Łączki.
    :arrow: http://www.btc.pl/?id_prod=2084400
    Po drugie chyba nie na marne się męczyłem przez 3 lata produkując polską wersję helpa którą można znaleźć na forum elektroda.pl w temacie
    Usunąłem nieaktualne linki, a poniżej dodaję aktualny(13.05.2011).
    [zumek]

    http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=86&Itemid=54
    Po trzecie, sporo tej książki to przetłumaczony tekst z angielskiego helpa i w dodatku parę rzeczy zostało ZERŻNIĘTYCH z mojego helpa BEZ mojej wiedzy a tym bardziej ZGODY. Dla niepoznaki zamieniono parę słów lub zamieniono je miejscami.
  • Poziom 38  
    Sorry ZbeeGin, z założenia nie używam polskich helpów ;/ więc nie wziąłem Twojego tłumaczenia pod uwagę, poza tym, helpa traktuję jako integralną część kompilatora, a nie jako oddzielne kompendium:)

    A co do wnikania w wew. sprawy Twoje i Wiązani, nie mnie rozsądzać - wybacz Kolego.
    (Już dopisuję Twojego helpa).
  • Sklep ECSYSTEM
  • Poziom 38  
    Balu napisał:
    poza tym, helpa traktuję jako integralną część kompilatora, a nie jako oddzielne kompendium:)

    Poza tym wersje w plikach PDF są e-bookami jakby nie było - zatem powinny być traktowane tak jak książki, tyle że elektroniczne :)

    Dodatkowo proponuję dołączyć do narzędzi także kompilator FastAVR. Przecież nie możemy iść tylko w jedną stronę, jakaś konkurencja musi być.
  • Poziom 38  
    Bardzo chętnie dołączę - pisałem o tym o czym wiem:)
  • Pomocny post
    Poziom 38  
    A nie lepiej ten fragment poprawić:

    Cytat:
    Kompilatory pod 8bitowce:
    * ASEMBLERY: AVR Asembler (składnik AVR Studio), AVRA
    * C/C++: WINAVR (środowisko), AVRGCC, IAR C++, CodeVisionAVR
    * BASIC: BASCOM AVR, FastAVR
    * PASCAL: Embeeded Pascal AVR, AVRCo
  • Poziom 19  
    Balu napisał:

    AVR 16 bit - X-MEGA


    Ch.M. napisał:

    Szanowny kolega pominął nowego kolegę AVR - xMega, który jest co prawda 16bitowy, ale mocno związany ze swoimi "słabszymi" braćmi


    To jakiś żart z tymi 16 bitami? Widzieliście dokumentacje?
  • Poziom 38  
    O! Faktycznie :)
    Respect dla kolegi:)
    Pewnie nikt nie zauważył, bo nikt nie miał w rękach tego a ja pamiętam tylko z zapowiedzi że miał być super;)

    Ale fajnie, że kolega wyłapał:)
  • Pomocny post
    Poziom 43  
    Chętnie dorzucę swoje 3 grosze.
    Moje tłumaczenie dokumentacji do FastAVR, wykonane w konsultacji i za zgoda autora.
    https://www.elektroda.pl/rtvforum/viewtopic.ph...=fastavr&sid=03762e6290ab65662b3df007d5360b63
  • Poziom 14  
    Wiedzieć trzeba również, że symulacje AVR nie są 100% pewne.
    W AVRStudio nie działa symulacja modułu USI, o czym wspomina help, jeśli się go całego przeczyta (dokładnie).
    Symulatory VMLAB i HAPSIM (wtyczka do AVRStusio) nie rozumieją faktu, że porty mogą mieć włączony wewnętrzny opornik pull-up, dając w efekcie "głupawe" symulacje.
  • Użytkownik usunął konto  
  • Poziom 38  
    Póki co "kursu" to tam nei ma - jedynie jakiś ochłap pod tytułem jak zainstalować... średnio przydatne...
  • Poziom 9  
    Zaczynam właśnie zabawę z AVR od płytki Arduino (z Atmegą 328) i tegoż środowiska i wydaje mi się, że jest niezłe na początek... Natomiast nie wiem jeszcze, jak płytkę Arduino ew. zaprogramować z AVRSTUDIO, choć mam wrażenie że musi to być całkiem proste...
  • Poziom 38  
    Ja chyba nigdy nie rozumiałem "szału" arduino, z poziomu avrstudio sam mikrokontroler jak każdy inny, programator -> złącze ISP -> avrstudio -> już.
  • Poziom 2  
    Witam,
    Zaczynam przygodę z AVR i przymierzam sie do zakupu programatora. Myślałem o AVTPROG1 zgodnym z STK500v2, ale natknąłem się na ZL16PRG ponoć zgodnego z AVR JTAG ICE, co mogłoby dać mi możliwość debugowania, a cena nie jest porażająco wyższa. I tu mam kilka pytań:
    1. Z punktu widzenia programowania: co to oznacza, że ZL16PRG obsługuje interface JTAG? Czy to znaczy, że muszę mieć wyprowadzone inne złącze niż to, którego używałbym z STK500? Czy za pomocą ZL16PRG mogę programować AVR bez interface JTAG?
    2. Jaka jest różnica między AVR JTAG ICE i AVR JTAG ICE 2 mkII?
    3. Jakie macie doświadczenia z używania ZL16PRG zarówno jako programatora, jak i jako debuggera?

    Z góry dziękuję za pomoc.
    Maciek