Pourquoi les microcontrôleurs ne disposent-ils généralement pas de DAC sur puce?

44

Dans cette réponse, j'ai lu que les microcontrôleurs ne possèdent généralement pas de CNA, alors qu'ils ont un CAN. Pourquoi donc?

modifier
J'apprécie que l' intégration des résistances comme dans un R-2R DAC est coûteuse en termes de l' immobilier (merci Mike, pour votre réponse), mais je pensais que DACs courant commutées peuvent être très petits , car ils ont seulement besoin d' une poignée de transistors.

Federico Russo
la source
+1 c'est une très bonne question. Je me suis demandé la même chose.
Sybreon
Je dois mesurer 2 tensions avec les convertisseurs A / D, puis générer simultanément 2 signaux D / A. C'est pour contrôler le courant à travers 2 transistors en même temps. Le bruit et la non-linéarité des méthodes PWM filtrées sur un ou deux pôles constituent un réel problème. Parfois, vous voulez "revenir à l'analogique". Ça ressemble à la solution Cypress pour moi. La raison première pour utiliser un micro en premier lieu est de réduire le nombre de pièces. Ajouter des éléments tels que les D / A hors-bord permet de vaincre cela.

Réponses:

30

Premièrement, certains microcontrôleurs ont des convertisseurs N / A. Celles-ci sont toutefois beaucoup moins courantes que les convertisseurs A / N.

Outre les problèmes techniques, la principale raison est la demande du marché. Penses-y. Quel type d'application nécessiterait un véritable D / A? Il est assez rare de vouloir qu'un micro produise un signal analogique à une vitesse raisonnablement élevée, à moins que le traitement ne soit le traitement du signal. Cependant, le marché principal pour cela est l’audio, et cela nécessite une résolution bien supérieure à celle que vous pouvez créer avec le même processus que celui utilisé pour fabriquer le microcontrôleur numérique. Donc, l’audio utilisera de toute façon les A / D externes et les D / As. Les DSP destinés à de telles applications ont un matériel de communication intégré pour communiquer avec de tels périphériques externes, tels que I2S.

Sinon, pour les applications de contrôle ordinaires, la stratégie consiste à passer au numérique dès le début du processus, puis à conserver les éléments numériques. Cela plaide pour les comptes rendus, mais ceux-ci sont inutiles car vous ne voulez pas revenir à l'analogique.

Les éléments généralement contrôlés par les microcontrôleurs sont contrôlés par PWM (PulseWidth Modulation). Les alimentations à découpage et le son de classe D fonctionnent intrinsèquement sur des impulsions. Le contrôle moteur, le contrôle de solénoïde, etc., sont tous effectués avec des impulsions d'efficacité. Vous voulez que l'élément pass soit complètement ou complètement éteint, car un commutateur idéal ne peut dissiper aucune alimentation. Dans les grands systèmes ou lorsque la puissance d'entrée est rare ou coûteuse (comme le fonctionnement sur batterie), l'efficacité des systèmes de commutation est importante. Dans de nombreux cas moyens, la consommation totale d'énergie utilisée n'est pas le problème, mais il faut éliminer le gaspillage d'énergie sous forme de chaleur. Un circuit de commutation qui dissipe 1 W au lieu de 10 W peut coûter un peu plus cher dans les composants électroniques que le circuit linéaire 10 W, mais il est beaucoup moins cher dans l’ensemble, car vous n’avez pas besoin d’un dissipateur de chaleur avec la taille et le poids associés,

Notez que les sorties PWM, qui sont très courantes dans les microcontrôleurs, peuvent être utilisées pour générer des signaux analogiques dans les cas inhabituels où vous en avez besoin. Le filtrage passe-bas d’une sortie PWM est le moyen le plus simple et le plus agréable de créer un signal analogique à partir d’un micro si vous avez un produit résolution * vitesse suffisant. Les sorties PWM filtrées sont bien monotones et très linéaires, et le compromis résolution / vitesse peut être utile.

Aviez-vous quelque chose de spécifique à l'esprit pour lequel vous souhaiteriez qu'un micro dispose d'un convertisseur N / A? Il est fort probable que ce problème puisse être résolu avec une MLI filtrée passe-bas ou nécessiterait de toute façon un convertisseur N / A externe pour une résolution * supérieure. L'écart entre le PWM filtré et l'externe est assez étroit et le type d'applications nécessitant un tel signal est également étroit.

Olin Lathrop
la source
En dehors de l'audio, un générateur de fonction arbitraire (ARB) est à peu près la seule application à laquelle je puisse penser où vous ne pouvez pas utiliser PWM.
Stévenvh
Le seul point où un DAC me semble utile lorsqu'une résolution élevée ET une vitesse élevée est souhaitée. Un compteur PWM a une résolution limitée en raison de son compteur ou de son minuteur, et avec une certaine vitesse de mise à jour, il nécessite une référence à très grande vitesse.
Hans
L’autre endroit, c’est utile lorsque vous avez besoin d’une tension de compensation pour un capteur d’analogue à décalage aléatoire.
Rocketmagnet
1
@Rocket: les décalages de rognage ont une bande passante très faible, ainsi un PWM filtré passe-bas fonctionne bien pour eux. Cela ne nécessite pas beaucoup de pièces supplémentaires, car vous souhaitez de toute façon décaler et atténuer toute la plage de sortie pour un réglage du trim.
Olin Lathrop
1
Je ne sais pas dans quelle mesure les représentants d'autres fabricants de micro-ordinateurs sont représentatifs, mais environ 10% des micro-ordinateurs PIC ont un D / A intégré, je pense qu'ils sont tous en 10 bits. 16 PIC (principalement dans les familles PIC24 et dsPIC33 mais un couple de PIC16) ont deux D / A.
Tcrosley
12

Les DAC sont relativement coûteux dans le domaine du silicium. Beaucoup moins d'applications nécessitent une sortie analogique qu'une entrée, et la fonctionnalité DAC nécessaire pour une grande partie des applications peut être réalisée à moindre coût en utilisant la technologie PWM et une petite quantité de filtrage externe.

mikeselectricstuff
la source
6

Deux autres questions, non encore mentionnées:

  • Dans de nombreux cas, une pièce devra pouvoir mesurer les tensions sur de nombreuses broches, mais pas simultanément. Pour ce faire, il est possible d’utiliser un seul ADC avec un seul portillon. En revanche, la plupart des parties nécessitant plusieurs sorties du CNA en auraient besoin simultanément.

  • Les circuits qui interfacent un CAN avec le monde extérieur doivent être capables de ne transférer que suffisamment de courant pour charger ou décharger toute capacité délibérée ou parasite sur les circuits d'entrée du CAN. Non seulement il s’agit d’un courant infime, mais il est essentiellement indépendant de l’application. L'espace supplémentaire nécessaire pour traiter les exigences de gestion du "cas le plus défavorable" serait négligeable par rapport à ce qui serait requis pour quelque chose qui pourrait fonctionner dans des conditions d'application favorables. En revanche, différentes applications DAC auront des exigences différentes en matière d’approvisionnement ou d’absorption, et la quantité de surface de puce requise pour répondre à ces exigences varierait énormément. Il serait judicieux de dépenser 20% de sa surface de puces sur un couple de CNA qui répondent exactement aux besoins d'une application.

Incidemment, une technique que je n'ai pas beaucoup utilisée consiste à combiner un DAC avec un PWM. Lors de l’utilisation d’un CNA R / 2R, il est facile d’ajouter une entrée supplémentaire dont le poids est identique à celui du LSB (ainsi, par exemple, un CNA à 3 + 1 entrées aurait des poids de 1/2, 1/4, 1/8 et 1/8). Prendre un CNA à 8 bits et y ajouter un signal PWM peut donner un résultat de 12 bits avec 1/128 du bruit d'un PWM à 12 bits, mais à un coût inférieur à celui d'un CNA à 12 bits de linéarité comparable.

supercat
la source
1

Comme l'a dit Olin, certains MCU ont des DAC. Jetez un coup d'œil aux PSoC3 et PSoC5 de Cypress. Ils contiennent jusqu'à deux CAD. Celles-ci peuvent être extrêmement utiles dans les applications de détection analogique qui nécessitent une tension de réglage avant l'amplification.

Par exemple, nous en avons utilisé un pour mesurer les sorties des capteurs de pression. Chaque puce de capteur de pression a un décalage de tension aléatoire. Lors de la réinitialisation de la MCU, la tension DAC est légèrement inférieure à la sortie du capteur. Puis amplifie la différence entre ces tensions.

C'est formidable de pouvoir disposer de la puce ADC, DAC, Opamps et MCU.

Rocketmagnet
la source
1
À propos de votre utilisation du CAD avec capteur de pression, où vous avez appliqué la tension de décalage. Bien sûr, je ne connais pas les détails de vos circuits. Mais ne serait-il pas plus facile d’enregistrer le décalage dans la mémoire uC et d’appliquer la correction numériquement dans le micrologiciel?
Nick Alexeev
@ NickAlexeevit n'est peut-être pas la meilleure chose à faire, car vous gaspillez ainsi une fraction de la portée de l'ADC, ce qui diminue la précision.
clabacchio
Exactement. Si vous souhaitez appliquer une amplification (x50), vous devez disposer de la tension différentielle la plus faible à une pression nulle.
Rocketmagnet
0

En revenant sur cette idée en 2017, un certain nombre de familles de microcontrôleurs incluent des DAC (en plus des PSOC et PIC de Cypress énumérés ci-dessus):

  • Analog Devices ADuC70xx
  • Atmel AVR XMEGA (certaines parties)
  • Infineon XMC4100 / XMC4200
  • Série NXP Kinetis, autres
  • Renesas H8, R8, autres
  • Silicon Labs
  • STMicroelectronics une partie de la série STM32
  • TI, certains de la série MSP430, également certains C2000
  • Zilog (avec processeur Z8)

Recherche sur Digikey Index des produits> Circuits intégrés (CI)> Embarqué - Microcontrôleurs donne une liste, avec l' une des colonnes intitulées « Convertisseurs de données »

Patrick Pribyl
la source