Ich arbeite mit einer Gruppe an einem Projekt und bin für den digitalen Teil des Projekts verantwortlich, daher 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 einfach weiter ..
Meine Fragen:
Welchen Mikrocontroller benutzt man und warum?
Unter welchen Bedingungen sollte ich den Mikrocontroller X anstelle von Y verwenden?
Warum gibt es so viele verschiedene Mikrocontroller?
microcontroller
texas-instruments
Andy_A̷n̷d̷y̷
quelle
quelle
Antworten:
Ich bin ein TI-Mitarbeiter, der in einer MCU-Entwicklungsgruppe arbeitet, aber dies ist keine offizielle Aussage von TI. Dies ist insbesondere keine offizielle Aussage zu Roadmaps oder Prioritäten. Außerdem beschäftige ich mich nicht mit Marketing. Wenn ich also einem unserer Marketingmaterialien widerspreche, haben sie Recht und ich liege falsch. :-)
Die Antwort von MD ist richtig, aber ich dachte, ein paar Details wären hilfreich. TI zielt auf unterschiedliche Anwendungen mit unterschiedlichen Anforderungen ab. Wenn Sie um einen MCU-Sockel konkurrieren (und in dieser Branche herrscht große Konkurrenz), sind sowohl die Funktionen als auch der Preis von Bedeutung. Ein Kostenunterschied von zehn Cent kann den Sockel gewinnen oder verlieren. Einer der Hauptkostentreiber ist die Größe des Chips - wie viel Material auf dem Chip ist. Daher ist es sinnvoll, verschiedene Produktlinien und verschiedene Familien innerhalb dieser Produktlinien zu haben. Produktlinien unterscheiden sich hauptsächlich in Bezug auf 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, richten sich diese Produktlinien an sehr unterschiedliche Anwendungen mit sehr unterschiedlichen Anforderungen. Das Einsetzen eines 300-MHz-Hercules-Chips in ein batteriebetriebenes Gerät wäre eine Katastrophe, aber auch das Einsetzen eines MSP430 in einen Airbag. Die physische Größe kann ebenfalls von Bedeutung sein. Ein 337-poliges BGA-Gehäuse passt zwar umständlich in einen winzigen Sensor, ist aber nichts für industrielle Geräte.
Innerhalb der Produktlinien gibt es mehrere Familien. C2000 Delfino-Geräte sind schneller, haben mehr Peripheriegeräte und mehr Pins in ihren Paketen. Sie können auch (mindestens) doppelt so viel kosten wie ein Piccolo-Gerät. Welches brauchst du? Das hängt von Ihrer Anwendung ab. Der MSP430 bietet einige Produkte, die Stromverbrauch und Leistung in Einklang bringen, und andere, die sich ausschließlich auf niedrigen Stromverbrauch konzentrieren. (Diese Ein-Batterie-MCU erreicht eine maximale Kapazität von 4 MHz und 2 kB RAM.)
Es gibt viele Produkte in jeder Familie, da ständig neue Produkte entwickelt werden. Transistoren werden kleiner / billiger, so dass mehr Material auf einen Chip gelangen kann. Eine MCU mit mittlerer Reichweite wäre vor zehn Jahren Ultra-High-End gewesen. Jedes Produkt zielt in der Regel auf einige wenige spezifische Anwendungen ab und unterstützt andere, sofern dies möglich ist.
Schließlich gibt es mehrere Varianten von jedem Produkt (AKA die letzte Ziffer in der Teilenummer). Diese haben normalerweise unterschiedliche Speicherkapazitäten und (möglicherweise) geringe Schwankungen der verfügbaren Peripheriegeräte. Auch hier geht es darum, eine Preisspanne bereitzustellen.
Die kurze Version ist, dass jedes Produkt ein anderes Gleichgewicht zwischen Preis, Leistung und Funktionen bietet. Es ist eine einfache alte Marktsegmentierung. Unsere Kunden sind Hersteller, denen kleine Preisunterschiede viel wichtiger sind als Endverbraucher. Die Leute kaufen jedes Teil, das 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 einzelnen 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 hat der Kunde den größten Teil der RTL geschrieben. Diese unterliegen strengen NDA-Beschränkungen, daher kann ich keine Details angeben.
Allgemeine Marktprodukte haben in der Regel mindestens einen großen Kunden im Sinn. Manchmal erhalten Großkunden eine spezielle Teilenummer. Manchmal fügen wir ein Peripheriegerät hinzu, um einen großen Sockel zu gewinnen. Generell denke ich jedoch, dass große Kunden in Bezug auf Funktionen eher eine Etage als eine Decke sind.
Ein extremes Beispiel für kundenspezifische Teile ist unsere Gruppe mit hoher Zuverlässigkeit. Ich habe nur Geschichten über diese Typen gehört, aber anscheinend nehmen sie vorhandene Produkte und lassen sie unter extremen Bedingungen wieder funktionieren - hohe Temperaturen, Strahlung, Leute, die auf Sie schießen usw. Ich kenne jemanden, der HiRel TMS470 zum Bohren von Löchern kauft , wo die Temperatur 200C erreichen kann. (Vielleicht dieses hier - bei Arrow für nur 400 US-Dollar / Chip!) Sie haben eine Reihe von Standardprodukten auf der Website aufgelistet, aber wie ich gehört habe, können sie diese auch in kleinen Mengen auf Bestellung fertigen - 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 alles im Geschäft verhandelbar ist, wenn Sie genug Geld ausgeben.
quelle
MSP430 war / ist ein von TI entwickelter Kern. Es handelt sich um einen 16-Bit-Kern, der als extrem stromsparend vermarktet wurde. Da sich der 16-Bit-MCU-Markt mit der Verbreitung des Arm Cortex-M0 schnell verflüchtigt, gibt es neuere MSP430, die auf dem Cortex-Kern basieren. Die älteren MPS430 konkurrieren derzeit normalerweise um 8-Bit-Sockets.
Stellaris, umbenannt in Tiva, ist die frühere Luminary Micro-MCU. Das Unternehmen wurde vor 6 oder 7 Jahren von TI übernommen. Dies waren (sind?) Cortex-M3 / M4-basierte Geräte. In den meisten Fällen leistungsstärker als der MSP430.
C2000 (Piccolo / Delfino / etc.) Sind auf Echtzeitsteuerung (Motorsteuerung, Leistungsumwandlung / -regelung usw.) ausgerichtet. Diese Familie hat auch eine niedrigere DSP-Funktionalität. Zielgruppe sind eher Industrie- und vielleicht einige Automobilhersteller (eine der wenigen für die Automobilindustrie qualifizierten TI-MCUs).
Herkules konzentriert sich auf Sicherheit. Redundanz, Laufzeitfehlerprüfung, BIST, viele Watchdog-Funktionen. Sicherheitskritische Anwendungen.
Es gibt mehrere andere Teile mit einer Mischung aus Funktionen und / oder Nischenfunktionen (z. B. integriertes Wireless, Dual Core, FRAM usw.). Und dann gibt es noch die leistungsfähigeren DSPs und Mikroprozessoren.
Was ist Ihre Bewerbung? Volumen? Entwicklungs-Timeline? Welche Peripheriegeräte / Ressourcen benötigen Sie? Wie viel - und welche - Rechenleistung wird benötigt? Kommen Sie mit den leistungsschwächeren analogen Peripheriegeräten der MCU zurecht oder erledigen Sie die gesamte Signalpfadverarbeitung extern / diskret? Es gibt viele Faktoren bei der Auswahl eines Prozessors / Controllers für ein bestimmtes System / eine bestimmte Anwendung.
quelle
Microchip ist ein weiteres Unternehmen, das über ein komplettes Sortiment an Mikrocontrollern verfügt - über 4.000 bei Digi-Key, einschließlich aller Paketvarianten. Wie TI erstrecken sie sich über den Bereich von 8 Bit bis 32 Bit:
Beachten Sie, dass der kleinste Wert in Byte und nicht in KB angegeben wird.
Sie reichen im Preis von 35 ¢ bis 13,36 $ in Einzelmengen. Ich stelle mir vor, dass die billigsten für unter 20 ¢ in großen Mengen gehen können. Möglicherweise sogar 10 ¢ für ungeprüfte (bei denen der Kunde anstelle des Herstellers Abnahmetests durchführt). Der billigste 32-Bit-ARM ist mit 76 ¢ doppelt so hoch wie in Einzelmengen. Für ein Produkt mit hohen Stückzahlen ist das ein großer Unterschied. Der PIC10F200 ist die billigste uC von allen den fast 15.000 dass Digi-Key auf Lager.
Microchip hat auch einen ausgezeichneten Ruf für die Vorratshaltung seiner älteren µCs (im Produktselektor unten als "Mature" aufgeführt), was ebenfalls zu berücksichtigen ist.
Wie kann man das alles verstehen? Verwenden Sie eine Produktauswahl. Digi-Key, Mouser und andere Distributoren haben ziemlich gute, aber sie enthalten nicht alle Parameter (der µC-Produktselektor von Digi-Key hat weniger als 20, die folgende Tabelle enthält über 50). Microchip (und ich nehme an, andere Hersteller) haben umfangreichere Produkte, wie das folgende. Beachten Sie, dass Sie für fast alle Parameter Bereiche angeben können:
Nun, da Microchip Atmel übernommen hat, wird es interessant zu sehen, was passiert. Scheint, dass es in einigen Zeilen eine gewisse Überlappung gibt.
quelle
Ohne genauer auf die Angebote von TI einzugehen (die hier bereits beantwortet wurden), möchte ich betonen, dass Sie Spezifikationen benötigen. Wenn Sie sie nicht haben, nehmen Sie an, dass es Ihre Aufgabe ist, sie zu identifizieren. Dies ist möglicherweise etwas überwältigend, wenn Sie neu sind. Nennen wir jedoch einige Spezifikationen, die in einem Projekt vorkommen können:
Was wird die MCU tun? Wird es durch die CPU-Zeit eingeschränkt? Machst du eine "Spezialverarbeitung" wie Fließkomma? Dies bestimmt den CPU-Kern und die erforderliche Taktrate.
Oder ist es durch die Akkulaufzeit eingeschränkt? Wenn ja; Sie müssen die Standby-Modi untersuchen, die ein Mikrocontroller zu bieten hat, die Latenz zum Aufwecken, die Aufweckquellen, die Spannungsschiene für digital und analog (z. B. wenn Sie ihn direkt von der Batterie versorgen) usw. Beachten Sie außerdem alle E / A auch im System. Sie können einen großartigen Mikrocontroller haben, der im Schlaf 50nA verbraucht - aber es ist vernachlässigbar, wenn z. B. ein LDO oder ein EEPROM 10uA im Ruhezustand verbraucht.
Welches Paket können / müssen Sie verwenden? Wie viele Stifte und welche Technologie? Wie viel Platz hast du, was kannst du zusammenbauen?
Wie viel Code wirst du dafür schreiben? Haben Sie eine Idee, wie viel RAM / FLASH Sie benötigen? Einige praktische Erfahrungen auf einem Devboard können dabei helfen.
Welche Schnittstellen benötigen Sie für Ihr Systemdesign und wie möchten Sie diese verwenden? Grundlegende Startpunkte:
1) Geschwindigkeitsbeschränkungen (zB ich benötige einen USART mit 3MBaud)
2) Einschränkungen hinsichtlich der Portanzahl (z. B. ich benötige 5 USARTs)
3) Durchsatzbeschränkungen (z. B. ich benötige 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. Können Sie beispielsweise einen Alarm-Pin eines Geräts abfragen oder benötigen Sie einen externen Interrupt-Pin dafür?
Dies kann eine schwierige Frage sein, egal ob Sie "bottom up" oder "top down" entwerfen. Wenn Sie "von oben nach unten" entwerfen, können Sie an dieser Stelle herausfinden, dass es keinen Mikrocontroller mit 16 USARTs gibt, der für das Systemdesign als selbstverständlich vorausgesetzt wurde.
OTOH Wenn Sie "bottom up" entwickeln, wählen Sie möglicherweise einen Mikrocontroller aus, den Sie kennen und mit dem Sie vertraut sind. Stellen Sie jedoch fest, dass er nicht die richtige Menge an E / A hat und "Klebe-Chips" 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 Entwurf zu identifizieren und zu versuchen, sie zu beheben. Ein Entwicklungsboard kann eine gute praktische Erfahrung sein, um Ihren Code in Bezug auf CPU-Zeit, Speicheranforderungen und "Macken" des Mikrocontrollers zu testen.
quelle