Pour deux DAC, l'un étant envoyé D0-D7 et l'autre envoyé D8-D15, avec une alimentation de 5 V, si 5 V est ajouté à la sortie du 2e DAC et que les deux sorties du DAC sont additionnées, cela devrait donner un DAC 16 bits composé de deux DAC 8 bits.
Le seul problème est que si le deuxième DAC a une entrée 0x00, l'addition 5V doit être annulée, ce que je ne sais pas comment faire. La sommation peut être effectuée en sommant l'amplificateur. Le circuit n'a besoin que de fonctionner jusqu'à quelques 10 s de kHz.
Y a-t-il quelque chose de fondamentalement mauvais avec cette idée?
operational-amplifier
dac
summing
quantum231
la source
la source
Réponses:
C'est possible, mais cela ne fonctionnera pas bien.
Premièrement, il y a le problème de la combinaison des deux sorties, l'une étant mise à l'échelle précisément 1/256 de l'autre. (Que vous atténuiez l'un par 1/256, amplifiez l'autre par 256, ou un autre arrangement, * 16 et / 16 par exemple, n'a pas d'importance).
Le gros problème est cependant qu'un DAC 8 bits est susceptible d'être précis à quelque chose de mieux que 8 bits: il peut avoir une spécification "DNL" de 1/4 LSB et une spécification "INL" de 1 / 2LSB. Ce sont les spécifications de non-linéarité "différentielle" et "intégrale", et sont une mesure de la taille réelle de chaque pas entre les codes adjacents. (DNL fournit une garantie entre deux codes adjacents quelconques, INL entre deux codes quelconques sur toute la gamme du DAC).
Idéalement, chaque étape représenterait précisément 1/256 de la valeur pleine échelle; mais une spécification DNL 1 / 4LSB indique que les étapes adjacentes peuvent différer de cet idéal de 25% - ceci est normalement un comportement acceptable dans un DAC.
Le problème est qu'une erreur LSB de 0,25 dans votre DAC MSB contribue à une erreur de 64 LSB (1/4 de toute la plage) dans votre DAC LSB!
En d'autres termes, votre DAC 16 bits a la linéarité et la distorsion d'un DAC 10 bits, ce qui est inacceptable pour la plupart des applications d'un DAC 16 bits.
Maintenant, si vous pouvez trouver un DAC 8 bits qui garantit une précision de 16 bits (INL et DNL mieux que 1/256 LSB), allez-y: cependant, ils ne sont pas économiques à faire, donc la seule façon de l'obtenir est de commencer avec un DAC 16 bits!
Une autre réponse suggère une "compensation logicielle" ... cartographiant les erreurs exactes dans votre DAC MSB et les compensant en ajoutant l'erreur inverse au DAC LSB: quelque chose longtemps réfléchi par les ingénieurs du son à l'époque où les DAC 16 bits étaient chers. ..
En bref, il peut être fait fonctionner dans une certaine mesure, mais si le DAC 8 bits dérive avec la température ou l'âge (il n'a probablement pas été conçu pour être ultra-stable), la compensation n'est plus suffisamment précise pour en valoir la peine. complexité et dépenses.
la source
Un DAC 8 bits peut sortir28= 256 différentes valeurs.
Un DAC 16 bits peut sortir216= 65536 différentes valeurs.
Notez comment cela se multiplie, ce n'est pas un ajout (comme cela se produirait lorsque vous additionnez les sorties de deux DAC 8 bits).
Si je prenais deux DAC 8 bits et additionnais leurs sorties, quelles sont les valeurs possibles?
Réponse: 0, 1, 2, ..., 256, 257, 258, .... 511, 512 et c'est tout!
Un DAC 16 bits peut faire 0,1,2 ..., 65535, 65536, c'est beaucoup plus!
Théoriquement, c'est possible, mais vous devrez multiplier la sortie de l' un des DAC 8 bits par exactement 256 et connecter les bits LSB au 1x DAC et les bits MSB au 256x DAC. Mais ne soyez pas surpris si la précision et la linéarité en souffrent!
la source
La technique est réalisable si la tension à pleine échelle du DAC "interne" est supérieure à la taille de pas du DAC externe, et que l'on a un moyen de mesurer avec précision (mais pas nécessairement rapidement) les tensions de sortie générées par différents codes de sortie et d'appliquer ajustements de linéarité appropriés dans le logiciel. Si la tension à pleine échelle du DAC interne peut être inférieure à la taille de pas la plus défavorable entre deux tensions sur le DAC externe (en gardant à l'esprit que les étapes sont rarement absolument parfaitement uniformes), il peut y avoir des tensions qui ne peuvent être obtenues avec aucun combinaison de valeurs DAC internes et externes. Cependant, si l'on s'assure qu'il y a chevauchement dans les plages, l'utilisation de la correction de linéarité logicielle peut permettre de bons résultats.
BTW, l'ancienne conception de puce Cypress PSOC (je ne connais pas les plus récentes) émule un DAC à neuf bits en utilisant deux DAC à six bits qui sont mis à l'échelle l'un par rapport à l'autre. Il n'utilise pas de correction de linéarité logicielle, mais essaie seulement d'ajouter trois bits de précision à un DAC à six bits. Essayer d'ajouter plus de 3-4 bits de précision à tout type de DAC sans utiliser de compensation logicielle ne fonctionnera probablement pas très bien.
la source
Il y a 21 ans, quand j'étais un pauvre étudiant (et ne pouvais me permettre que des DAC 8 bits), j'ai utilisé cette technique pour combiner deux DAC 8 bits en un DAC plus élevé, sachant que je n'obtiendrais pas une précision de 16 bits, car de non-linéarité intégrale (INL) et de non-linéarité différentielle (DNL). DNL sur le DAC d'octet le plus significatif est le tueur dans ce cas; si vous avez INL, la sortie est déformée mais toujours fluide. DNL dicte la taille d'une étape DAC à la suivante, et si elle varie suffisamment, vous verrez des discontinuités ou des inversions lors du franchissement des limites de 8 bits: 0x07ff <-> 0x0800 par exemple, car le DAC MSB passe de 0x07 <-> 0x08, il pourrait changer non pas par les 256 comptes idéaux du DAC LSB, mais par 384 comptes ou 128 comptes (± 1/2 de son propre bit le moins significatif). Un bon DAC n'aura que 1/2 LSB DNL, un DAC médiocre aura un DNL pire, bien que cela devienne plus difficile avec la résolution, il devrait donc être assez facile de trouver 1/2 LSB DNL dans un DAC 8 bits mais pas dans un DAC 16 bits.
Je ne me souviens pas de la résolution effective dans mon cas, peut-être 12 ou 13 bits, et j'ai dû régler manuellement le gain du 2ème étage avec un potentiomètre.
la source
J'ai vu cela en pratique sur un détecteur UV HPLC pour augmenter la plage dynamique. L'un des CAD est compensé par le montant nécessaire. Disons que le 1er DAC gère de 0 à 10 V et le 2e gère de 10 à 20 Volts.
la source
C'est possible et cela a déjà été fait. Voir cette excellente mise en œuvre sur EDN.com http://www.edn.com/design/analog/4329365/Combine-two-8-bit-outputs-to-make-one-16-bit-DAC
la source
J'ai un point de vue différent ... Utilisez simplement un DAC 8 bits. Vous avez mentionné qu'il ne devait fonctionner que jusqu'à quelques 10 s de Hz, vous pouvez donc utiliser un seul DAC (qui peut probablement fonctionner jusqu'à 100 kHz) et l'utiliser comme modulateur. L'idée de base est de produire 256 cycles de la valeur MSB plus l'indicateur de dépassement / report d'un bit à partir d'un accumulateur de 8 bits auquel le LSB est ajouté à chaque cycle. Vous obtenez seulement 254 comme MSB maximum en raison du «bit de modulation» supplémentaire du LSB, mais cela ne réduit pas beaucoup la plage.
Exemple: si vous exécutez le cycle à 30 kHz, les 256 cycles se répètent à 117 Hz, vous pouvez donc mettre un filtre passe-bas à 50 Hz sur la sortie pour un signal assez lisse et précis qui peut fonctionner jusqu'à la vitesse dont vous avez besoin.
La précision de cette méthode dépend beaucoup de la taille des pas de bits, mais pas plus que toute autre méthode. Je l'ai utilisé pour la génération de tension de référence dans le passé, et cela fonctionne étonnamment bien.
la source