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

Wybór mikrokontrolera: ARM czy AVR do programowania w C, wydajność i łatwość

Wdaer 18 Kwi 2010 13:37 18407 32
REKLAMA
  • #1 7975371
    Wdaer
    Poziom 11  
    Posty: 67
    Pomógł: 1
    Witam.
    Do tej pory programowałem w c++ na komputerze, ale postanowiłem przerzucić się na mikrokontrolery i pisać je w c. Patrząc na te procesory widzę, że procesory ARM mają przeważnie dużo wyższe taktowanie, ale jednocześnie na podstawie wypowiedzeń innych AVR są łatwiejsze do programowania. Więc co wybrać?

    A i jeszcze jedno czy do mikrokopntrolerów AVR można dołączaś zewnętrzne pamięci sRAM i czy to dużo zabiera procesora?
    Pozdrawiam. Wdaer
  • REKLAMA
  • #2 7975398
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Zależy do czego chcesz wykorzystywać uP. ARM maja zastosowanie w poważniejszych projektach. Do AVRów znajdziesz dużo przykładów. I lepiej od nich zacznij, gdyż szybciej zrozumiesz różnicę miedzy programowaniem uP a komputerów. A zewnętrzna pamięć ram przy AVR jest raczej nieużywana (choć istnieje możliwość jej podłączenia a jej obsługa prawie w ogóle nie zabiera zasobów uP). Wewnętrzna w większości przypadków wystarcza.
  • #3 7975417
    Wdaer
    Poziom 11  
    Posty: 67
    Pomógł: 1
    aha ok. Raczej zaczne od tych AVR bo rzeczywiście w internecie aż się roi od tutoriali do nich. A jaki dokładnie model zakupić na początek , któryśz rodziny ATmega ? .
  • #4 7975428
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Na początek ATmega zgadza się. Zaproponuje Mega16 lub 32 maja obudowy dip i 4 porty I/O. Więc da ci to większe i wystarczające możliwości do nauki.
  • Pomocny post
    #5 7975559
    misiaty1985
    Poziom 16  
    Posty: 230
    Pomógł: 9
    Ocena: 13
    Też popieram Atmega 16 lub 32. Najlepiej kup sobie oba (jen ma większą pamięć i tylko taka różnica). Są inne modele atmegi ale te mają prawie wszyctko co potrzeba do nauki. A poz tym do atmela masz darmowe i dobre środowisko.Ja używam avr studio + winavr (gcc).
  • REKLAMA
  • #6 7975573
    Wdaer
    Poziom 11  
    Posty: 67
    Pomógł: 1
    Dobrze zobacze te modele, a do programowania to przez ISP?
  • Pomocny post
    #7 7975685
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    Prawie wszystkie można programować przez ISP.
  • REKLAMA
  • #8 7976423
    Wdaer
    Poziom 11  
    Posty: 67
    Pomógł: 1
    w sumie tak. Dziękuje za pomoc. :)
  • REKLAMA
  • #9 7976670
    rpal
    Poziom 27  
    Posty: 1502
    Pomógł: 72
    Ocena: 49
    każdym z procesorów wiesz tyle samo to praca włożona w ich poznanie będzie porównywalna. Jednak możliwości końcowe zdecydowanie większe. Pogrzeb w notach i napewno wybierzesz sobie jakiegoś szytego na twoją miarę ARM-a wraz z darmowym środowiskiem obojetnie już jakiego tam producenta. A co do pamięcie zewnętrznej to istotnie zwykle wystarcza ale nie zawsze. Na szczęście ARM-y mają jej zdecydowanie więcej. Ceny są nieco wyższej jednak nie jest to poziom zaporowy. Jestem za tym aby dla początkującego użyć jakby nie patrzeć ARM-a aby nie wchodzić w nawyki i zbędne przyzwyczajenia dla AVR zakładając sobie przy okazji kaganiec jego możliwości i ew. ograniczeń.
  • #10 7977332
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    Z drugiej strony w przypadku AVR można płynnie przejść od prostych 8-bitowych ATTiny (zajmujących mało miejsca i biorących mało prądu), poprzez ciągle 8-bitowe, ATMega, ATXMega oferujące niezłe możliwości, do 32-bitowych UC3 (ciągle proste, przy ogromnej mocy), po potwory typu AVR32. Wszystko przy pomocy tych samych narzędzi i programów (wkrótce AVR Studio będzie integrować te wszystkie rodziny). Podobnie jest przy PICach.
  • #11 7977400
    Konto nie istnieje
    Poziom 1  
  • #12 7977473
    rpal
    Poziom 27  
    Posty: 1502
    Pomógł: 72
    Ocena: 49
    muszę się zgodzić z atomem i chyba największy problem to środowisko avrstudio kiedy je poznałem w wersji 3 coś tam wzbudziło u mnie obrzydzenie i kupiłem sobie codevision a potem ku zdziwieniu stwierdziłem że te w wersja 4 coś tam to już inna para kaloszy oczywiście na plus. Niestety eclipse w dalszym ciągu wzbudza u mnie reakcję obronną zwłaszcza w zakresie wtyczek i obsługi symulatora. Myślę więc że najrozsądniej jest właśnie użyć prostego ARM-a (made in atmel) a potem sobie eksperymentować z innymi prockami. To czego dotąd tu nikt nie napisał to pieniądze związane np. z programatorem lub JTAG-iem ale te tematy opisywano już wielokrotnie. Reasumując wybór procka to tak naprawdę wybór w zakresie tego co jest w kieszeni a nie samego układu scalonego który w porównaniu ze środowiskiem i innym sprzętem jest pomijalnie mały niczym co się napić pół litra wódy czy 4-pak piwa. ALe ja tej dyskusji już nie podejmuję bo pisano o tym wielokrotnie.
  • #13 7977507
    Konto nie istnieje
    Poziom 1  
  • #14 7977542
    rpal
    Poziom 27  
    Posty: 1502
    Pomógł: 72
    Ocena: 49
    kol. atom masz tę szczęśliwą sytuację że masz gdzie tę kartę wsadzić. Ze zwykłym PC-tem jeszcze wiele można zrobić a ja obecnie mam pod ręką lajptoka co to tylko ma same USB a z kart to co najwyżej mogę sobie wsadzić SD/MMC. Cytując więc Marksa powiem byt określa świadomość :)
  • #15 7977697
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    Nie jestem przeciwnikiem ARMów, wręcz przeciwnie, ale co to za pożytek ze startu na nich dla totalnie początkującego? wg mnie żaden, zresztą widać to po waszej wymianie zdań panowie atom1477 i rpal ;)

    Na AVRkach można byle pierdółkę szybko i bezboleśnie zrobić, wstawiając nawet jakiegoś ATtiny 8 nóżkowego czy nawet ATmega8. Do zaprogramowania byle jaki tani programator albo własnej produkcji. Nawet jak się zaczyna od jakiegoś zestawu startowego z AVR to szybciutko można sobie żelazkiem zrobić płyteczkę prostą.

    A wy panowie co? do pierwszego lepszego projektu np wyłącznika lampki na pilota bierzecie 100nóżkowego ARMa w TQFP ??? Tak więc nie chodzi wcale o ceny procków bo pewnie, że są porównywalne. Pewnie, że ARMy mają o wiele większe możliwości ale Pentiumy jeszcze większe ;) .... po prostu nie ma co strzelać z armaty do komara.

    Nie wspomnę już o kombinacjach z programatorami i ich cenami do różnych ARMów co też widać z waszych wypowiedzi. Zresztą dlaczego kolega atom1477 zajął się jednak także AVRkami zwykłymi??? hmmm - może warto szczerze odpowiedzieć sobie na to pytanie?

    A co do środowisk za free dla AVRków to nie ma co narzekać, chyba że ktoś lubi narzekać ;)

    jest notepad, PN, AVR Studio, Eclipse i jeszcze inne. Reasumując start z AVRkami jest o niebo tańszy, łatwiejszy i przyjemniejszy. Dzięki temu później spokojnie w miarę potrzeb jak się już wie czego można w ogóle potrzebować do większych projektów - to przejście na ARMy nie stanowi już takiego problemu.
  • #16 7977805
    Konto nie istnieje
    Poziom 1  
  • #17 7977989
    rpal
    Poziom 27  
    Posty: 1502
    Pomógł: 72
    Ocena: 49
    Panie mirek36 generalnie masz rację że trzeba sobie dobrac procesor do stopnia "ambitności" projektu. Ale tytułem rozjaśnienia to wydaje mi się że na skutek odpowiedniej polityki promującej swoje produkty , Atmel zyskał w Polsce niezasłużenie dużą popularność (na Świecie chyba także). Tylko że jeśli z 2 procków w zasadzie identycznych cenowo i praktycznie nie różniących się obudową jeden jest 8bitowy a drugi 32bitowy to czemu nie wybrać tego 32bitowego (myślę o AVR vs CORTEX)? Jeśli kolega zaczyna to po co ma się "opatulać" zbędnymi przyzwyczajeniami, przynajmniej będzie trendy i generalnie modniejszy :) Zdobyta wiedza i praktyka starczy mu nawet wtedy kiedy avr-y sie już skończą. Ja przynajmniej tak bym zrobił na jego miejscu po analizie kosztów rzecz jasna gdybym nie zdążył już obrosnąc swoimi przyzwyczajeniami.
  • #18 7977997
    utak3r
    Poziom 25  
    Posty: 741
    Pomógł: 60
    Ocena: 5
    To ja Was pogodzę, Panowie... niech Kolega zacznie od PICów :P najpierw 16F, potem osiemnastki i dsPICe na końcu. A potem może przejść na ARMy... :)
  • #19 7978013
    rpal
    Poziom 27  
    Posty: 1502
    Pomógł: 72
    Ocena: 49
    mnei nei trzeba godzi nie tkwię w żadnym sporze czy też konflikcie a co do piców to zaczęły mi się one coraz bardziej podobać, choć jeszcze w tej kwestii nic nie popełniłem :) narzędzia chyba sa dość drogie.
  • #20 7978016
    utak3r
    Poziom 25  
    Posty: 741
    Pomógł: 60
    Ocena: 5
    Profesjonalne narzędzia dość drogie (np. mikroC 250$). Jest teoretycznie SDCC za free... Jest oczywiście asembler lub stary już JAL.
  • #22 7978268
    utak3r
    Poziom 25  
    Posty: 741
    Pomógł: 60
    Ocena: 5
    MikroC też ma wersję lite (ograniczenie do 2kB kodu) - z tej wersji właśnie korzystam.
  • #23 7978335
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    Przecież ograniczenie do 2kB to porażka, jakieś zupełnie proste tylko programy w to wejdą. AVR ma sporo świetnych, darmowych programów - AVR Studio + WinAVR, CodeBlocks, Eclipse. W dodatku część z nich działa na wszystkich platformach, czyli nie jesteśmy związani z Windows. Podobnie zresztą ARM. Z tym, że do AVRów są w sieci miliony gotowców, przykładów i kursów. W dodatku jest świetna strona www.AVRFreaks.net, na której można dowiedzieć się praktycznie wszystkiego.
    Rpal pisze, że po co babrać się na 8-bitowcu, skoro można wsiąść 32-bitowego ARMa. Wszystko pięknie, niech tylko pokaże ile kodu musi napisać żeby na tym ARMie odpalić najprostszą aplikacje. I te tony dokumentacji przez którą trzeba się przebić.... szczególnie dla początkującego byłby to świetny wybór...
  • #24 7980426
    rpal
    Poziom 27  
    Posty: 1502
    Pomógł: 72
    Ocena: 49
    tmp, a co z ambicją albo czelendżem :) ?
  • #25 7986239
    Wdaer
    Poziom 11  
    Posty: 67
    Pomógł: 1
    Na początek chciałbym z prockiem którego chce wybrać obsłużyć LCD i przyciski a LCD to chyba od Noki 6100 bo podobno łatwo się połączyć. A są jakiejś fajne procki z obsługą LCD . Znalazłem serię i.MX one to mają ale jednak są dosyć drogie i mają po 400 pinów więc na początek to raczej nie.
  • #26 7986294
    Konto nie istnieje
    Poziom 1  
  • #27 7987514
    Wdaer
    Poziom 11  
    Posty: 67
    Pomógł: 1
    a jaki największy LCD obsłuży AVR ( Rozdzielczość)
  • #28 7987548
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Posty: 13336
    Pomógł: 1712
    Ocena: 870
    tysiąc pięćset na sto dziewięćset.

    Już podstawowe pytanie z tego wątku pokazuje, że nie masz w ogóle pojęcia o podstawach... Kolejne posty tylko to potwierdzają (szczególnie ten o procesorach i.MX [; )

    Cały ten wątek jest tego typu:
    Część chcę sobie kupić samochód, myślałem o Fiat Panda, bo jest tani i niewiele pali, ale rozważam też ciągnik siodłowy marki Mack, bo ma więcej mocy i można więcej rzeczy zmieścić w środku. Zasadniczo chce sobie pojeździć, sam nie wiem gdzie, po co i z czym. Który pojaz będzie dla mnie lepszy?

    Bez sensu...

    4\/3!!
  • #29 7987772
    Konto nie istnieje
    Poziom 1  
  • #30 7987796
    _Robak_
    Poziom 33  
    Posty: 2209
    Pomógł: 231
    Ocena: 29
    Cytat:

    A jak LCD ma sterownik z buforem obrazu to i 10000x10000 TFT obsłuży.

    Nie zapominajmy o tym że trzeba dane z pamięci odczytać, co tak właściwie stanowi poważne ograniczenie;)

Podsumowanie tematu

✨ W dyskusji poruszono wybór między mikrokontrolerami ARM a AVR dla początkujących programistów. Użytkownicy wskazali, że mikrokontrolery AVR, takie jak ATmega16 i ATmega32, są bardziej przystępne dla nowicjuszy, oferując wiele przykładów i tutoriali. Zwrócono uwagę na łatwość programowania w środowisku AVR Studio oraz dostępność tanich programatorów. Z drugiej strony, ARM-y oferują większe możliwości obliczeniowe i pamięciowe, co czyni je lepszym wyborem dla bardziej zaawansowanych projektów. Wspomniano również o możliwości podłączenia zewnętrznej pamięci RAM do AVR, chociaż wewnętrzna pamięć często wystarcza. Użytkownicy podkreślili, że wybór powinien być uzależniony od specyfiki projektu oraz ambicji programisty.
Wygenerowane przez model językowy.
REKLAMA