Mam doświadczenie w montażu i programowaniu C dla mikrokontrolerów, ale nie znam różnych rodzin MCU i DSP oferowanych przez dzisiejsze firmy. (np .: Texas Instruments, Atmel, Renesas)
Chciałbym wiedzieć o dobrych mikrokontrolerach / procesorach DSP i o tym, jak to się z nimi rozwija. Proszę podsumować swoje zrozumienie dotyczące różnych rodzin MCU / DSP, jedna rodzina na odpowiedź.
Byłoby bardzo interesujące również, jeśli szczegółowo wyszczególnisz, jakie są (są) główne aplikacje dla tego mikrokontrolera.
(Jest to „wiki społeczności”, więc każdy z reputacją> 100 może udoskonalić i poprawić odpowiedzi)
microcontroller
development
design
dsp
Edward
źródło
źródło
Odpowiedzi:
ARM jest standardem branżowym dla kontrolerów 32-bitowych, chociaż PIC32 ma kilka fajnych funkcji. Są dość łatwe w użyciu. Lubię układy NXP LPC2000 i LPC1000 ARM, ale nowy układ Energy Micro ARM Cortex-M3 jest bardzo interesujący ze względu na bardzo niski pobór mocy - tak dobry jak MSP430 [Youtube]. Wsparcie jest bardzo zmienne, chipy NXP mają grupę LPC2000 , którą prowadzę, co ludzie wydają się lubić - mamy ponad 8 000 członków!
źródło
Atmel AVR , być może w Arduino : nie zgodziłbym się z Leonem i powiedziałbym, że linia AVR Atmel to świetna rodzina na początek. Jest dość zróżnicowany, od ATtiny, przez ATmega, aż po Smoka (z którym nie pracowałem). Powiedziałbym, że AVR32 i Xmega to różne rodziny.
AVRfreaks to jedno z najlepszych forów elektroniki w sieci (wkrótce zostanie wyprzedzone przez Chiphackera :), istnieje także społeczność Arduino, która jest skierowana do hobbystów. Arduino świetnie nadaje się do nauki sprzętu mikrokontrolera, chociaż nie pomoże ci w programowaniu (OP stwierdził, że znają ASM i C).
Pakiet WinAVR jest łatwy jak ciasto w porównaniu do innych łańcuchów narzędzi. Wystarczy pobrać, nacisnąć kilka razy przycisk Dalej, wprowadzić kod i nacisnąć klawisz F5. Nie ma nic prostszego. Jasne, edytor AVR Studio nie ma wszystkich funkcji, które powinien mieć, ale wiele IDE dostawców nie jest ani lepszych, ani nawet gorszych (* kaszel * MPLAB * kaszel *).
Nie jestem pewien co do dostawy, ale powiedziałbym, że 6-stykowy SOT23 ATtiny jest niszowym układem, a wersja SO8 lub DIP jest bardzo dostępna. W powiązanej sprawie, wykonują również świetną robotę, zdobywając je zarówno w DIP (do prototypowania), jak i w kompaktowych pakietach SMT.
źródło
Seria TI MSP430
Sprzęt komputerowy
Różnorodność sprzętowych urządzeń peryferyjnych nie jest tak elastyczna jak Microchip PIC, ale obsługa oprogramowania do debugowania narzędzi jest znacznie lepsza niż części Microchip. TI niedawno wydało nową wersję Code Composer dla mikrokontrolerów MSP430 i DSP TMS320F28xx, która wykorzystuje Eclipse. Obsługa debugowania jest doskonała.
Są one również bardzo łatwe do skonfigurowania rejestrów kontrolnych, o wiele łatwiejsze niż DSxx 28xx.
MSP430 może doskonale nadawać się do aplikacji wymagających dużego czasu, ponieważ zwykle ma do dyspozycji więcej rejestrów przechwytywania / porównywania. Może to znacznie uprościć systemy, w których trzeba poradzić sobie z wieloma urządzeniami peryferyjnymi wymagającymi dużej częstotliwości.
Rozwój
Możesz kupić system programistyczny za 150 USD (istnieje tańszy wariant MSP430 na pendrivie za 20 USD, ale to trochę ogranicza), a otrzymasz prawdziwy sprzęt + system prototypowania debuggera. Możesz także uzyskać nowy starter TI, który jest wyposażony w 2 układy scalone i kosztuje 4,30 USD.
źródło
Microchip PIC 16F / 18F
Rynek docelowy
Niedrogie 8-bitowe mikroprocesory. 16F jest jedną z wcześniejszych linii procesorów Microchip i nie jest szczególnie podatny na programowanie w C / C ++ z powodu:
Seria 18F jest nowsza i należy ją rozważyć, jeśli możesz sobie na nią pozwolić. Jest podobny pod względem rynku docelowego, zestawu urządzeń peryferyjnych, pakietów układów scalonych, narzędzi programistycznych i ceny do serii 16F. Rdzeń 18F został zaprojektowany tak, aby był bardziej podatny na C i C ++, ze względu na:
Oprogramowanie
Dość łatwy do programu, można pisać używając jego zestaw 30 instrukcji montażu lub użyć kompilatora C . Są to 8-bitowe MCU, więc jeśli chcesz pracować z wartościami> 255, musisz sam znaleźć / napisać 2-bajtowy kod dodawania / odejmowania / mnożenia / dzielenia. Jego pamięć RAM ma 4 „banki”, więc jeśli piszesz w asemblerze, musisz ciągle przełączać się tam iz powrotem, aby uzyskać dostęp do zmiennych przechowywanych w bankach innych niż bieżące.
Sprzęt komputerowy
Te MCU działają dość wolno, z typową prędkością 4 MIPS i maksymalną prędkością 20 MIPS. Mają kilka wbudowanych funkcji sprzętowych, które działają poprawnie, jeśli są odpowiednio skonfigurowane, takich jak ADC, port szeregowy, port równoległy, magistrala CAN, magistrala I2C, magistrala SPI, porównanie napięcia, EEPROM i oczywiście uniwersalne porty I / O .
Dokumentacja
Narzędzia programistyczne
Microchip ma nowe narzędzie, VDI, które ułatwia konfigurację różnych funkcji sprzętowych MCU, które generują kod asemblera lub C. Lepsze niż przelewanie arkuszy danych.
Microchip oferuje MPLAB IDE od wielu lat i chociaż program powoli się poprawia, w porównaniu do narzędzi programistycznych dla komputerów PC (Visual C ++, Eclipse / NetBeans dla Java / itp.) Interfejs użytkownika jest bardzo słaby, a oprogramowanie nadal jest szczególnie wadliwe. Nie obsługuje również C ++, mimo że różnica między C i większością funkcji C ++ (z wyłączeniem alokacji pamięci dynamicznej, funkcji wirtualnych i kilku innych funkcji) jest bardzo niewielka, a C ++ zachęca do modułowości programowania. Istnieją zewnętrzni dostawcy IDE, szczególnie IAR, ale są drogie. (Hi-Tech został niedawno wykupiony przez Microchip.)
Debugowanie w obwodzie jest oferowane w niektórych częściach przez interfejs ICD Microchip, 2-pinowy interfejs szeregowy, do którego można uzyskać dostęp za pomocą adapterów debugujących ICD2, ICD3 , REAL ICE , PICkit2 / 3 itd. Upewnij się, czy wybrana część ma funkcje ICD! Funkcje debugowania są nieco ograniczające i mają „poślizg”, w którym ustawiasz punkt przerwania dla jednej instrukcji, a program zatrzymuje kilka instrukcji później. Jednak ICD jest lepszy niż nic.
Wsparcie
źródło
Blackfin firmy Analog Devices Rodzina Blackfin to hybrydowy procesor DSP / mikrokontroler z silnym rdzeniem RISC, a także obsługuje instrukcje przetwarzania wideo / sygnału. Niektóre instrukcje obsługują SIMD.
Sprzęt komputerowy
Ma rdzeń RISC. Zakres prędkości wynosi od 200 MHz jednordzeniowy do 600 MHz dwurdzeniowy. Może mieć urządzenia peryferyjne: 10/100 Ethernet MAC, UARTS, SPI, kontroler CAN, Timery z obsługą PWM, Watchdog Timer, zegar czasu rzeczywistego oraz bezklejowy synchroniczny i asynchroniczny kontroler pamięci. Ma dynamiczne zarządzanie energią - automatycznie wyłącza nieużywane części procesora.
Rozwój
Dwa podstawowe narzędzia programistyczne to VisualDSP ++ AD i łańcuch narzędzi GNU. Istnieje również zestaw SDK z dużą ilością kodu i uwag dotyczących aplikacji. Kod SDK służy jako struktura lub dobre przykłady kodu. Istnieje kilka systemów operacyjnych, w tym uCLinux, które będą na nim działały. Dostępnych jest wiele tablic ewaluacyjnych . Te podręczniki są niezbędne.
Ceny obecnie od 2 $ w ilościach 1000 sztuk.
źródło
Parallax Propeller jest oddbird 8-core (osiem „KWS” plus hub) mikrokontroler, który może zrobić bardzo ciekawe / imponujące rzeczy w tym pokoleniu wideo SD / VGA.
Ma własne środowisko programistyczne, w tym język o nazwie SPIN. Montaż (PASM) jest oczywiście dostępny.
Istnieje znaczne wsparcie społeczności i widoczne projekty korzystające z chipa.
Nie ma szerokiej gamy modeli, ale układ wydaje się być wynikiem bardzo starannego projektowania i długiego rozwoju opracowanego przez bardzo utalentowanych i kompetentnych ludzi. Może być dostępny za około 8 USD.
Sprzęt do programowania (wewnątrz systemu) najwyraźniej składa się z portu szeregowego na poziomie TTL i linii zerowania. Dostępny jest klucz sprzętowy o nazwie Prop Plug.
http://parallax.com
http://en.wikipedia.org/wiki/Parallax_Propeller
źródło
Co powiesz na STM32 , kolejną rodzinę mcu opartą na Cortex-M3?
Rozpoczęcie pracy jest tanie, ponieważ znalazłem kilka dobrych rzeczy od Olimex.
Następnie używam gcc jako kompilatora, a OpenOCD do sterowania jtag.
źródło
dsPIC33F i PIC24 : Microchip ma rodzinę 16-bitowych mikrokontrolerów 40 MIPS o nazwie dsPIC33F, które łączą zestaw instrukcji PIC24F i urządzenia peryferyjne z funkcjami DSP, takimi jak dwa 40-bitowe akumulatory z opcjami zaokrąglania i nasycania; w jednym cyklu mnożą się i kumulują; i do ± 16-bitowych przesunięć dla danych do 40-bitowych. Ceny są niskie (już od 2 USD). Jedną z rzeczy, które lubię w mikrokontrolerach Microchip, jest to, że wiele ich urządzeń jest dostępnych w pakietach DIP, które idealnie nadają się do makietowania. Użyłem jednego z nich w projekcie, w którym musiałem dekodować sygnały DTMF; było bardziej opłacalne niż dedykowane rozwiązanie sprzętowe dekodera DTMF. W niesamowitym uWatch zastosowano PIC24, „Najpotężniejszy na świecie (i tylko!) Programowalny zegarek kalkulator naukowy RPN / algebraiczny”.
źródło
Cypress PSoC1 (CY8C29466) ma prosty 8-bitowy rdzeń procesora otoczony blokami cyfrowymi i analogowymi podobnymi do FPGA.
Ma zarówno wejścia analogowe, jak i wyjścia analogowe. Wiele projektów, które wymagałyby wielu zewnętrznych części z dowolnym innym mikrokontrolerem - wzmacniaczy operacyjnych, PGA itp. - można wykonać za pomocą jednego układu PSoC. Wiele myszy komputerowych korzysta z PSoC1. Na przykład, może dekodować tony DTMF przychodzące na jeden pin wejściowy i bezpośrednio generować niezależne analogowe sygnały DTMF na dwóch pinach wyjściowych - prawdziwy analog, a nie PWM.
Bloki cyfrowe i analogowe można skonfigurować tak, aby działały całkowicie niezależnie od rdzenia - a zatem z gwarantowanym stałym czasem reakcji, nawet jeśli procesor jest zajęty przetwarzaniem przerw w tym czasie.
Dość niska moc. Występuje zarówno w pakietach DIP, jak i SMT.
8-bitowy rdzeń 24 MHz jest mniej więcej równoważny rdzeniu PIC16F, dziwacznemu przełączaniu banków i wszystkim innym. Dostępne są zastrzeżone kompilatory C, ale jest mało prawdopodobne, aby GCC kiedykolwiek został przeniesiony na którykolwiek z nich.
Projekt „Gainer.cc” programuje systemy oparte na PSoC1 za pomocą przetwarzania przez kabel USB, bardzo podobny do późniejszego projektu „Arduino”.
Forum http://www.psocdeveloper.com/ jest przyjazne. Istnieje kilka narzędzi do programowania w Linuksie: http://m8cutils.sourceforge.net/ .
źródło
Mikroskopy Freescale HCS08 są bezpośrednimi konkurentami dla PIC10-18 i AVR, generalnie tańszych, ale wciąż z dość bogatym zestawem urządzeń peryferyjnych. Ich biblioteka notatek i materiałów referencyjnych jest całkiem dobra.
Ich CodeWarrior IDE (darmowy kompilator do kodu do 32k) zawiera kilka użytecznych bibliotek „inicjalizacji urządzenia” do podejścia opartego na graficznym interfejsie użytkownika do przerzucania bitów oraz bardziej zaawansowanego „procesora eksperta”, który może generować sterowniki wyższego poziomu dla urządzeń peryferyjnych. Nie jesteś zobowiązany do korzystania z nich i możesz po prostu zrobić wszystko w prostym kodzie C, jeśli chcesz.
źródło
Seria procesorów DSP TI TMS320F28xx .
Rynek docelowy
Sterowanie silnikiem i cyfrowo sterowane przetworniki mocy: mają bardzo elastyczne urządzenia peryferyjne PWM i szybkie ADC.
Sprzęt komputerowy
Te DSP mają dwie główne wady:
Narzędzia programistyczne
Debugowanie w czasie rzeczywistym przez port JTAG przy użyciu Code Composer v4 (oparty na Eclipse !!!).
Obsługiwane przez MatLAB simulink do automatycznego generowania kodu (nie wymaga doświadczenia w programowaniu)
Procesory DSP firmy TI były bardzo drogie do prototypowania, ponieważ potrzebowaliśmy 1500 $ debugowania kapsuły w czasie rzeczywistym (adapter JTAG), ale cena tego spadła (jest niedrogi za 150-200 $) i sprzedają płyty ewaluacyjne z wbudowane adaptery JTAG.
źródło
XMOS produkuje szereg bardzo wydajnych 32-bitowych układów przetwarzania równoległego (1600 MIPS z czterech rdzeni z 32 wątkami sprzętowymi). Są wystarczająco szybkie, aby wykonać szybkie oprogramowanie USB i Ethernet. Ich narzędzia są bardzo dobre, żetony są świetne, są w rozsądnej cenie (zaczynają się od 7,50 $), a ludzie tam są bardzo pomocni. Mają dwa bardzo dobre fora wsparcia; jeden jest prowadzony przez firmę, drugi jest niezależny.
źródło
Będę musiał głosować na Cypress PSoC3. Używam PIC od około 10 lat (PIC16, PIC18, dsPIC i PIC32). W pewnym sensie doprowadzają mnie do szaleństwa za pomocą irytującej konfiguracji urządzeń peryferyjnych i ciągłego przeszukiwania arkusza danych w celu znalezienia jednego bitu, który należy wyczyścić, aby niektóre pin działały.
Z drugiej strony doświadczenie, jakie miałem do tej pory z PSoC3, było przyjemnością. Co najważniejsze, konfiguracja cyfrowych i analogowych urządzeń peryferyjnych to całkowita radość. Porty szeregowe, zegary, przerwania, sterowniki, komparatory Przetworniki ADC i przetworniki cyfrowo-analogowe można podłączyć na schemacie i działają one doskonale.
Na przykład, możesz podłączyć PWM, aby uruchomić ADC w próbce w środku impulsu, dzięki czemu pomiar prądu silnika jest dokładniejszy. Spróbuj zrobić to na PIC.
Chcesz 5 PWM, 5 dekoderów kwadraturowych, ADC, portu SPI i generatora CRC na tym samym układzie? Masz to. Chcesz skonfigurować ADC do sekwencyjnego próbkowania prądu w każdym silniku w środku impulsu? Masz to. Ponadto możesz podłączyć wszystkie te wejścia i wyjścia do prawie dowolnego styku.
O tak, ORAZ, jeśli w bibliotece nie ma dostępnych urządzeń peryferyjnych, możesz napisać własne w verilog!
źródło
Cypress PSoC5 ma 32-bitowy ARM Cortex M3 otoczony przez cyfrowe i analogowe bloki FPGA.
Analogowy ADC i DAC o rozdzielczości 20 bitów.
Bloki cyfrowe i analogowe można skonfigurować tak, aby działały całkowicie niezależnie od rdzenia - a zatem z gwarantowanym stałym czasem reakcji, nawet jeśli procesor jest zajęty przetwarzaniem przerw w tym czasie.
Dość niska moc.
32-bitowy rdzeń ARM Cortex-M3 80 MHz jest w przybliżeniu równoważny ...
Forum http://www.psocdeveloper.com/ jest przyjazne.
źródło
Własne wsparcie Atmel dla AVR nie jest zbyt dobre, a ich narzędzia sprzętowe są nieco niestabilne. Chipy są jednak miłe, a forum AVR Freaks jest bardzo dobre. Mają poważne problemy z dostawą z nowszymi układami, takimi jak XMega i 6-pinowe układy Tiny.
źródło
Zilog ma również kilka mikrokontrolerów. Osobiście nie próbowałem programować linii układów Z8 Encore , ale wysyłają próbki. Mają wiele różnych układów od 1 KB do 16 KB (może więcej) z urządzeniami peryferyjnymi, w tym UART, ADC, I2C , SPI itp.
Moim zdaniem nie jest to bardzo dobry mikrokontroler hobbystyczny.
źródło
Użyłem kilku rodzin procesorów. Głównym problemem w nauce nowego procesora jest nauczenie się kodowania setek rejestrów konfiguracji rejestrów peryferyjnych, będzie to główny czasochłonny proces, gdy przejdziesz z jednej rodziny do drugiej. główny kod aplikacji jest zapisany w c, nie ma znaczenia, z jakiej rodziny korzystamy, chciałbym, aby opracowano standard dla rejestrów peryferyjnych. Jeśli ktoś jest świadomy jakiegokolwiek rozwoju w tym kierunku, proszę go udostępnić.
źródło
Używam PIC, ARM, MSP430, AVR i kilku innych.
Microchip ma doskonałe wsparcie oraz dobre narzędzia sprzętowe i programowe, debugowanie jest szczególnie łatwe i szybkie. 8-bitowa architektura jest nieco przestarzała. Ich nowsze 16-bitowe układy są doskonałe. Są liderem na rynku 8-bitowych MCU.
źródło