Warum haben Mikrocontroller im Allgemeinen keine On-Chip-DACs?

In dieser Antwort habe ich gelesen, dass Mikrocontroller normalerweise keine DACs haben, während sie ADC haben. Warum das?

Bearbeiten
Ich weiß, dass die Integration von Widerständen wie in einem R-2R-DAC in Bezug auf Immobilien teuer ist (danke Mike, für Ihre Antwort), aber ich dachte, geschaltete Strom-DACs können sehr klein gemacht werden, da sie nur eine Handvoll Transistoren benötigen.

+1 Das ist eine wirklich gute Frage. das gleiche habe ich mich auch schon gefragt.
Ich muss 2 Spannungen mit A/Ds messen und dann 2 D/A-Signale gleichzeitig erzeugen. Dies dient dazu, den Strom durch 2 Transistoren gleichzeitig zu steuern. Das Rauschen und die Nichtlinearität der ein- oder zweipolig gefilterten PWM-Verfahren sind ein echtes Problem. Manchmal möchte man doch „zurück zum Analogen“. Sieht für mich nach der Cypress-Lösung aus. Der ganze Grund, sich überhaupt für ein Mikro zu entscheiden, besteht darin, die Anzahl der Teile zu reduzieren. Das Hinzufügen von Sachen wie Außenbord-D / A besiegt das aus dem Tor.

Antworten (5)

Erstens haben einige Mikrocontroller D/A-Wandler. Diese sind jedoch weitaus seltener als A/D-Wandler.

Abgesehen von den technischen Problemen ist der Hauptgrund die Marktnachfrage. Denk darüber nach. Welche Art von Anwendung würde einen echten D/A erfordern? Es ist ziemlich selten, dass ein Mikro ein analoges Signal mit angemessener Geschwindigkeit erzeugt, es sei denn, es geht um die Signalverarbeitung. Der Hauptmarkt dafür ist jedoch Audio, und das erfordert viel mehr Auflösung, als Sie mit dem gleichen Prozess bauen können, der zur Herstellung des digitalen Mikrocontrollers verwendet wird. Audio verwendet also sowieso externe A/Ds und D/As. DSPs, die für solche Anwendungen gedacht sind, verfügen über eine eingebaute Kommunikationshardware, um mit solchen externen Geräten wie I2S zu kommunizieren.

Ansonsten besteht die Strategie für gewöhnliche Steuerungsanwendungen darin, so früh im Prozess auf digital umzustellen und die Dinge dann digital zu halten. Dies spricht für A/Ds, aber D/As sind nutzlos, da Sie nicht zu Analog zurückkehren möchten.

Dinge, die Mikrocontroller normalerweise steuern, werden mit PWM (PulseWidth Modulation) gesteuert. Schaltnetzteile und Klasse-D-Audio arbeiten von Natur aus mit Impulsen. Motorsteuerung, Solenoidsteuerung usw. werden aus Gründen der Effizienz alle mit Impulsen durchgeführt. Sie möchten, dass das Durchgangselement entweder vollständig ein- oder vollständig ausgeschaltet ist, da ein idealer Schalter keine Leistung abgeben kann. In großen Systemen oder wo die Eingangsleistung knapp oder teuer ist (z. B. Batteriebetrieb), ist die Effizienz von Schaltsystemen wichtig. In vielen mittleren Fällen ist die verbrauchte Gesamtleistung nicht das Problem, sondern die Beseitigung von verschwendeter Energie als Wärme. Ein Schaltkreis, der 1 W statt 10 W abführt, kostet möglicherweise etwas mehr an elektronischen Teilen als der lineare 10-W-Schaltkreis, ist aber insgesamt viel billiger, da Sie keinen Kühlkörper mit der entsprechenden Größe und dem Gewicht benötigen.

Beachten Sie, dass PWM-Ausgänge, die in Mikrocontrollern sehr verbreitet sind, in den ungewöhnlichen Fällen, in denen Sie sie benötigen, zur Erzeugung analoger Signale verwendet werden können. Das Tiefpassfiltern eines PWM-Ausgangs ist der einfachste und schönste Weg, um ein analoges Signal aus einem Mikro zu erzeugen, solange Sie über ein ausreichendes Auflösungs-*Geschwindigkeitsprodukt verfügen. Gefilterte PWM-Ausgänge sind angenehm monoton und hochgradig linear, und der Kompromiss zwischen Auflösung und Geschwindigkeit kann nützlich sein.

Hattest du etwas Bestimmtes im Sinn, für das du dir gewünscht hättest, dass ein Mikro einen D/A-Wandler hat? Wahrscheinlich kann dies mit tiefpassgefiltertem PWM gelöst werden oder es wäre ohnehin ein externes D/A für eine höhere Auflösung*-Geschwindigkeit erforderlich. Der Abstand zwischen gefiltertem PWM und extern ist ziemlich gering, und die Art von Anwendungen, die ein solches Signal tatsächlich benötigen, ist ebenfalls gering.

Abgesehen von Audio ist ein Arbitrary Function Generator (ARB) die einzige Anwendung, die mir einfällt, bei der Sie PWM nicht verwenden können.
Der einzige Punkt, wo mir ein DAC sinnvoll erscheint, wenn hohe Auflösung UND hohe Geschwindigkeit erwünscht sind. Ein PWM hat aufgrund seines Zählers oder Timers eine begrenzte Auflösung und erfordert bei einer bestimmten Aktualisierungsgeschwindigkeit eine sehr hohe Geschwindigkeitsreferenz.
Der andere Ort, an dem es nützlich ist, ist, wenn Sie eine Trimmspannung für einen analogen Sensor mit zufälligem Offset benötigen.
@Rocket: Trimm-Offsets haben eine sehr geringe Bandbreite, daher funktioniert eine tiefpassgefilterte PWM gut für sie. Das erfordert nicht viele zusätzliche Teile, da Sie normalerweise ohnehin den gesamten Ausgangsbereich für eine Trimmeinstellung verschieben und dämpfen möchten.
Ich bin mir nicht sicher, wie repräsentativ andere µc-Hersteller sind, aber ungefähr 10 % der PIC-µcs haben integrierte D/A's, ich glaube, sie sind alle 10-Bit. 16 PICs (hauptsächlich in den Familien PIC24 und dsPIC33, aber ein paar PIC16s) haben zwei D/A's.

DACs sind im Siliziumbereich relativ teuer. Weitaus weniger Anwendungen benötigen einen analogen Ausgang als einen Eingang, und die für einen Großteil der Anwendungen benötigte DAC-Funktionalität kann mit PWM und einer geringen Menge an externer Filterung kostengünstiger erreicht werden.

Zwei weitere Probleme, die noch nicht erwähnt wurden:

  • Es gibt viele Fälle, in denen ein Teil in der Lage sein muss, die Spannungen an vielen Pins zu messen, aber nicht gleichzeitig. Es ist möglich, einen einzigen ADC zusammen mit einem Pass-Gate pro Pin zu verwenden, um dies zu erreichen. Im Gegensatz dazu würden die meisten Teile, die mehrere DAC-Ausgänge benötigen würden, diese gleichzeitig benötigen.

  • Die Schaltung, die einen ADC mit der Außenwelt verbindet, muss in der Lage sein, nur genug Strom zu übertragen, um jede absichtliche oder parasitäre Kapazität an der Eingangsschaltung des ADC zu laden oder zu entladen. Das ist nicht nur eine ziemlich kleine Strommenge, sondern im Wesentlichen unabhängig von der Anwendung. Die zusätzliche Fläche, die erforderlich ist, um die Stromhandhabungsanforderungen im "schlimmsten Fall" zu handhaben, wäre vernachlässigbar im Vergleich zu dem, was für etwas erforderlich wäre, das unter günstigen Anwendungsbedingungen funktionieren könnte. Im Gegensatz dazu haben unterschiedliche DAC-Anwendungen unterschiedliche Anforderungen an Stromquellen oder -senken, und die Menge an Chipfläche, die erforderlich ist, um diese Anforderungen zu erfüllen, würde enorm variieren. Es wäre sinnvoll, 20 % der eigenen Chipfläche für ein paar DACs auszugeben, die genau den Anforderungen einer Anwendung entsprechen.

Übrigens ist eine Technik, die ich nicht oft gesehen habe, die Kombination eines DAC mit einem PWM. Wenn Sie einen R/2R-DAC verwenden, ist es einfach, einen zusätzlichen Eingang hinzuzufügen, dessen Gewichtung das gleiche ist wie das LSB (ein 3+1-Eingangs-DAC hätte also beispielsweise Gewichtungen von 1/2, 1/4, 1/8 und 1/8). Nimmt man einen 8-Bit-DAC und fügt ihm ein PWM-Signal hinzu, kann man ein 12-Bit-Ergebnis mit 1/128 des Rauschens eines 12-Bit-PWM erzielen, aber zu geringeren Kosten als die Verwendung eines 12-Bit-DAC mit vergleichbarer Linearität.

Wie Olin sagte, haben einige MCUs DACs. Werfen Sie einen Blick auf PSoC3 und PSoC5 von Cypress. Sie enthalten bis zu zwei DACs. Diese können in analogen Sensoranwendungen äußerst nützlich sein, die eine Trimmspannung vor der Verstärkung erfordern.

Zum Beispiel haben wir einen zum Messen der Ausgänge von Drucksensoren verwendet. Jeder Drucksensorchip hat einen zufälligen Spannungsoffset. Wenn die MCU zurückgesetzt wird, setzt sie die DAC-Spannung auf etwas weniger als den Ausgang des Sensors. Verstärkt dann die Differenz zwischen diesen Spannungen.

Es ist großartig, ADC, DAC, Opamps und MCU in einem Chip zu haben.

Über Ihre Verwendung des DAC mit Drucksensor, an dem Sie die Offsetspannung angelegt haben. Natürlich kenne ich die Details Ihrer Schaltung nicht. Aber wäre es nicht einfacher, den Offset im uC-Speicher aufzuzeichnen und die Korrektur digital in der Firmware anzuwenden?
@NickAlexeevit ist möglicherweise nicht das Beste, da Sie auf diese Weise einen Bruchteil der Reichweite des ADC verschwenden und die Genauigkeit verringern.
Genau. Wenn Sie eine Verstärkung (x50) anwenden möchten, müssen Sie die niedrigste Differenzspannung bei Nulldruck haben.

2017 noch einmal betrachtet, gibt es jetzt eine Reihe von Mikrocontroller-Familien, die DACs enthalten (zusätzlich zu den oben aufgeführten PSOC und PIC von Cypress):

  • Analog Devices ADuC70xx
  • Atmel AVR XMEGA (einige Teile)
  • Infineon XMC4100/XMC4200
  • NXP Kinetis-Serie, andere
  • Renesas H8, R8, andere
  • Silicon Labs
  • STMicroelectronics einige der STM32-Serie
  • TI, einige der MSP430-Serie, auch einige C2000-Serien
  • Zilog (mit Z8-Prozessor)

Die Suche im Digikey- Produktindex > Integrierte Schaltkreise (ICs) > Eingebettet - Mikrocontroller ergibt eine Liste, in der eine der Spalten mit "Datenkonverter" bezeichnet ist.