MICROCONTROLADOR.Aquí están los esquemáticos correspondientes al uC.

El uC será el encargado de configurar y coordinar el funcionamiento entre los diferentes integrados que se conectan al bus I2C:
- SRC4392
- WM8741
- I2C 20x4 LCD
Además también se encargará de recibir y procesar las señales generadas por el encoder, así como generar las señales de ENABLE para los relojes XO2 y XO3.
El
PCA9306 es in integrado encargado de adaptar las señales del bus I2C de 5V a 3.3V y viceversa, de esta manera se pueden conectar al bus dispositivos compatibles con ambos voltajes.
Y como una imagen vale más que mil palabras, aquí está el diagrama de bloques del sistema de control:
1. CONFIGURACIÓN.1.1. CONECTORESEn los esquemáticos podemos ver 4 conectores, que tendrán las siguientes funciones:
- J6, LCD. Este conector es el encargado de comunicar el display LCD con el micro. Mediante el bus I2C (SDA2, SCL2) y la señal de interrupción INTLCD. Además este conector también se aprovecha para suministrar la correspondiente alimentación al LCD.
- J7, ENCODER. Es el encargado de comunicar el encoder con el micro. Mediante las señales PULSEA, PULSEB y PRESS. Las dos primeras serán dos trenes de pulsos que indicaran el número de pasos que gira el encoder así como si este giro es a derechas o a izquierdas mientras que la última señal indicará si se produce la pulsación del interruptor integrado en el encoder. Este conector también suministra la alimentación correspondiente para el correcto funcionamiento del encoder.
- J8, PORT D. Proporciona una forma de acceder a los pines del puerto D.
- J9, ICSP (In Chip Serial Programmer). Este conector nos permitirá cargar el correspondiente firmware en la memoria del micro así como futuras actualizaciones del mismo. Para cargar los programas se utilizar un cable especial de Paralelo a ICSP, la construcción de este cable se explica es muy sencilla y viene perfectamente explicado aquí.
1.2. MICRO1.2.1. PUERTO BPB0 (pin 12), PB1 (pin 13) y PB2 (pin 14) irán conectados respectivamente a las señales PULSEA, PULSEB y PRESS generadas por el encoder.
PB3 (pin 15), PB4, (pin 16), PB5 (pin 17) y RESET (pin 29) son las señales necesarias para la programación ICSP del micro he irán conectadas por tanto al conector J9.
Las entradas XTAL1 (pin7) y XTAL2 (pin8) estarán conectadas un cristal de 20 MHz tal y como se explica en el datasheet del micro.
1.2.2. PUERTO CPC0 (pin 23) y PC1 (pin 24) irán conectados a las señales INTSRC e INTLCD respectivamente que serán las señales de interrupción generadas por el SRC4392 y el display LCD.
PC2 (pin 25) y PC3 (pin 26) serán los encargados de generar las correspondientes señales de enable, SMCLK1 y SMCLK2, de los relojes XO2 y XO3 respectivamente.
SDA (pin 27) y SCL (pin 28) pines encargados de realizar la comunicación I2C con el resto del sistema, irán conectados al conector J6 y al
PCA9306 que se encargará de compatibilizar estas señales con los dispositivos de 3.3V.
ADC6 (pin 19) y ADC7 (pin 22) no se utilizan por lo que quedarán sin conexión.
1.2.3. PUERTO DEn nuestra aplicación el puerto D queda completamente libre y estará a nuestra disposición a través del conector J8 para cualquier uso que se nos pueda ocurrir.
1.3. PCA9306El
PCA9306 es como decía el encargado de adaptar las señales del bus I2C de 5V a 3.3V y viceversa, de esta manera se pueden conectar al bus dispositivos compatibles con ambos voltajes. Los valores de las renitencias de pull-up los he seleccionado basándome en lo indicado en el datasheet del integrado.
2. ALIMENTACIÓN Y DECOUPLING.Se seguirá el mismo esquema de decoupling utilizado hasta el momento sin ningún tipo de modificación.
3. PROBLEMILLASQuedan unos pequeños problemillas

por resolver que son:
- Saber si las entradas de enable de los relojes son 5V compatibles, ya que en estos momentos se manejan directamente desde las salidas del micro. En caso de que esto no sea así, tendría que utilizar el bus I2C para comunicarme con el SRC4392 y utilizar dos de sus GPOs (General Purpose Outputs) para generar las correspondientes señales de enable.
- Con la señal INTSRC tengo el mismo problema pero al revés, ya que esta señal es de 3.3V pero debe ser procesada por un dispositivo de 5V así que esto también tengo que ver cómo solucionarlo.
Bueno, con esto termina la explicación de toda la parte digital del DAC que ya iba siendo hora

. Hasta este punto los esquemáticos ya deberían de ser los definitivos salvo que encuentre algún error, pequeños cambios de última hora y esos problemillas que he comentado.
Lo próximo será la etapa de salida del DAC, donde después de pensármelo mejor voy a simplificar las cosas eliminando la salida balanceada. Esto lo hago así debido a que no poseo ningún DAC balanceado que pueda aprovecharla y no creo que monte ninguno hasta dentro de mucho, mucho, tiempo…

Cualquier duda, error o sugerencia ya sabéis…
Un saludo.