Audio estéreo de 8 bits R-2R DAC, ¿es esta la forma correcta de hacerlo?

Soy nuevo en ingeniería eléctrica y el primer proyecto que me gustaría hacer es hacer un convertidor de audio digital a analógico. Descubrí que una buena manera de hacer esto es usar una estructura R-2R para la conversión.

Me gustaría desafiarme a mí mismo y comenzar de cero con la parte digital del circuito, además del hecho de que realmente no puedo encontrar ninguna solución en la web para ayudar a construirlo. Obtuve un programa de simulación de circuitos y comencé a diseñar, mientras buscaba en la web todos los diferentes tipos de dispositivos electrónicos que podría usar.

Ahora creo que podría estar en algún lugar cercano a la comprensión del principio de un DAC, pero sería útil si alguien con experiencia pudiera ayudarme a verificar si realmente lo entiendo. ¿Es este un lugar adecuado para pedir eso?

Si es así, aquí está el circuito que he diseñado:Audio estéreo de 8 bits R-2R DAC

Usé un registro de desplazamiento con pestillo de salida para cada canal y vinculé Q7S de uno a otro para alimentar los datos. ¿Es correcto que los archivos de audio alternen el canal izquierdo y derecho, o viceversa, en bloques? por ejemplo, en un archivo de 8 bits: 0010 0111 para la izquierda después de 0010 0110 para la derecha?

Los registros de desplazamiento que he usado aquí son 74HC595. Cuando se cambien los bits, ninguno de los pines estará (momentáneamente) activo. Cuando se activa el pestillo [pin STCP], los bits se transfieren del registro de desplazamiento al registro de almacenamiento, donde enviarán directamente su valor a los pines correspondientes y permanecerán activos hasta que se permitan los siguientes 16 bits.

Luego está el cristal, para el cual he usado una señal de onda cuadrada para imitar una con la frecuencia de oscilación correcta: 24,576 MHz. Alimenta el contador en el que la frecuencia se divide para generar las frecuencias que necesita mi DAC. En este caso, la frecuencia de muestreo debe ser de 192 000 kHz y, por lo tanto, la frecuencia a la que se transfieren los datos debe ser de 3,02 MHz (192 000 x 16 bits). La velocidad de reloj de 192,000 kHz se utiliza para activar STCP.

Lo siguiente que quiero hacer es descubrir cómo cargar datos de una fuente (Raspberry, por ejemplo) a través de quizás I2C en un búfer en el DAC y desde allí registrar los bits en el circuito que ves aquí.

Si crees que estoy o no estoy en el camino correcto, sería muy útil que me lo hicieras saber.

¡Gracias! Rogier

Por cierto, olvidé mencionar que el DAC que me gustaría construir es de al menos 24 bits por canal a 96kHZ. Simplemente ocupa mucho espacio en esta amenaza y no debería ser difícil agregarlos después. Es el mismo principio.

Buen proyecto, difícil. No revisé todas tus matemáticas, pero un audio de 8 bits no va a sonar muy bien. Vas a tener que sesgar a la mitad del suministro, lo que te deja con 7 bits en cada lado. Puede salirse con la suya con el habla comprimida, donde el rango dinámico está severamente limitado, pero los pasajes silenciosos del habla o la música tendrán una distorsión terrible debido al tamaño de paso grueso y la respuesta logarítmica del oído. De memoria, la calidad de CD es de 14 bits.
@transistor, si bien no califica, tiene alta fidelidad, el audio de 8 bits puede ser sorprendentemente escuchable si se hace correctamente, especialmente si la frecuencia de muestreo está fuera del rango audible, que parece ser en este caso (con una muestra lo suficientemente alta tasa, incluso puede salirse con la suya con una salida de 1 bit...). Una preocupación más seria es si los registros de desplazamiento propuestos tienen "doble búfer", o si los bits aparecerán momentáneamente en las salidas incorrectas mientras se desplazan, algo que podría causar una distorsión sustancial.
+1 para una pregunta decente. No va a ser de alta fidelidad, pero es una muy buena manera de aprender lo difícil que es hacer un buen DAC :)
I2C es probablemente demasiado lento como fuente de datos: alcanza un máximo de 400 kHz (bueno, hay un modo FM + de 3,4 MHz, pero la mayoría de las cosas no lo admiten). Puede mirar USB: hay algunos microcontroladores que admiten ser un dispositivo de audio esclavo USB sin necesidad de escribir controladores de Windows/Linux. Hice una búsqueda rápida y encontré esta nota de la aplicación Atmel . Podría usar algo así para obtener los datos y luego conectar sus registros de desplazamiento a través de SPI.
@transistor Puede mantener los 8 bits usando condensadores de acoplamiento para "centrar" su salida de CA e incluso con un sesgo de vcc/2, aún puede dividir esos 0.5vcc por 256 en el R-2R DAC para resolución completa @ 8 bits .
No sé qué chip de serie a paralelo estás usando. pero es posible que desee asegurarse de que los voltajes de salida para ENCENDIDO y APAGADO sean consistentes entre todas las salidas. de lo contrario, es posible que deba almacenar en búfer las salidas digitales para que sean analógicas precisas.
@ RobhercKV5ROB: ¿Puedes explicar más tu último comentario? Pensé que tendríamos que convertir el MSB en un bit de 'signo' invertido para que, en reposo, la entrada del DAC sea 1000 0000 (punto medio). Las señales positivas van 1000 0001, 1000 0010, etc. Las señales negativas van 0111 1111, 0111 1110, etc. dando sólo 127 pasos a cada lado de cero, es decir, 7 bits.
En cuanto a su comentario sobre 24 bits por canal, olvídelo, olvídelo ahora y no pierda más tiempo pensando en ello. No voy a entrar en las matemáticas para eso en este comentario, pero estoy seguro de que ha surgido aquí algún tiempo antes. Si no, esto es lo que dice wikipedia: en.wikipedia.org/wiki/…
@transistor. Gracias por todas sus respuestas. Olvidé mencionar que mi objetivo final es construir un DAC de 24 bits. En mi primer intento, probablemente no usaré el sobremuestreo, ya que lo hace mucho más complejo. No debería ser difícil agregar softwaremáticamente algunos ceros al final de cada bloque, para adaptarse a la entrada del DAC.
@robertbristow-johnson él mismo está manejando la conversión de serie a paralelo, usando una fuente de reloj y 2 registros de desplazamiento (los 3 circuitos integrados en su diagrama).
@pipe Gracias por su respuesta, pero no estoy seguro de entender. El audio de 24 bits es audiblemente mejor que el de 16 bits, ¿no es así? ¿O no es eso lo que quieres decir?
Quiero decir que no te vas a acercar ni siquiera a 16 bits usando una escalera R-2R. Es bueno para cosas como 8 bits (en realidad, ni siquiera entonces). Cosas como impedancia de salida/entrada, ruido de resistencia, desajuste de resistencia, etc.
@transistor Creo que es más una elección de protocolo de software como si tl usa msb como signo (+127/-128), o usa un byte sin firmar (0-256), pero de cualquier manera, técnicamente todavía tiene 256 potencia de salida discreta niveles, por lo que la misma resolución, solo un "punto de referencia" diferente (0 = vcc, o 0 = vcc/2). Creo que la convención sería usar sin firmar ... pero definitivamente podría estar equivocado en esa suposición.
Ah, y sí, puede usar cualquier convención, firmada o no, lo que cuenta es el número discreto de pasos, no si van de -vcc a 0, -vcc/2 a vcc/2 o 0 a vcc. @transistor simplemente está confundido. :)
@pipe ¿Cuál sería un método alternativo para lograr una salida de 24 bits de buena calidad? Pensé que casi todos los DAC en el mercado usan esta técnica R-2R. Creo que es una buena práctica comenzar con este de todos modos.
Ningún DAC utilizará esta técnica, porque es muy difícil construir resistencias en un chip, e incluso si las recorta con láser y usa sustratos especiales, solo obtendrá como máximo 16 bits de resolución. Sigue siendo un buen proyecto para empezar. Si comienza a hacer los cálculos, se dará cuenta de que para generar una salida de 24 bits debe controlar con precisión los nanovoltios. Ese será el ruido en una resistencia si no tienes cuidado.
Como señala Pipe, hacer un DAC de 24 bits es un gran desafío; el diseño se vuelve crítico al igual que mantener limpia la ruta de audio. La alimentación directa de ruido digital y otros problemas significan que esto es difícil de lograr. Aplaudo tu deseo de hacer algo tan difícil. Notaré que la mayoría de los dispositivos de 24 bits son diseños delta-sigma. Hay una excelente nota de aplicación que entra en detalles en ti.com/lit/an/sbaa055/sbaa055.pdf
Gracias @pipe y Peter Smith, ¡lo tendré en cuenta! Mis expectativas en cuanto a la calidad del audio no deberían ser muy altas. Aún así, ¡es un buen proyecto educativo para terminar!
Usando resistencias del 1 %, puede obtener una resolución precisa de 6 bits (LSB=MSB/64, por lo que el error del 1 % <valor LSB/MSB), pero por encima de eso, deberá reducir el posible error por resistencia a la mitad por cada resistencia adicional. bit (0.25% para 8 bits) también evita que el error de la resistencia domine sus bits menos significativos.
Para una resolución precisa por encima de 8 bits, probablemente debería usar alguna forma de PWM
Como la belleza de R2R es que la relación de resistencia es importante en lugar del valor absoluto de los dispositivos, se puede usar una matriz combinada para una precisión de al menos 8 bits, como bitechnologies.com/pdfs/resistorladder.pdf y vishayprecisiongroup.com/ resistencias de lámina/... Aunque no es barato.
Por cierto, @PeterSmith, no vas a hacer ningún DAC de 24 bits con R-2R. pero puede hacer 24 bits con un R-2R de 8 o 6 bits y una gran cantidad de sobremuestreo (como F s = 3 MHz), y tal vez algún tipo de formación de ruido como en Sigma Delta. y esos DAC de audio de 24 bits no son 24 bits honestos. hay algunos "bits de marketing" allí.
@robertbristow-johnson ¿Pedazos de marketing? :| Siento una especie de impulso ahora de construir un DAC de 24 bits realmente bueno, solo para no tener que comprar "bits de marketing" (o gastar miles). ¡Va a ser un trabajo duro y aparentemente tengo que usar otra técnica que no sea R-2R! ;)
2 23 es un número terriblemente pequeño. como 1 sobre 8 millones. no podrá hacer un DAC, con una velocidad de conversión decente, que tenga una salida tan precisa como esa especificación. el número honesto de bits es el rango dinámico en dB (que es la relación S/N en dB sumada al número de dB de headroom) dividido por 6,02 dB/bit. eso le dará la cantidad de bits honestos. lo mejor que he visto en la industria sigue siendo de unos 20 bits (o un rango dinámico de unos 120 dB).
@robertbristow-johnson: un DAC que pudiera tomar muestras aleatorias de 24 bits y generar una resolución cercana a los 24 bits sería muy costoso, pero uno que pudiera, por ejemplo, tomar una señal de 24 bits que contuviera una señal de 100 Hz a -1dB con una superposición en una señal de 10KHz a -96dB y generar una salida que registre con precisión ambas señales sería mucho más fácil, aunque la señal de 10Khz se perdería por completo en una señal de 16 bits.
@Robert: No dije que se pudiera lograr un DAC de 24 bits con resistencias; dije que se podían lograr 8 bits con una matriz de precisión.

Respuestas (1)

  • Sí, este es exactamente el lugar correcto para hacer su pregunta.
  • Sí, la topografía R-2R es la forma más sencilla de diseñar (y creo que la mejor) de hacer un DAC casero (sin usar PWM).
  • En cuanto a desafiarte a ti mismo, me parece que puedes ser tan masoquista como yo (¡felicitaciones por tener las agallas!). Este es un proyecto realmente complicado para un principiante.
  • Sus cadenas de resistencia R-2R (y posiblemente los amplificadores operacionales adjuntos) en realidad SON sus DAC de 8 bits

Esto es lo que estoy pensando:
Escalera corregida

Desafortunadamente, la página de wikipedia sobre los DAC de escalera R-2R es incorrecta cuando dice que la escalera R-2R funciona como un divisor de corriente en esta aplicación. Si bien una escalera R-2R se puede usar como un divisor de corriente, en realidad funciona aquí como un divisor de voltaje. Aquí hay un análisis detallado.

Considere solo el LSB de la escalera por sí mismo:

esquemático

simular este circuito : esquema creado con CircuitLab

Independientemente de la posición del interruptor, la resistencia de Thevenin de este divisor de voltaje simple es solo R. El valor de la fuente de voltaje de Thevenin es 0V o 1/2 × Vref.

Ahora, considere lo que sucede cuando agrega la siguiente etapa de la escalera R-2R:

esquemático

simular este circuito

Puede ver que este es el mismo tipo de divisor de voltaje que teníamos en el primer caso, excepto que el número de combinaciones de voltaje ha aumentado. Sin embargo, la resistencia de Thevenin de este circuito sigue siendo R, y la fuente de voltaje de Thevenin ahora es 0/4, 1/4, 2/4 o 3/4 × Vref.

Por inducción, puede ver que puede agregar cualquier cantidad de etapas a la escalera, y el único efecto es que la cantidad de opciones para el valor de la fuente de voltaje de Thevenin se multiplica por 2 para cada etapa. La resistencia de la fuente permanece exactamente igual para cualquier número de etapas.

Si la impedancia de carga es infinita, el voltaje de salida de la escalera coincidirá exactamente con el voltaje de Thevenin. Pero si la carga tiene un valor finito de resistencia, el único efecto será crear un divisor de voltaje con la resistencia de la fuente de Thevenin, escalando el voltaje de salida en una relación fija, pero sin ningún otro efecto en la precisión o linealidad básica del DAC.


Tenga en cuenta que en el circuito original de Rogier (el de la pregunta), los amplificadores operacionales están en una configuración de inversión, lo que significa que la salida de la escalera R-2R está vinculada directamente a una tierra virtual. Esto significa que el valor de salida es realmente la corriente que fluye a través de Rth (que es solo R), y esta corriente también fluye a través de la resistencia de retroalimentación del opamp. El voltaje de salida del opamp es el voltaje que se requiere para igualar esas dos corrientes, y resulta ser -Rfb/R × Vth. Como usa una resistencia de retroalimentación de 2R, la salida termina siendo -2 × Vth.


Parece haber cierta confusión sobre si la escalera R-2R se usa como divisor de voltaje o divisor de corriente, así que aquí hay una ilustración de cómo puede funcionar este último, para mostrar las diferencias clave entre esto y el circuito OP.

esquemático

simular este circuito

Tenga en cuenta que las corrientes que fluyen hacia abajo a través de las resistencias 2R tienen ponderación binaria. Esto funciona porque la resistencia efectiva mirando hacia la derecha desde cualquiera de las uniones triples también es exactamente 2R. Por lo tanto, la corriente que fluye desde la izquierda siempre se divide por igual entre la rama inferior y la rama derecha.

Tenga en cuenta que una suposición clave aquí es que todas las patas están conectadas al mismo voltaje (cero, en este caso). También es interesante notar que los voltajes en los nodos de unión también tienen ponderación binaria.

Esto se puede usar para construir un DAC de salida actual de la siguiente manera:

esquemático

simular este circuito

Las corrientes en las resistencias de este circuito son exactamente las mismas que en el diagrama anterior, ya que independientemente de la posición en la que se encuentre cada uno de los interruptores, la resistencia correspondiente está conectada a tierra real en el Yo fuera ¯ autobús, o a un terreno virtual en el Yo fuera autobús. Las corrientes en los dos buses siempre suman Iref. Un amplificador operacional puede convertir la corriente de salida en un voltaje, y el rango de voltaje es simplemente -Iref × R7.

Para ser honesto, todavía no sé qué hace un opamp y por qué lo necesitaría aquí. Lo que hace (según el software de simulación) es hacer que la señal positiva que sale de la escalera R-2R sea negativa con un múltiplo de dos: ~5V de entrada, -9,96V de salida. ¿Porqué sería eso necesario?
Los amplificadores operacionales magnifican la diferencia entre 2 voltajes de entrada. Entonces, el software dice que tiene su MSB conectado a la entrada inversora (pin de signo menos) del amplificador operacional, lo que hace que la salida varíe como lo opuesto a la entrada. La relación entre el voltaje de la señal de salida y el voltaje de entrada está controlada por la resistencia de retroalimentación (usó 10K) desde la salida del amplificador operacional hasta la entrada inversora del amplificador operacional; cuanto mayor sea la resistencia, más ganancia obtendrá (cortocircuitando esa resistencia, luego moviendo la conexión MSB al amplificador operacional + entrada y la conexión LSB a tierra debería solucionar esto).
No realmente. En el diagrama del OP, las entradas no inversoras de los amplificadores operacionales ESTÁN conectadas a tierra. Todo lo que está haciendo es cambiar a una configuración de seguidor de voltaje. No olvide incluir una resistencia de 5k en la ruta de retroalimentación de cada uno para equilibrar las compensaciones de corriente de polarización. Además, la resistencia más baja en cada una de sus escaleras R-2R debe ser de 10K, no de 5K. El OP también tenía este derecho.
Robherc, 1. Me desharía de los condensadores de acoplamiento. 2. Si mantiene el circuito seguidor de voltaje no inversor que tiene, entonces necesita agregar una resistencia de 10K desde el terminal + de los amplificadores operacionales a tierra. y la resistencia de 5K en la parte inferior debe ser de 10 K. Imagine la superposición y todos los bits APAGADOS (o tierra). cuando esté sentado en cualquiera de esos nodos, debe haber 10 K de resistencia a tierra en las 3 direcciones.
Diagrama actualizado con puesta a tierra corregida. @robertbristow-johnson, ¿por qué se desharía de los capacitores que bloquean la CC y centran su salida para proteger los transductores en un circuito de audio?
@robertbristow-johnson: Las resistencias adicionales de 10k a tierra en las entradas no inversoras de los amplificadores operacionales son inútiles; todo lo que hacen es crear un divisor de voltaje con la resistencia de fuente de 5k de la propia escalera R-2R, reduciendo el voltaje de salida en un factor de 2/3.
@robertbristow-johnson: Y su comparación con un producto acoplado a CC es irrelevante; sin duda, utilizó ADC y DAC bipolares que podían manejar voltajes analógicos tanto por encima como por debajo del suelo. Ese no es el tipo de DAC del que estamos hablando aquí.
Me di cuenta de que incluso usando solo 74HC595s todavía puede obtener una entrada I2S que cumpla con el estándar.
@DaveTweed, su primer comentario sobre la resistencia de 10K desde el terminal no inversor a tierra es simplemente incorrecto. hacer el análisis nodal. sin esa resistencia de 10K en ambos sujetalibros, la ponderación binaria no ocurre exactamente. y pensé que el problema aquí era completamente agnóstico sobre bipolar vs. unipolar. por supuesto, un producto de audio sin un condensador de bloqueo de CC necesitaría un suministro bipolar y tal.
y no sé si estas salidas Qn del dispositivo digital necesitarán resistencias pull-up o no, pero todavía estoy preocupado (y lo mencioné en un comentario sobre la pregunta) sobre las diferentes salidas Qn que no tienen exactamente el mismo voltaje ON o incluso el mismo voltaje de apagado . si se usan sus buenas resistencias de colector abierto y de precisión (y se vinculan a la misma fuente de voltaje +), quizás se puedan hacer algunos ajustes a las otras resistencias, pero, dada la superposición, lo dudo. por lo tanto, las salidas Qn deben tener la misma baja impedancia de salida, ya sea que estén encendidas o apagadas .
@robertbristow-johnson: HE hecho el análisis y NO me equivoco en este. Las entradas digitales a una escalera R-2R son fuentes de voltaje de 0 V o Vcc, y la salida de una escalera de N bits se puede modelar como una fuente de voltaje de V C C norte 2 norte en serie con una resistencia de R (¡exactamente!), donde "n" es el valor de entrada binaria que varía de 0 a 2 norte 1 .
hay muchos malos ejemplos con Google, no solo con Wikipedia. una buena referencia con un amplificador operacional inversor y otra más cercana a la tuya, Rob, con un amplificador operacional no inversor .
Por mi nuevo examen actual del circuito, utilizando el procedimiento de seguimiento de seguimiento, veo que la escalera R-2R le da el MSB a la entrada del amplificador operacional a 9/11 VCC (10K entre Q1 y amplificador operacional; 45K entre amplificador operacional & GND, produciendo 45K/55K=9/11 divisor de voltaje). Mientras tanto, con una resistencia de "sujetalibros" de 10K que funciona en paralelo con la resistencia de escalera descendente de 45K para crear una ruta de ~8.2K a GND, lo que hace que el divisor de voltaje sea ~8.2/18.2=4.1/9.1
Reelaborando la ecuación de resistencia paralela para crear una ruta de 10K a GND y, por lo tanto, un divisor de voltaje que produce una verdadera representación VCC/2 de MSB, produce un valor de resistencia de "sujetalibros" ideal de ~ 12.857K
no entiendo el 9/11, pero sin el sujetalibros 10K en el extremo del MSB, si observa el nodo de tres hilos en el segundo MSB, son 15K hacia arriba, 10K hacia la izquierda y 10K hacia abajo dirección. que 15K debería ser 10K para mantener la simetría recursiva subiendo y bajando la escalera. imagina cuáles serían las impedancias si no hubiera sujetalibros, solo libros (o escalones) subiendo y bajando la escalera para siempre.
no, tampoco son 12.857K. los sujetalibros deben ser 2R. uno por el LSB y otro por el MSB. y es para mantener una topología similar consistente para cada bit, subiendo y bajando la escalera.
mi otra preocupación es la impedancia de salida de las salidas digitales. tal vez si es CMOS, estará bien, porque hay un MOSFET desplegable, así como el MOSFET desplegable que obtendría en otras familias lógicas como drenaje abierto o algo así. pero lo que desea es la misma impedancia de salida (que se restaría de las resistencias de 10K en serie con la salida) tanto para ENCENDIDO como APAGADO .
Rob, estoy diciendo que rompa cualquiera de esos nodos de tres hilos y mire lo que tiene para las impedancias que entran en cualquiera de los tres caminos. debe ser consistente para cada uno de esos nodos para que ocurra la bisectriz actual precisa .
Los registros de desplazamiento tienen doble búfer con etapa flip-flop de salida de enganche y retención. Por lo tanto, cada "bit" de salida debe estar igualmente cerca de VCC o GND. Todas las salidas son derribadas por la propia escalera R-2R, por lo que las resistencias desplegables separadas serían redundantes.
pero si las impedancias de salida no son las mismas para Qn=Vcc o Qn=GND, tendrá otro problema con la ponderación constante de los bits. el modelo con el que va es, no solo un voltaje de salida constante (y sabemos que hay cosas tontas dentro de los chips lógicos que pueden causar que tengan voltajes inconsistentes siempre que permanezcan dentro de las especificaciones digitales muy flexibles) sino un voltaje ideal fuente. eso es importante saber cuál es la impedancia de salida y restarla de la resistencia de 10K en serie.
Ok, si agrego potenciómetros lineales de 20K (desde Op Amp + entrada a GND) e instrucciones para ajustar la resistencia del potenciómetro hasta que MSB esté lo más cerca posible de VCC, ¿podemos estar de acuerdo en que es lo suficientemente preciso para la intención declarada del OP para este proyecto?
no. solo coloque buenas resistencias fijas al 1%, pero acepte que habrá problemas si los voltajes de salida entre los bits no son consistentes y si las impedancias de salida cambian de 0 a 1. el modelo R-2R usa fuentes de voltaje ideales. Por cierto, hice esto hace 4 décadas. funcionó bien a unos 6 bits.
Sí, habrá fluctuaciones. Sin embargo, afortunadamente, el valor de error de cada bit se reduce a 1/2^n (para Q0, n=0; Q1, n=1; etc.) del error original, siempre que Q0 y Q1 se reproduzcan con alta precisión, los errores de bits de orden inferior tienen una importancia comparativa bastante mínima , especialmente considerando la respuesta logarítmica auditiva).
No he recibido respuesta de @DaveTweed, pero reafirmaré que está equivocado al afirmar que no se necesitan resistencias de sujetalibros 2R en ambos extremos de la escalera R-2R. si insiste en que su análisis nodal lo lleva a esa conclusión errónea, debe explicarlo.
@robertbristow-johnson: Por alguna razón, el sistema no me mostraba los comentarios hechos anoche después de mi último comentario. Ahora revertí la respuesta al diagrama correcto y agregué un pequeño tutorial sobre el análisis de la escalera R-2R utilizada como DAC de voltaje. Esto se basa en el material que presenté por primera vez en mi artículo de Circuit Cellar "Digital Processing in an Analog World, Part 2: Technology Choices", número 100, noviembre de 1998.
@DaveTweed Veo cómo funciona su tutorial cuando los "bits" cambiados se cambian SPDT (a vcc o gnd), pero ¿cómo funcionaría esto si el dispositivo de entrada de datos usa una representación de datos lógicos de tipo SPST? Entonces, ¿cómo mantendríamos una ruta 2R a gnd? (Pensé en usar resistencias desplegables, pero eso estropearía la división de voltaje "en estado")
No puede usar interruptores SPST. Es una suposición fundamental con este tipo de DAC que las entradas digitales son fuentes de voltaje (0V o Vref, impedancia de fuente cero) en todo momento . Es por eso que la lógica CMOS es una buena opción: sus salidas son más simétricas que TTL.
Dave, el diagrama al que regresaste es incorrecto. necesita la resistencia de 10 K en el sujetalibros en la parte superior. si no tiene eso, las corrientes no se dividirán con precisión en la escalera R-2R. ¿Por qué eres tan incapaz de simplemente hacer el análisis nodal? lo que debe hacer es romper cualquiera de esos tres nodos de cables y confirmar que ve la misma impedancia de 10 K desde ese cable a tierra con los tres cables conectados al nodo. si hace eso para el segundo bit más significativo, verá una resistencia de 15K en lugar de 10K en ese cable, y la corriente no se dividirá en dos.
@robertbristow-johnson: Lo que parece que no puede comprender aquí es que la escalera NO funciona como un "divisor de corriente" en esta aplicación. Muéstrame específicamente dónde está mal mi análisis y me retractaré.
cada nodo es un divisor de corriente. y debe ser una bisectriz actual. su salida no será proporcional al valor de la palabra binaria (lo que llama " norte ") tal como está el circuito ahora. He explicado claramente por qué. Si rompe alguno de los nodos de tres cables, debe estar mirando la misma impedancia en las tres direcciones, para que esto funcione con precisión. por todo análisis objetivo , simplemente te equivocas aquí, Dave. Necesita esa resistencia de 10 K en la parte superior. No es " inútil", pero es parte de la aritmética inherente a la escalera R-2R.
lo malo de tu análisis es que tienes mal las resistencias. crees que tienes una "R" cuando no tienes exactamente esa R.
@robertbristow-johnson: Sigues diciendo lo mismo una y otra vez, sin matemáticas/diagrama/detalles que lo respalden. Sí, hay varias corrientes que fluyen a través de las resistencias en esta escalera, y cambian con la configuración del interruptor, pero no hay ningún requisito ni deseo de que ninguna de las corrientes tenga ponderación binaria. Agregaré una sección que explica cómo se puede usar una escalera R-2R como divisor de corriente en un DAC de salida de corriente, pero solo para mostrar el contraste con el circuito del OP.
Para obtener una salida limpia de su DAC, necesitará un poco de filtrado. Los equipos de audio no registrarán limpiamente las señales por encima de las frecuencias de audio, pero es posible que tampoco las filtren limpiamente, y la presencia de dichas señales puede inducir distorsión en las frecuencias audibles. Sugeriría agregar un capacitor en paralelo con la salida de la cadena de resistencias de modo que la constante de tiempo RC de la cadena sea 1.44 [por ejemplo, 1/ln(2)] veces el período de muestra y enfatizar previamente la salida alimentada al DAC tal que cada muestra es el doble del valor nuevo, menos el valor anterior.
Necesitará un poco de margen adicional en sus señales para que funcione, pero si puede darse el lujo de enfatizar previamente las señales digitalmente, puede reducir la cantidad de filtrado analógico que se necesitará después.
@supercat Tiene razón, pero el OP declaró que este circuito está destinado a ser una "experiencia de aprendizaje", en lugar de ser algo remotamente "alta fidelidad". Sin embargo, si mueve su condensador sugerido a la salida del amplificador operacional (para que no cargue las resistencias R-2R directamente), estoy completamente de acuerdo con que sea un filtro útil para suavizar el audio de salida.
@robertbristow-johnson, la ruta de MSB a gnd ya es: MSB - 10K - op amp tap (ruta separada) - 10K - gnd. Cada nodo "ve" los nodos de abajo en la cadena como una ruta colectiva de 10K a gnd, y en realidad lo son, si todos son valores 0, ilustre un bit 0 como un corto a gnd para verlo. Me confundí contigo por un tiempo allí, pero lo de SPDT es lo que estábamos viendo mal). Si ayuda, imagine que todo el DAC está alimentado por interruptores VCC/GND SPDT, en lugar de pines de salida de registro de desplazamiento.
@ RobhercKV5ROB: descuidé que el circuito del OP usa una configuración de amplificador operacional inversor en lugar de no inversor, por lo que la tapa debe atravesar la resistencia de retroalimentación. Si la tapa se coloca después de la salida del amplificador operacional, la constante de tiempo RC (y, por lo tanto, la respuesta de frecuencia) dependerá de las características de la entrada aguas abajo, que puede ser difícil de modelar. Por cierto, usar pre-énfasis como se describe no será un buen enfoque desde la perspectiva del dominio de la frecuencia, pero reducirá en gran medida la velocidad máxima de cambio sin afectar demasiado la respuesta de frecuencia "deseada".
@robertbristow-johnson: Bien, he agregado material adicional. Tenga en cuenta que la escalera solo funciona como un divisor de corriente binario si todas las patas están conectadas al mismo voltaje (efectivo). Es muy diferente de cómo funciona el DAC de salida de voltaje.
@robertbristow-johnson: Su falta de respuesta sugiere que está concediendo al menos algunos de los puntos que estaba discutiendo anteriormente. Si ese es el caso, me gustaría revisar y limpiar algunos de los numerosos comentarios que se han acumulado en esta publicación. Por favor, hágamelo saber de una forma u otra. (Por cierto, no estoy seguro de que estés al tanto de esto, pero soy el chico de la fiesta de AES con quien tuviste la larga discusión sobre las especificaciones "Q" del ecualizador de audio. ¡Es bueno verte aquí!)
me alegro de verte por aquí también. simplemente no veo las corrientes dividiéndose en dos sin la simetría. pero hice el divisor de voltaje para Q0 alto (obtener 1/2) y luego para Q1 alto y sale como 1/4, así que concedo que de alguna manera funciona (al menos para esos dos bits) sin bisecar las corrientes. pero si no biseca las corrientes, no puedo ver ahora por qué Q2 debería tener exactamente la mitad de la ponderación que tiene Q1.
@robertbristow-johnson: Simplemente tiene que dejar de lado la noción de que la división actual es lo que está en juego aquí. En su lugar, concéntrese en la idea de que si conecta dos fuentes de voltaje con dos resistencias iguales, el voltaje en el nodo central es simplemente el promedio de las dos fuentes: V 1 + V 2 2 . Es esta división repetida por dos de los voltajes lo que proporciona la ponderación. En la escalera R-2R, una de las fuentes siempre es 0 o Vref, pero a medida que conecta etapas en cascada, aumenta el número de opciones para la segunda fuente.
¿Estás diciendo que dejemos de lado la noción de la ley actual de Kirchoff (que no lo haré) o que las corrientes deben bisecar en cada nodo? aparentemente esa es la única noción que queda. lo que hace que el efecto de Q7 sea 2 7 el efecto de Q0? es (aparentemente) porque la corriente de Q7 se corta a la mitad en 8 nodos mientras que la corriente de Q0 se corta a la mitad solo una vez. de nuevo, aparentemente, se debe a que cada una de esas salidas tiene la misma resistencia de carga y suministra la misma corriente cuando están encendidas (y las otras están apagadas ). pero ese no es el caso sin las resistencias sujetalibros.
de nuevo, Dave, sin volver a analizar el circuito para que todos y cada uno de los bits estén ENCENDIDOS (y usando la superposición para generalizar a todas las combinaciones), ¿cómo prueba que el efecto de la Q norte bit es 2 norte el efecto del bit Q0? No veo ningún patrón para hacer este caso.