Ich arbeite an einem Projekt mit einer Gruppe und bin für den digitalen Teil des Projekts verantwortlich, also werde ich den Code schreiben. Um von Analog zu Digital zu wechseln, muss ich einen Mikrocontroller auswählen.
Ich habe mir TI-Mikrocontroller angesehen und festgestellt, dass sie so viele haben. Sie haben:
Stellaris
Herkules
MSP430-Serie
Und die Liste geht weiter..
Meine Fragen:
Welchen Mikrocontroller verwendet man und warum?
Unter welchen Bedingungen sollte ich den Mikrocontroller X anstelle von Y verwenden?
Warum gibt es so viele verschiedene Mikrocontroller?
Ich bin ein TI-Mitarbeiter, der in einer MCU-Entwicklungsgruppe arbeitet, aber dies ist keine offizielle Aussage von TI. Insbesondere ist dies keine offizielle Aussage über Roadmaps oder Prioritäten. Außerdem bin ich nicht im Marketing tätig, wenn ich also einem unserer Marketingmaterialien widerspreche, haben sie Recht und ich falsch. :-)
Die Antwort von MD ist richtig, aber ich dachte, ein paar mehr Details wären hilfreich. TI zielt auf verschiedene Anwendungen mit unterschiedlichen Anforderungen ab. Wenn Sie um einen MCU-Sockel konkurrieren (und es gibt viel Konkurrenz in dieser Branche), spielen sowohl die Funktionen als auch der Preis eine Rolle. Eine Kostendifferenz von zehn Cent kann die Steckdose gewinnen oder verlieren. Einer der Hauptkostentreiber ist die Chipgröße – wie viel Material auf dem Chip ist. Daher ist es sinnvoll, unterschiedliche Produktlinien und unterschiedliche Familien innerhalb dieser Produktlinien zu haben. Produktlinien unterscheiden sich hauptsächlich in Peripherietypen und Architektur, während sich Familien innerhalb einer Produktlinie hauptsächlich in Bezug auf Kosten und Funktionsumfang unterscheiden.
Hier einige Details zu den Produktlinien:
Wie Sie sehen können, zielen diese Produktlinien auf sehr unterschiedliche Anwendungen mit sehr unterschiedlichen Anforderungen ab. Es wäre eine Katastrophe, einen 300-MHz-Hercules-Chip in ein batteriebetriebenes Gerät einzubauen, aber auch einen MSP430 in einen Airbag. Auch die körperliche Größe kann eine Rolle spielen. Ein 337-Pin-BGA-Gehäuse ist umständlich in einen winzigen Sensor zu passen, aber es ist nichts für ein Stück Industrieausrüstung.
Innerhalb der Produktlinien gibt es mehrere Familien. C2000 Delfino-Geräte sind schneller, haben mehr Peripheriegeräte und mehr Pins auf ihren Gehäusen. Sie können auch (mindestens) doppelt so viel kosten wie ein Piccolo-Gerät. Welches brauchst du? Es hängt von Ihrer Anwendung ab. MSP430 hat einige Produkte, die Stromverbrauch und Leistung ausgleichen, und andere, die sich ausschließlich auf geringen Stromverbrauch konzentrieren. (Diese Ein-Batterie-MCU erreicht maximal 4 MHz und 2 kB RAM.)
Es gibt viele Produkte innerhalb jeder Familie, weil ständig neue Produkte entwickelt werden. Transistoren werden kleiner/billiger, sodass mehr Zeug auf einen Chip passt. Eine Mittelklasse-MCU von heute wäre vor zehn Jahren Ultra-High-End gewesen. Jedes Produkt wird normalerweise so hergestellt, dass es auf einige wenige spezifische Anwendungen abzielt und andere nach Möglichkeit unterstützt.
Schließlich gibt es mehrere Varianten jedes Produkts (AKA die letzte Ziffer in der Teilenummer). Diese haben in der Regel unterschiedliche Speicherkapazitäten und (möglicherweise) kleine Abweichungen bei den verfügbaren Peripheriegeräten. Auch hier geht es darum, eine Preisspanne bereitzustellen.
Die Kurzversion ist, dass jedes Produkt ein anderes Gleichgewicht zwischen Preis, Leistung und Funktionen bietet. Es ist die einfache alte Marktsegmentierung. Unsere Kunden sind Hersteller, denen kleine Preisunterschiede viel wichtiger sind als Endverbraucher. Die Leute kaufen jede Teilenummer, die wir haben, also ist die Nachfrage eindeutig da draußen. :-)
UPDATE: Jeremy fragte, wie sich die Anforderungen großer Kunden auf den Designprozess auswirken und ob wir kundenspezifische MCUs herstellen. Ich habe mehrere TMS470/570-MCUs gesehen, die für einen einzigen großen Automobilkunden hergestellt wurden. Diese Gruppe hatte auch ein paar MCUs, deren Architekturen von und für einen Kunden entworfen wurden. In mindestens einem davon schrieb der Kunde den größten Teil von RTL. Diese unterliegen strengen NDA-Beschränkungen, daher kann ich keine Details nennen.
Allgemeine Marktprodukte haben normalerweise mindestens einen großen Kunden im Auge. Manchmal erhalten Großkunden eine spezielle Teilenummer. Manchmal fügen wir ein Peripheriegerät hinzu, nur um einen großen Sockel zu gewinnen. Aber im Allgemeinen denke ich, dass große Kunden eher ein Boden als eine Decke sind, wenn es um Funktionen geht.
Ein extremes Beispiel für kundenspezifische Teile ist unsere Hochzuverlässigkeitsgruppe. Ich habe nur Geschichten über diese Typen gehört, aber anscheinend nehmen sie vorhandene Produkte und machen sie neu, damit sie unter extremen Bedingungen funktionieren – hohe Temperaturen, Strahlung, Leute, die auf Sie schießen, usw. Ich kenne jemanden, der HiRel TMS470 für Bohrlöcher kauft , wo die Temperatur 200 ° C erreichen kann. (Vielleicht dieses -- auf Lager bei Arrow für nur 400 $/Chip!) Sie haben eine Reihe von Standardprodukten auf der Website aufgelistet, aber wie ich gehört habe, können sie selbst in kleinen Mengen auf Bestellung bauen - Sie Sie können ein Dutzend HiRel-Versionen eines beliebigen Chips kaufen, wenn Sie bereit sind, mehr als 50.000 USD pro Chip auszugeben. :-)
Als Faustregel gilt, dass im Geschäft alles verhandelbar ist, wenn Sie genug Geld ausgeben.
MSP430 war/ist ein von TI entwickelter Kern. Es ist ein 16-Bit-Kern und wurde als extrem stromsparend vermarktet. Da der 16-Bit-MCU-Markt mit der Verbreitung des Arm Cortex-M0 schnell verdunstet, gibt es neuere MSP430s, die auf dem Cortex-Kern basieren. Die älteren MPS430 konkurrieren jetzt typischerweise um 8-Bit-Sockets.
Stellaris, umbenannt in Tiva, ist die ehemalige Luminary Micro MCUs. Dieses Unternehmen wurde vor vielleicht 6 oder 7 Jahren von TI übernommen. Dies waren (sind?) Cortex-M3/M4-basierte Geräte. Unter den meisten Umständen leistungsfähiger/leistungsstärker als der MSP430.
C2000 (Piccolo/Delfino/etc.) zielen auf Echtzeitsteuerung ab (Motorsteuerung, Leistungswandlung/-regelung usw.). Diese Familie hat auch DSP-Funktionalität der unteren Preisklasse. Eher auf Industrie und vielleicht einige Automobile ausgerichtet (eine der wenigen für den Automobilbereich qualifizierten TI-MCUs).
Hercules konzentriert sich auf Sicherheit. Redundanz, Laufzeitfehlerprüfung, BIST, viele Watchdog-Funktionen. Sicherheitskritische Anwendungen.
Es gibt mehrere andere Teile, die eine Mischung aus Merkmalen und/oder Nischenfunktionalität aufweisen (z. B. integriertes WLAN, Dual-Core, FRAM usw.). Und dann gibt es noch die leistungsfähigeren DSPs und Mikroprozessoren, die ebenfalls angeboten werden.
Was ist Ihre Anwendung? Volumen? Entwicklungszeitplan? Welche Peripherie/Ressourcen benötigen Sie? Wie viel und welche Art von Rechenleistung wird benötigt? Können Sie mit den analogen Peripheriegeräten der MCU mit geringerer Leistung auskommen, oder werden Sie die gesamte Signalpfadverarbeitung extern/diskret durchführen? Es gibt viele Faktoren bei der Auswahl eines Prozessors/Controllers für ein bestimmtes System/eine bestimmte Anwendung.
Microchip ist ein weiteres Unternehmen, das über eine komplette Reihe von Mikrocontrollern verfügt – über 4.000 sind bei Digi-Key auf Lager, einschließlich aller Gehäusevarianten. Wie TI decken sie die Bandbreite von 8 Bit bis 32 Bit ab:
~2700 8-bitters: from 384 bytes Flash and 16 bytes RAM to 128 KB Flash and 4 KB RAM
~1000 16-bitters: from 4 KB Flash and 256 bytes RAM to 1 MB Flash and 96 KB RAM
~500 32-bitters: from 16 KB Flash and 4 KB bytes RAM to 2 MB Flash and 512 KB RAM
Beachten Sie, dass die kleinste Größe in Bytes angegeben ist, nicht in KB.
Sie liegen im Preis von 35 ¢ bis 13,36 $ in Einzelmengen. Ich kann mir vorstellen, dass die preisgünstigsten in großen Mengen unter 20 ¢ gehen können. Vielleicht sogar 10 ¢ für ungetestete (wo der Kunde anstelle des Herstellers Abnahmetests durchführt). Das billigste 32-Bit-ARM ist in Einzelstückzahlen mit 76 ¢ doppelt so teuer. Für ein Massenprodukt ist das ein großer Unterschied. Der PIC10F200 ist der billigste µC von allen fast 15.000, die Digi-Key auf Lager hat.
Microchip hat auch einen ausgezeichneten Ruf für die Lagerhaltung seiner älteren µCs (in der Produktauswahl unten als "ausgereift" aufgeführt), was eine weitere zu berücksichtigende Sache ist.
Wie kann man das alles verstehen? Verwenden Sie eine Produktauswahl. Digi-Key, Mouser und andere Distributoren haben ziemlich gute, aber sie beinhalten nicht alle Parameter (der µC-Produktselektor von Digi-Key hat weniger als 20, die Tabelle unten hat über 50). Microchip (und ich stelle mir vor, andere Hersteller) haben umfangreichere, wie die untenstehende. Beachten Sie, dass Sie für fast alle Parameter Bereiche angeben können:
Jetzt mit der Übernahme von Atmel durch Microchip wird es interessant sein zu sehen, was passiert. Anscheinend gibt es einige Überschneidungen in einigen Zeilen.
Ohne genau ins Detail zu gehen, welche Angebote TI hat (das wurde hier ja schon beantwortet), möchte ich betonen, dass man Spezifikationen braucht. Wenn Sie sie nicht haben, gehen Sie davon aus, dass es Ihre Aufgabe ist, sie zu identifizieren. Dies kann etwas überwältigend sein, wenn Sie neu sind, aber lassen Sie uns einige Spezifikationen nennen, die in einem Projekt auftreten können:
Was wird die MCU tun? Ist es durch die CPU-Zeit eingeschränkt? Werden Sie eine "spezielle Verarbeitung" wie Fließkomma machen? Dies bestimmt die erforderliche CPU-Kern- und Taktfrequenz.
Oder wird es durch die Akkulaufzeit eingeschränkt? Wenn ja; Sie müssen die Standby-Modi, die ein Mikrocontroller zu bieten hat, untersuchen, Latenz zum Aufwachen, Aufweckquellen, Spannungsschiene für digital und analog (z. B. wenn Sie es direkt aus der Batterie speisen) usw. Beachten Sie außerdem alle E / A auch im System. Sie können einen großartigen Mikrocontroller haben, der im Ruhezustand 50 nA verbraucht - aber es ist vernachlässigbar, wenn zB ein LDO oder ein EEPROM 10 uA im Ruhezustand verbraucht.
Welches Paket können/müssen Sie verwenden? Wie viele Pins & welche Technologie? Wie viel Platz haben Sie, was können Sie zusammenbauen?
Wie viel Code werden Sie dafür schreiben? Haben Sie eine Vorstellung davon, wie viel RAM/FLASH Sie benötigen? Etwas praktische Erfahrung auf einem Devboard kann dabei helfen.
Welche Schnittstellen müssen Sie in Ihrem Systemdesign verwenden und wie möchten Sie sie verwenden? Grundlegende Startpunkte:
1) Geschwindigkeitsbeschränkungen (z. B. brauche ich einen USART, der mit 3 MBaud läuft)
2) Einschränkungen der Portanzahl (z. B. ich brauche 5 USARTs)
3) Durchsatzbeschränkungen (z. B. brauche ich DMA, um 2 Mbit/s Daten zum/vom USART zu übertragen)
4) Beobachten Sie alle "Ereignisse", die im System auftreten können, und welche Latenzen Sie einhalten müssen. Kann man zB einen Alarm-Pin eines Gerätes abfragen oder braucht man dafür einen externen Interrupt-Pin?
Dies kann eine schwierige Frage sein, egal ob Sie „von unten nach oben“ oder „von oben nach unten“ entwerfen. Wenn Sie "von oben nach unten" entwerfen, stellen Sie an dieser Stelle möglicherweise fest, dass es keinen Mikrocontroller mit 16 USARTs gibt, den das Systemdesign als selbstverständlich ansah.
OTOH, wenn Sie "von unten nach oben" entwerfen, können Sie einen Mikrocontroller auswählen, den Sie kennen und mit dem Sie vertraut sind, aber feststellen, dass er nicht die richtige Menge an E / A hat und "Klebechips" benötigt, um zu funktionieren.
Wenn überhaupt; Machen Sie sich mit den Angeboten der Anbieter vertraut. Es ist schön zu wissen, wo die Einschränkungen liegen, wenn Sie alle Ihre Wünsche in eine parametrische Suche eingeben und 0 Ergebnisse erhalten.
Es ist immer eine gute Idee, die Engpässe in einem Design zu identifizieren und zu versuchen, sie zu lösen. Ein Entwicklungsboard kann eine gute "praktische" Erfahrung sein, um Ihren Code in Bezug auf CPU-Zeit, Speicheranforderungen und "Macken" des Mikrocontrollers zu testen.
PlasmaHH
Eugen Sch.
Eugen Sch.
PlasmaHH
Wouter van Ooijen
Andrejs Gasilows
Wouter van Ooijen
DoxyLover
Passant
Chris o
SnakeDoc
Ale..chenski