Ich habe Erfahrung mit Assembler- und C-Programmierung für Mikrocontroller, bin aber mit den verschiedenen MCU- und DSP-Familien der heutigen Unternehmen nicht vertraut. (zB: Texas Instruments, Atmel, Renesas)
Ich würde gerne etwas über die guten Mikrocontroller / DSPs wissen und wie es ist, sich mit ihnen zu entwickeln. Bitte fassen Sie Ihr Verständnis über die verschiedenen MCU / DSP-Familien zusammen, eine Familie pro Antwort.
Es wäre auch sehr interessant, wenn Sie die Hauptanwendung (en) für diesen (ese) Mikrocontroller beschreiben.
(Dies ist ein "Community-Wiki", so dass jeder mit> 100 Reputation die Antworten verfeinern und verbessern kann.)
microcontroller
development
design
dsp
Edward
quelle
quelle
Antworten:
ARM ist der Industriestandard für 32-Bit-Controller, obwohl der PIC32 einige nette Funktionen hat. Sie sind sehr einfach zu bedienen. Ich mag die NXP LPC2000- und LPC1000-ARM-Chips, aber der neue Energy Micro ARM Cortex-M3- Chip ist wegen seines sehr geringen Stromverbrauchs sehr interessant - so gut wie der MSP430 [Youtube]. Die Unterstützung ist sehr unterschiedlich, die NXP-Chips haben die von mir betriebene LPC2000- Gruppe, die den Leuten zu gefallen scheint - wir haben über 8.000 Mitglieder!
quelle
Atmel AVR , vielleicht in einem Arduino : Ich würde Leon widersprechen und sagen, dass Atmels AVR-Linie eine großartige Familie ist, um damit zu beginnen. Es ist ziemlich vielfältig und reicht vom ATtiny über den ATmega bis zum Dragon (mit dem ich noch nicht gearbeitet habe). Ich würde sagen, dass der AVR32 und der Xmega verschiedene Familien sind.
AVRfreaks ist eines der besten Elektronikforen im Web (wird bald von Chiphacker übertroffen :), es gibt auch die Arduino-Community, die sich an Hobbyisten richtet. Arduino eignet sich hervorragend zum Erlernen von Mikrocontroller-Hardware, auch wenn es Ihnen beim Programmieren nicht hilft (das OP gab an, ASM und C zu kennen).
Die WinAVR-Suite ist im Vergleich zu anderen Toolchains kinderleicht. Einfach herunterladen, einige Male auf Weiter drücken, Code eingeben und F5 drücken. Einfacher geht es nicht. Sicher, der AVR Studio-Editor verfügt nicht über alle Funktionen, die er haben sollte, aber viele Hersteller-IDEs sind weder besser noch schlechter (* hust * MPLAB * hust *).
Bei der Lieferung bin ich mir nicht sicher, aber ich würde sagen, dass der 6-polige SOT23 ATtiny ein Nischenchip ist und die SO8- oder DIP-Version sehr gut verfügbar ist. In diesem Zusammenhang leisten sie auch hervorragende Arbeit bei der Beschaffung von DIP-Paketen (für das Prototyping) und kompakten SMT-Paketen.
quelle
TI MSP430 Serie
Hardware
Die Vielfalt der Hardware-Peripheriegeräte ist nicht so flexibel wie die Microchip-PICs, aber die Unterstützung der Toolchain für das Software-Debugging ist viel besser als die von Microchip. TI hat kürzlich seine neue Version von Code Composer für die MSP430-Mikrocontroller und TMS320F28xx-DSPs veröffentlicht, die Eclipse verwenden. Die Debugging-Unterstützung ist hervorragend.
Diese Steuerregister lassen sich auch sehr einfach einrichten, viel einfacher als die 28xx-DSPs.
Der MSP430 eignet sich hervorragend für zeitintensive Anwendungen, da normalerweise mehr Erfassungs- / Vergleichsregister zur Verfügung stehen. Dies kann Systeme, in denen Sie mit vielen, vielen zeitintensiven Peripheriegeräten arbeiten müssen, erheblich vereinfachen.
Entwicklung
Sie können ein Entwicklungssystem für 150 US-Dollar kaufen (es gibt eine günstigere Variante des MSP430-on-a-USB-Stick für 20 US-Dollar, aber dies ist ein bisschen einschränkend), und Sie erhalten ein echtes Hardware- + Debugger-Prototyping-System. Sie können auch das neue TI- Launchpad erwerben, das mit 2 Chips geliefert wird und 4,30 US-Dollar kostet.
quelle
Mikrochip PIC 16F / 18F
Zielmarkt
Preiswerte 8-Bit-Mikroprozessoren. Der 16F ist einer der früheren Prozessoren von Microchip und lässt sich nicht besonders gut in C / C ++ programmieren, da:
Die 18F-Serie ist neuer und sollte in Betracht gezogen werden, wenn Sie es sich für Ihr Projekt leisten können. Es ist in Bezug auf Zielmarkt, Peripheriegerät, IC-Pakete, Entwicklungstools und Preis der 16F-Serie ähnlich. Der 18F-Core wurde so konzipiert, dass er für C und C ++ besser geeignet ist, und zwar aufgrund von:
Software
Sie können ganz einfach programmieren, indem Sie die 30 Montageanweisungen verwenden oder einen C-Compiler verwenden . Dies sind 8-Bit-MCUs. Wenn Sie also mit Werten> 255 arbeiten möchten, müssen Sie den 2-Byte-Additions- / Subtraktions- / Multiplikations- / Divisionscode selbst suchen / schreiben. Sein RAM hat 4 "Bänke". Wenn Sie also in Assembler schreiben, müssen Sie immer wieder hin und her schalten, um auf Variablen zuzugreifen, die in anderen Bänken als der aktuellen gespeichert sind.
Hardware
Diese MCUs arbeiten mit einer typischen Geschwindigkeit von 4 MIPS und einer maximalen Geschwindigkeit von 20 MIPS recht langsam. Sie verfügen über einige integrierte Hardwarefunktionen, die bei ordnungsgemäßer Konfiguration einwandfrei funktionieren, wie z. B. ADC, serielle Schnittstelle, parallele Schnittstelle, CAN-Bus, I2C-Bus, SPI-Bus, Spannungsvergleich, EEPROM und natürlich alle zweckgebundenen E / A-Ports .
Dokumentation
Entwicklungswerkzeuge
Microchip verfügt über ein neues Tool, das VDI , mit dem die verschiedenen Hardwarefunktionen der MCU einfacher konfiguriert werden können. Dabei wird Assembly- oder C-Code generiert. Besser als über die Datenblätter zu gießen.
Microchip bietet seine MPLAB-IDE seit vielen Jahren an, und obwohl sich das Programm langsam verbessert hat, ist die Benutzeroberfläche im Vergleich zu PC-Entwicklungstools (Visual C ++, Eclipse / NetBeans für Java / usw.) sehr schlecht und die Software immer noch besonders fehlerhaft. Es wird auch C ++ nicht unterstützt, obwohl der Unterschied zwischen C und den meisten C ++ - Funktionen (ausgenommen dynamische Speicherzuweisung, virtuelle Funktionen und einige andere Funktionen) sehr gering ist und C ++ die Modularität der Programmierung fördert. Es gibt IDE-Anbieter von Drittanbietern, insbesondere IAR, die jedoch teuer sind. (Hi-Tech wurde kürzlich von Microchip aufgekauft.)
In-Circuit-Debugging wird in einigen Teilen von der ICD-Schnittstelle von Microchip angeboten, einer 2-poligen seriellen Schnittstelle, auf die über die Debugging-Adapter ICD2, ICD3 , REAL ICE , PICkit2 / 3 usw. zugegriffen werden kann die ICD-Funktionen! Die Debugging-Funktionen sind etwas einschränkend und haben "Skid", bei dem Sie einen Haltepunkt für eine Anweisung festlegen und das Programm einige Anweisungen später anhält. ICD ist jedoch besser als nichts.
Unterstützung
quelle
Blackfin von Analog Devices Die Blackfin-Familie ist ein hybrider DSP / Mikrocontroller mit einem starken RISC-Kern und Anweisungen zur Video- / Signalverarbeitung. Einige Anweisungen unterstützen SIMD.
Hardware
Es hat einen RISC-Kern. Die Geschwindigkeiten reichen von 200 MHz Single-Core bis 600 MHz Dual-Core. Es verfügt über Peripheriegeräte: 10/100 Ethernet MAC, UARTS, SPI, CAN-Controller, Timer mit PWM-Unterstützung, Watchdog-Timer, Echtzeituhr und einen leimlosen synchronen und asynchronen Speichercontroller. Es verfügt über ein dynamisches Energie-Management, das nicht verwendete Teile des Prozessors automatisch herunterfährt.
Entwicklung
Die beiden wichtigsten Entwicklungstools sind VisualDSP ++ von AD und die GNU-Toolchain. Es gibt auch ein SDK mit zahlreichen Code- und Anwendungshinweisen. Der SDK-Code dient entweder als Framework oder als gutes Codebeispiel. Es gibt mehrere Betriebssysteme, einschließlich uCLinux, die darauf ausgeführt werden. Es gibt eine Reihe von Evaluierungsboards . Die Handbücher sind unverzichtbar.
Preis derzeit von 2 $ in Mengen von 1000 Einheiten.
quelle
Der Parallax Propeller ist ein Oddbird-8-Core-Mikrocontroller (acht "Cogs" plus Hub), der sehr interessante und beeindruckende Funktionen einschließlich der Erzeugung von SD / VGA-Videos ausführen kann.
Es hat eine eigene Entwicklungsumgebung mit einer Sprache namens SPIN. Assembly (PASM) ist selbstverständlich verfügbar.
Es gibt beträchtliche Gemeinschaftsunterstützung und sichtbare Projekte, die den Chip verwenden.
Es gibt keine große Auswahl an Modellen, aber der Chip scheint das Ergebnis eines sehr sorgfältigen Designs und einer langen Entwicklungszeit zu sein, die von einigen äußerst talentierten und kompetenten Leuten durchgeführt wurde. Es kann für rund 8 $ erhältlich sein.
Die (systeminterne) Programmierhardware besteht anscheinend aus einem seriellen TTL-Port und einer Rücksetzleitung. Es gibt einen Dongle namens Prop Plug.
http://parallax.com
http://en.wikipedia.org/wiki/Parallax_Propeller
quelle
Wie wäre es mit dem STM32 , einer anderen Cortex-M3-basierten MCU-Familie?
Es ist billig anzufangen, da ich ein paar gute Sachen von Olimex gefunden habe.
Dann benutze ich gcc als Compiler und OpenOCD, um den jtag zu steuern.
quelle
dsPIC33F und PIC24 : Microchip verfügt über eine Familie von 16-Bit-40-MIPS-Mikrocontrollern mit der Bezeichnung dsPIC33F, die ihren PIC24F-Befehlssatz und ihre Peripherie mit DSP-Funktionen wie zwei 40-Bit-Akkumulatoren mit Rundungs- und Sättigungsoptionen kombinieren. Einzelzyklus multiplizieren und akkumulieren; und bis zu ± 16-Bit-Verschiebungen für bis zu 40-Bit-Daten. Die Preise sind niedrig (so niedrig wie $ 2 in Volumen). Eine Sache, die ich an Microchip-Mikrocontrollern mag, ist, dass viele ihrer Geräte in DIP-Paketen erhältlich sind, die sich ideal zum Steckbrettfahren eignen. Ich habe eines davon in einem Projekt verwendet, in dem ich DTMF-Signale decodieren musste. Es war kostengünstiger als eine dedizierte DTMF-Decoder-Hardwarelösung. Ein PIC24 wird in der erstaunlichen uWatch verwendet"Die leistungsstärkste (und einzige!) Programmierbare RPN / Algebraic Scientific Calculator-Uhr der Welt".
quelle
Cypress PSoC1 (CY8C29466) verfügt über einen einfachen 8-Bit-CPU-Kern, der von FPGA-ähnlichen digitalen und analogen Blöcken umgeben ist.
Es hat sowohl analoge Eingänge als auch analoge Ausgänge. Viele Projekte, bei denen mit einem anderen Mikrocontroller - Operationsverstärkern, PGAs usw. - mehrere externe Teile erforderlich wären, können mit einem einzigen PSoC-Chip ausgeführt werden. Viele Computermäuse verwenden eine PSoC1. Zum Beispiel kann es DTMF-Töne, die an einem Eingangsstift eingehen, decodieren und direkt unabhängige analoge DTMF-Signale an zwei Ausgangsstiften erzeugen - echt analog, nicht PWM.
Die digitalen und analogen Bausteine können so eingerichtet werden, dass sie völlig unabhängig vom Kern arbeiten - und das mit einer garantierten festen Reaktionszeit, selbst wenn die CPU während dieser Zeit mit Interrupts beschäftigt ist.
Ziemlich wenig Strom. Kommt in DIP- und SMT-Paketen.
Der 8-Bit-24-MHz-Kern entspricht in etwa dem PIC16F-Kern, der ein eigenartiges Bank-Switching ermöglicht. Proprietäre C-Compiler sind verfügbar, aber es ist unwahrscheinlich, dass GCC jemals auf einen dieser Compiler portiert wird.
Das Projekt "Gainer.cc" programmiert PSoC1-basierte Systeme mithilfe der Verarbeitung über ein USB-Kabel, was dem späteren Projekt "Arduino" sehr ähnlich ist.
Das http://www.psocdeveloper.com/-Forum ist freundlich. Für die Entwicklung unter Linux stehen einige Dienstprogramme zur Verfügung: http://m8cutils.sourceforge.net/ .
quelle
Freescale HCS08- Mikros sind direkte Konkurrenten von PIC10-18 und AVRs, die im Allgemeinen kostengünstiger sind, aber immer noch ein ziemlich umfangreiches Peripheriegerät besitzen. Die Bibliothek mit App-Notizen und Referenzmaterial ist ziemlich gut.
Ihre CodeWarrior-IDE (kostenloser Compiler für bis zu 32 KB Code) enthält einige nützliche "Geräteinitialisierungs" -Bibliotheken für eine GUI-gesteuerte Methode zum Spiegeln von Bits und einen fortgeschritteneren "Prozessor-Experten", der Treiber höherer Ebene für Peripheriegeräte generieren kann. Sie sind auch nicht verpflichtet, dies zu tun, und können auf Wunsch einfach alles in direktem C-Code ausführen.
quelle
DSP- Serie TI TMS320F28xx .
Zielmarkt
Motorsteuerung und digital gesteuerte Stromrichter: Sie verfügen über sehr flexible PWM-Peripheriegeräte und schnelle ADCs.
Hardware
Diese DSPs haben zwei Hauptnachteile:
Entwicklungswerkzeuge
Echtzeit-Debugging über den JTAG-Port mit Code Composer v4 (Eclipse-basiert !!!).
Unterstützt von MatLAB Simulink für die automatische Codegenerierung (keine Programmiererfahrung erforderlich)
Die DSPs von TI waren in der Vergangenheit für Prototypen sehr teuer, da ein Echtzeit-Debugging-Pod (JTAG-Adapter) für 1500 US-Dollar erforderlich war. Der Preis dafür ist jedoch deutlich gesunken (es gibt einen kostengünstigen für 150 bis 200 US-Dollar) und sie verkaufen Evaluierungsboards mit eingebaute JTAG-Adapter.
quelle
XMOS stellt eine Reihe sehr leistungsfähiger 32-Bit-Parallelverarbeitungschips her (1600 MIPS aus vier Kernen mit 32 Hardware-Threads). Sie sind schnell genug, um Hochgeschwindigkeits-USB und -Ethernet in Software auszuführen. Ihre Werkzeuge sind sehr gut, die Chips sind hervorragend, sie haben einen vernünftigen Preis (sie beginnen bei 7,50 USD) und die Leute dort sind sehr hilfsbereit. Sie haben zwei sehr gute Support-Foren; einer wird von der Firma geführt, der andere ist unabhängig.
quelle
Ich muss für die Cypress PSoC3 stimmen. Ich benutze PICs seit ungefähr 10 Jahren (PIC16, PIC18, dsPIC und PIC32). Sie machen mich verrückt wegen ihrer irritierenden Peripheriekonfiguration und dem ständigen Durchsuchen des Datenblattes, um das eine Bit zu finden, das gelöscht werden muss, damit etwas funktioniert.
Andererseits war die Erfahrung, die ich bisher mit den PSoC3s gemacht habe, eine Freude. Vor allem die Konfiguration der digitalen und analogen Peripheriegeräte ist eine Freude. Serielle Schnittstellen, Taktgeber, Interrupts, Treiber, Komparatoren, ADCs und DACs können alle auf einem Schaltplan verdrahtet werden und funktionieren einwandfrei.
Sie können beispielsweise Ihr PWM so verkabeln, dass der ADC mitten in einem Impuls abtastet, wodurch die Motorstrommessung genauer wird. Versuchen Sie das auf einem PIC.
Wünschen Sie sich 5 PWMs, 5 Quadraturdecoder, einen ADC, einen SPI-Port und einen CRC-Generator auf demselben Chip? Du hast es. Sie möchten den ADC so konfigurieren, dass der Strom in jedem Motor in der Mitte des Impulses sequentiell abgetastet wird? Du hast es. Außerdem können Sie all diese Ein- und Ausgänge mit fast jedem beliebigen Pin verbinden.
Oh ja, UND, wenn in der Bibliothek kein Peripheriegerät verfügbar ist, können Sie Ihr eigenes in Verilog schreiben!
quelle
Cypress PSoC5 verfügt über einen 32-Bit-ARM-Cortex M3, der von FPGA-ähnlichen digitalen und analogen Blöcken umgeben ist.
Analoger ADC und DAC mit 20 Bit Auflösung.
Die digitalen und analogen Bausteine können so eingerichtet werden, dass sie völlig unabhängig vom Kern arbeiten - und das mit einer garantierten festen Reaktionszeit, selbst wenn die CPU während dieser Zeit mit Interrupts beschäftigt ist.
Ziemlich wenig Strom.
Der 32-Bit-ARM-Cortex-M3-Kern mit 80 MHz entspricht in etwa ...
Das http://www.psocdeveloper.com/-Forum ist freundlich.
quelle
Atmels eigene Unterstützung für den AVR ist nicht sehr gut und die Hardware-Tools sind ein bisschen unzuverlässig. Die Chips sind jedoch nett und das AVR Freaks-Forum ist sehr gut. Sie haben ernsthafte Lieferprobleme mit ihren neueren Chips wie dem XMega und den 6-Pin Tiny Chips.
quelle
Zilog hat auch einige Mikrocontroller. Persönlich habe ich nicht versucht, die Z8 Encore- Reihe von Chips zu programmieren , aber sie senden Samples. Sie haben viele verschiedene Chips im Bereich von 1 KB bis 16 KB (möglicherweise mehr) mit Peripheriegeräten wie UART, ADC, I2C , SPI usw.
Meiner Meinung nach ist dies kein sehr guter Hobby-Mikrocontroller.
quelle
Ich habe mehrere Prozessorfamilien verwendet. Das Hauptproblem beim Erlernen eines neuen Prozessors ist das Codieren von Hunderten von Konfigurationsregistern von Peripherieregistern. Dies ist der zeitaufwändige Hauptprozess, wenn Sie von einer Familie zur anderen wechseln. Da der Hauptanwendungscode in c geschrieben ist, spielt es keine Rolle, welche Familie wir verwenden, ich wünschte, es hätte einen Standard für die Peripherieregister entwickelt. Wenn jemand Kenntnis von einer Entwicklung in diese Richtung hat, teilt er dies bitte mit.
quelle
Ich benutze PIC, ARM, MSP430, AVR und einige andere.
Microchip bietet exzellenten Support und gute Hardware- und Softwaretools. Das Debuggen ist besonders einfach und schnell. Die 8-Bit-Architektur ist etwas veraltet. Ihre neueren 16-Bit-Chips sind ausgezeichnet. Sie sind Marktführer bei 8-Bit-MCUs.
quelle