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

Zestaw bazowy - Co kupić dla zupełnie początkującej osoby?

user07 22 Gru 2012 15:53 4548 15
  • #1 11684564
    user07
    Poziom 9  
    Witam,

    chciałbym abyście polecili mi układ bazowy dla osoby, która dopiero zaczyna przygodę z elektroniką i językiem C. Wiem, że pewnie "za grosze" można zbudować sobie to samemu, ale nie chciałbym aby się zniechęciła. Dlatego szukam gotowca: AVR + podłączenie przez USB + płytka stykowa etc. Książkę już znalazłem: "Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji". Kompilator i środowisko: Atmel Studio.

    Z góry dziękuję za podpowiedzi.
  • Pomocny post
    #2 11684612
    BlueDraco
    Specjalista - Mikrokontrolery
    STM32F0DISCOVERY albo jakiś LPCxpresso. Byle nie AVR.
  • #3 11684818
    Klima
    Poziom 31  
    Dla zupełnie początkującego raczej nie ma znaczenia, co wybierzesz. A co do rodziny mikrokontrolerów - ja uważam, że AVR jest jak najbardziej w porządku.
  • Pomocny post
    #4 11684882
    BlueDraco
    Specjalista - Mikrokontrolery
    Myślę, że dla początkującego istotna jest możliwość "zajrzenia do śrdka" procesora przy uruchamianiu programów - tego nie potrafią tradycyjne ATmega, a w Cortexach jest to rozwiązane b. dobrze.

    Drugi problem dla początkujących - to architektura Harvard. W poprawnie napisanym programie dla ATmega dłuższe stałe, w tym np. łańcuchy tekstowe, powinny być deklarowane z atrybutem PROGMEM, a dostęp do nich wymaga użycia pseudofunkcji typu pgm_read_byte().

    W miarę wzrostu skomplikowania prjektów na ATmega rozpocznie się walka z ubogimi peryferialami, podczas gdy Cortexy mają po min. kilkanaście timerów 16- i 32-bitowych z weloma kanałami PWM.

    Warto zauważyć, że przy wielokrotnie wyższej wydajności mikrokontrolery 32-bitowe są na ogół tańsze od 8-bitowych.

    Nie potrafię znaleźć sensownych argumentów za uczeniem się obecnie jako pierwszego mikrokontrolera 8-bitowego. Wiadomo, że ich zniknięcie jest kwestią kilku lat. Pakowanie się w AVR to raczej muzealnictwo. To miało sens 20 lat temu, kiedy AVRy miały głównie zalety na tle konkurencji (np. PIC i 51). Obecnie mają niemal wyłącznie wady.
  • Pomocny post
    #5 11684924
    Freddie Chopin
    Specjalista - Mikrokontrolery
    BlueDraco napisał:
    W miarę wzrostu skomplikowania prjektów na ATmega rozpocznie się walka z ubogimi peryferialami, podczas gdy Cortexy mają po min. kilkanaście timerów 16- i 32-bitowych z weloma kanałami PWM.

    Akurat STM32 mają w większości timery 16-bitowe i zwykle 0 timerów 32-bitowych (wprost, bo timery 16-bitowe można łączyć w "łańcuch"), takie STM32F0 mają aż 1 timer 32-bitowy.

    Cytat:
    Nie potrafię znaleźć sensownych argumentów za uczeniem się obecnie jako pierwszego mikrokontrolera 8-bitowego. Wiadomo, że ich zniknięcie jest kwestią kilku lat.

    Podobno mówi się tak już od 20 lat i jakoś nie chcą zniknąć [;

    A tak serio to użycie bardziej ograniczonego sprzętu może nauczyć myślenia, bo równie dobrze można powiedzieć, że można się C nauczyć na PC i potem tylko przenieść aplikację na mikrokontroler. Niestety ze względu na nieco "inny świat" takie przejście z PC na mikrokontroler jest generalnie szokiem, więc jak na początku człowiek ma ograniczony sprzęt to od razu się przyzwyczai do ograniczeń. Obecnie widać często że za ARM biorą się osoby które w ogóle nie mają pojęcia o temacie mikrokontrolerów ("nie ogarniają") i co tego wychodzi to wiadomo - jak nie starcza mocy, to trzeba się będzie przesiąść na Cortex-A15, do wszystkiego bezmózgowy SPL itd.

    Cytat:
    Pakowanie się w AVR to raczej muzealnictwo. To miało sens 20 lat temu, kiedy AVRy miały głównie zalety na tle konkurencji (np. PIC i 51). Obecnie mają niemal wyłącznie wady.

    To 20 lat temu były w ogóle AVRy już? <: Wikipedia twierdzi, że rodzina AVR zostałą wprowadzona dopiero w 1996, więc 20 lat to jeszcze nie ma...

    4\/3!!
  • #6 11685040
    user07
    Poziom 9  
    Dzięki za odp. STM32F3 DISCOVERY ARM wygląda całkiem fajnie. Czy są jakieś książki dla początkujących po polsku dla tej architektury?
  • #8 11685089
    Klima
    Poziom 31  
    user07 napisał:
    Dzięki za odp. STM32F3 DISCOVERY ARM wygląda całkiem fajnie. Czy są jakieś książki dla początkujących po polsku dla tej architektury?

    Ja bym jednak został przy AVR...
  • Pomocny post
    #9 11685222
    piotrva
    VIP Zasłużony dla elektroda
    Freddie Chopin napisał:
    Są, wszystkie tak samo beznadziejne ponoć [;

    4\/3!!

    Popieram, uważam niestety, że STM32 dla osoby szukającej polskiej literatury może być trochę drogą przez mękę. (osobiście do STM polecam dokumentacje bibliotek po angielsku)
    Na początek polecam jednak AVR (http://atnel.pl - super książki do nauki dla początkujących i fajne zestawy, http://and-tech.pl - fajny zestaw startowy, wkrótce wychodzi nowa, bogatsza wersja.)
    Jak opanujesz dobrze AVR i zrozumiesz o co chodzi z uC to potem nic Ci nie sprawi problemu.
  • #10 11685268
    Klima
    Poziom 31  
    piotrva napisał:
    Jak opanujesz dobrze AVR i zrozumiesz o co chodzi z uC to potem nic Ci nie sprawi problemu.

    Całkowicie popieram. Choć gwoli ścisłości dodam, że zamiast AVR może być i 51.
  • #11 11685295
    tymon_x
    Poziom 30  
    BlueDraco napisał:
    Nie potrafię znaleźć sensownych argumentów za uczeniem się obecnie jako pierwszego mikrokontrolera 8-bitowego. Wiadomo, że ich zniknięcie jest kwestią kilku lat.

    Mniejsza ilość przerzutników do wysterowania (zataktowania), tak samo prostsza logika, przekłada się na mniejszy średni pobór prądu dynamicznego i sumarycznie mniejszego wycieku prądu statycznego jeśli porównamy ten sam proces technologiczny wytwarzania układu 8 i 32 bitowego.

    Tam gdzie trzeba zakopać mikrokontroler głęboko w studzience zasilaniem bateryjnym, mało kogo obchodzi ile wynosi szyna danych.
  • #12 11685376
    piotrva
    VIP Zasłużony dla elektroda
    Klima napisał:
    piotrva napisał:
    Jak opanujesz dobrze AVR i zrozumiesz o co chodzi z uC to potem nic Ci nie sprawi problemu.

    Całkowicie popieram. Choć gwoli ścisłości dodam, że zamiast AVR może być i 51.

    No stanowczo się nie zgodzę, bo moim zdaniem AVR to nowocześniejsza architektura. Choć oczywiście zależy jakie to 51, ale mimo wszystko AVR są moim zdaniem jak dla początkującego lepiej opisane i bogatsze, niż standardowe 51...
  • #13 11685963
    BlueDraco
    Specjalista - Mikrokontrolery
    Książek do STM32 jest kilka, a kolejna powstaje ;).
    Do LPC11xx też coś się znajdzie.
    Dużo to przyjemniejsze w użyciu niż 8-bitowe okazy muzealne.

    Niemal wszystko, co można zrobić na AVR, dużo łatwiej jest zrobić na czymś współczesnym. Im bardziej złożone zadanie, tym różnica nakładu pracy jest większa.

    tymon: uC 32-bitowe są na ogół wytwarzane w nowocześniejszych procesach niż 8-bitowe, co już obniża pobór mocy. Przy tym samym zadaniu uC 32-bitowy wykona kilka razy mniej instrukcji niż 8-bitowy, po czym pójdzie spać, więc również tutaj jest oszczędność energii. Nie jest to tak proste, jak Ci się wydaje.

    Pozostaje jeszcze oszczędność energii programisty, który łatwiej napisze i dużo łatwiej uruchomi program na współczesnym 32-bitowym mikrokontrolerze, który ma przyzwoite środki sprzętowe do debugowania.

    "Nowoczesność" AVR to coś jak nowoczesność Poloneza w porównaniu z Fiatem 125p. Fakt, nowocześniejszy jest...
  • Pomocny post
    #14 11686171
    piotrva
    VIP Zasłużony dla elektroda
    Powiedzmy otwarcie, że o gustach się nie dyskutuje, co jest w użyciu przyjemniejsze.
    AVR są na pewno dużo prostsze niż ARM (prostsze znaczy także uboższe w możliwości), a czy to zaleta czy wada przy nauce od zera?
    Moim zdaniem zaleta.
    Sam chyba przyznasz, że jeśli ktoś szkoli się na mechanika (skoro już wchodzimy w tematy samochodów) to łatwiej zacząć naukę od prostego i prymitywnego Poloneza, niż od razu od Mercedesa klasy S (ten to będzie trochę bardziej skomplikowany pod pewnymi względami, komputer pokładowy itp. itd...)
    Wracając do uC, nie twierdzę, że nie da się od razu nauczyć korzystać z STM32, jednak uważam, ze wchodząc w ich programowanie warto mieć jakieś podstawy i pojęcie np. do czego służy timer i jak działa, żeby nie zostać przytłoczonym kolosalnymi możliwościami timerów w STM32.
  • Pomocny post
    #15 11686244
    BlueDraco
    Specjalista - Mikrokontrolery
    Właściwie nie zgadzam się tylko z jednym zdaniem z Twojej wypowiedzi - tym, że AVR są prostsze niż ARM. Pod całą resztą, która z tego zdania nie wynika, gotów jestem się podpisać.

    Uważam, że procesor, na którym coś się łatwiej robi, jest bardziej dydaktyczny od tego, na którym robi się to samo trudniej.

    Oczywiście jest pewien aspekt dydaktyczny "walki z ograniczeniami", co jest esencją projektów na 8-bitowcach, ale w ten sposób funkcjonalność urządzenia i rdzeń algorytmu schodzi na drugi plan, bo najważniejsze staje się obejście ograniczeń układu. To chyba jednak ślepy zaułek, chociaż niewątpliwie kształci zdolność logicznego "kombinowania". Moim zdaniem nie o to jednak powinno chodzić na początku nauki.
  • #16 11686531
    tymon_x
    Poziom 30  
    BlueDraco napisał:
    tymon: uC 32-bitowe są na ogół wytwarzane w nowocześniejszych procesach niż 8-bitowe, co już obniża pobór mocy. Przy tym samym zadaniu uC 32-bitowy wykona kilka razy mniej instrukcji niż 8-bitowy, po czym pójdzie spać, więc również tutaj jest oszczędność energii. Nie jest to tak proste, jak Ci się wydaje.

    Większa ilość przerzutników wymaga większe bufory, co za tym idzie kaskadowo połączone bufory tranzystorów o coraz większej powierzchni, nowsze procesy wytwarzania są wprowadzane zawsze jakimś kosztem. Aby uzyskać większą częstotliwość, często zmniejsza się grubość izolacji bramki, co wprowadza większy wyciek prądu statycznego.

    Jeśli szuka się większej mocy w postaci szerszej magistrali danych, to producenci wolą pchać się w 16-bitowce niż 32-bitowce. Przejrzyj pod tym kątem ofertę MSP, PIC czy AVR.

    Ja się nie zajmuje zawodowo urządzeniami typu low-power, moją działką są urządzenia większego kalibru. Ale znajomi w działce M2M nie podzielają pozytywnej opinii o stosowaniu 32-bitowców, mimo że podsuwałem im propozycje z Cortex-M0. Na dzień dzisiejszy, żaden 32-bitowiec nie spełnia ich wyśrubowanych wymagań. Chyba że naprawdę zaproponujesz coś ciekawego, podpartymi opinię najlepiej pomiarami.

    BlueDraco napisał:
    Pozostaje jeszcze oszczędność energii programisty, który łatwiej napisze i dużo łatwiej uruchomi program na współczesnym 32-bitowym mikrokontrolerze, który ma przyzwoite środki sprzętowe do debugowania.

    Trochę prawdy, ale nie do końca. Z tym rdzeń nie ma nic wspólnego. To zależy od producenta i ich stosowanych układów peryferyjnych. Pierwsze na co patrzysz w datasheet, jak przez cały czas developingu, to rejestry układu peryferyjnego. A tutaj filozofia jest niezależna od grupy docelowej.

    Używam Cortexy z jednego prostego powodu, jeden toolchain, jedne narzędzia. Dla mnie to ogromna zaleta, startup, linker i tak dalej, duża swoboda między kompilowaniem pod różnymi mikrokontrolerami producentów, w tym jeszcze większa że używam tego do PSoCów z rdzeniami hard-coded.

    user07 napisał:
    chciałbym abyście polecili mi układ bazowy dla osoby, która dopiero zaczyna przygodę z elektroniką i językiem C

    Wbrew pozorom, trudne pytanie. Większość producentów ma tanie płytki z fajnymi mikrokontrolerami na start, jak wymienione LPCXpresso, STMDiscovery, albo MSP od TI i tak dalej.

    Zobacz też tu:
    http://mikrokontrolery.blogspot.com/
REKLAMA