Está en la página 1de 14

PROYECTO EN ELECTRONICA II.

SEMESTRE 2021-3
PREINFORME DE PRÁCTICA No. 2
FILTRO FIR-IIR. PARTE 1

INTEGRANTES: PROFESOR: Nini Vanesa Rueda


Andrés Camilo Ángel Marín Algarra
Julián David Oviedo Pasuy GRUPO: 1-1
FECHA DE ENTREGA: 04/09/21

1. OBJETIVOS

Objetivo General
Implementar técnicas de manejo de ADC-DAC por medio de un microcontrolador
manejando la temporización y uso de recursos de forma eficiente.
Objetivos Específicos
1. Describir los periféricos asociados al microcontrolador que se usarán para realizar los
procesos de conversión analógica y digital.
2. Desarrollar rutinas de conversión para el ADC del procesador: configuración del
ADC, tiempos de muestreo, formato de datos.
3. Desarrollar las rutinas para mostrar datos digitales en un conversor DAC usando
SPI.
4. Manejar eficientemente la interacción entre las rutinas del ADC, DAC y Timers
para usar eficientemente los recursos hardware y software de estos periféricos.

Descripción de los periféricos


El conversor análogo digital, ADC:

Es un dispositivo que se encarga de convertir una señal analógica en una señal digital, con la finalidad
de poder realizar de forma sencilla el procesamiento y análisis en un sistema digital.
Se definen varios parámetros de rendimiento para realizar la conversión, como lo es la velocidad de
muestreo, teniendo en cuenta el teorema de Nyquist, así entonces se tomará como el doble de la
frecuencia máxima de la señal de entrada, de esta forma la resolución de ADC muestra la precisión
de la representación digital discreta para el rango de valores análogos. Es importante resaltar esa tasa
de muestreo ya que es la que permite representar esa frecuencia en la señal de entrada ya que se va
muestreando cada cierto intervalo de tiempo.
El conversor funciona tomando muestras en instantes de tiempo de la señal de entrada, donde cada
conversor cuenta cona una frecuencia asociada al muestreo (Hz a KHz), al tomar ciertas muestras por
segundo hasta miles dependiendo de la aplicación, este proceso es conocido como muestreo.

Luego de realizar el muestreo de la señal se asocia un valor digital al de la señal de entrada


analógica, estos se determinarán por la resolución en bits del dispositivo. Partiendo en serie
de valores decimales se obtiene un código para cada valor, este proceso es conocido como
cuantización.

Hablar de cuantización es indicar que se habla de un mapeo infinito de valores análogos a un


valor numerico finito de códigos digitales, evaluar el ruido de cuantización, en el ruido de
cuantización no se puede medir más allá de la resolución, en referencia con el ADC no
distingue cambios en la entrada.

Figura 1. Representación de Conversión Analógica Digital: Tomada de:


https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Quantization_error.png/1200px-
Quantization_error.png

El proceso de codificación parte de cuantizar los valores entre muestras de una señal
digitalizada, donde se muestra un código binario determinado. La figura 2 muestra un
ejemplo que parte de un valor decimal (7), asignando un código binario de 3 bits (111), o si
es 0, asociándolo a 000, lo anterior es basado en la resolución del sistema y cada uno de los
sistemas de cuantización.

Figura 2. Representación de Conversión Analógica Digital: Tomado de:


http://www.asifunciona.com/electronica/af_conv_ad/conv_ad_5.htm
Configuración en el Microcontrolador 18F46k42

La configuración del ADC para los requerimientos, parte de configurar los puertos, el canal, dar
referencia, fuentes de reloj, los formatos de resultado, los controles respectivos.
La configuración de Puertos se debe hacer de la siguiente manera:
Colocar los bits 1 y 0 del registro TRISA en 1, estás indican las entradas de señal.
De igual forma para el selector, si se colocan los bits del registro 0 y 1 del registro ANSELA en valor
1, coloca cada uno de los pines como si fueran de configuración análoga.
Configuración de Canal: Con los puertos configurados, lo siguiente es poder realizar la configuración
de las entradas análogas que son RA0 y RA1. Se deben configurar los bits del registro ADPCH:
o Para entrada en RA0: 0b00000000. //
o Para entrada en RA1: 0b00000001. //
Referencia de la conversión ADC: Poner los bits 4,1 y 0 del registro a valor ‘0’, de tal forma que se
ajusta la referencia del ADC a lo que se alimenta el microprocesador (entre VSS y VDD), siendo
ADREF = 0b00000000.
Fuente de Reloj para la conversión ADC:
Se configura de manera interna de 16MHz HF
Resultado: lo primero es tratar de contrastar el resultado de manera que esté justificado a la derecha
por facilidad de análisis.
Control de ADC: ADCON0:
- Bit 7 ON: 1, activa el ADC.
- Bit 6 CONT: 0, el ADC se limpia después de cada conversión.
- Bit 5,3 y 1 son bits que no se implementan por tal motivo se leen como 0.
- Bit 4 CS: Se configura en 0, dado que se usa el Reloj dado por Fosc, o el reloj interno, a
diferencia que si se toma el bit en 1 se alimenta por el oscilador dedicado por el FRC.
- Bit 2 FM: al ajustar este registro en 1, lo que es ADRES y PREV muestra los resultados
justificados a la derecha.
- Bit 0 GO: se ajusta en 1 si la conversión esta en progreso en 0 es para indicar si se completo
o simplemente no esta en progreso.
Para ajustar el registro ADCON1 se debe poner:
- Se colocan del bit 7 al 0 configurados o seteados en 0.
- Bit 7 PPOL se indica que al estar conectado en 0 en la parte externa hay una conexión sobre
VSS y Chold se conecta a VDD, por lo que en la parte interna se toma como referencia el capacitor
interno de muestreo.
- Bit 6 DSEN indica los ciclos de conversión que usa la precarga y guarda valores específicos
de ADPPOL y ADGPOL.
- Bit 5 Bit selección de polaridad del anillo de protección (GPOL) al habilitarlo en 0 lo que
realiza allí es inicializar de forma digital mientras se carga en bajo para un estado de precarga.
- BIT 4 a 1 no se usan.
- Bit 0: 1, Habilita que haya dos conversiones ADC, haciendo que la primera conversión
aparezca en el registro PREV.

Para ajustar el registro ADCON2 se debe poner:


- Bit 7,6,5,4,3: Establecer en 0.
- Bit 7 PSIS es para indicar un selector de entrada para muestreo previo al configurar PREV
en 0 se dice que es el valor RES del inicio de la conversión.
- Bit 6 a 4 CRS<2:0>: bits de cálculo acumulado en desplazamiento por la derecha al estar
configurados en otherwise se encuentran en 0.
- Bit 3: Comando de borrado del acumulador al estar en 0 en este caso es porque no hay una
inicialización del ADC.
- Bit 2,1,0: Establecer en ‘000’, pone en modo normal/básico la conversión ADC.
Para ajustar el registro ADCON3 se debe poner todo en 0, puesto que no se tomarán en cuenta cálculos
de error en la conversión ADC, además que el bit ‘GO’ del ADC será configurado desde el software.
DAC
Conversor Digital a análogo: este tipo de convertidores se encargan de convertir un código digital en
un nivel de corriente o voltaje analógico, pues en un código se cuentan con n bits, por lo que se parte
de una relación de combinaciones en potencias de 2𝑛 , como tantas combinaciones hayan partiendo
de cada combinación se da por medio de un nivel de voltaje diferente a la salida, por lo que en pocas
palabras se parte de intervenir en el proceso, por medio de interruptores, red de resistencias, fuentes
o condensadores para realizar carga y descarga de estímulos por medio de energía por medio de una
señal envolvente partiendo de generar una variable analógica, partiendo de una conversión de una
señal digital a una análoga, para ello se requiere de varias características:
- Resolución: número de bits digitales por muestra para convertir con precisión una señal
analógica.
- Tasa de Muestreo: frecuencia en la que se prueban datos digitales de entrada.
- Linealidad: parte de la relación con resolución por la que se parte de realizar la configuración
de forma que se den cambios de entrada digital a medida que estos generan un incremento.

El microprocesador para utilizar que es fundamental en la práctica es el MCP4822, que parte de una
conversión digital análoga, partiendo por una red de resistencias, esa red va generando un promedio
ponderado de bits de entrada digital, por lo que el bit más significativo indica esa ponderación alta,
mientras que el bit menos significativo LSB recibe lo más bajo, partiendo de lo anterior los DAC se
parte de un filtro de reconstrucción para evaluar por medio del anti-aliasing para tomar esos pasos de
muestreo, pero eso a su vez para evitar el traslapamiento o solapamiento de una señal muestreado
partiendo de lo siguiente:
Figura 3. Configuración DAC con Escalera de Resistencias.
Para configurar el microprocesador parte de configurar el registro de control del DAC:

DAC1CON0:
Bit 7: EN: se configura el DAC en 1 para que quede habilitado.
Bit 6 junto bit 1 quedan sin implementar.
Bit 5 OE1: Enable de voltaje de Salida del DAC: Se configura en 1 para indicar que hay salida del
nivel de voltaje se da por salida del Pin DAC1OUT1.
Bit 4: OE2: al habilitar en 1 ocurre algo similar a lo anterior por lo que en resumidas cuentas se busca
dejar en 1 o activo para que haya salida de nivel de voltaje por salida del pin DAC1OUT2.
Bit 3 al 2 configurando PSS<1:0> configurándolos en 00 prácticamente queda en VDD.
En Bit 0 se configura NSS para que la fuente quede en VSS, es decir, en 0.

Configuración para usar el DAC externo (MCP4822): Este está relacionado con el reloj de la
transmisión SPI, por tanto, la configuración se encuentra en la sección de la SPI. Para ajustar el
funcionamiento de este, desde el microprocesador se debe configurar:
- Poner como salida digital el pin RC5, es decir, ajustar el bit 5 del registro TRISC en ‘0’.
- Poner como salida digital el pin RB4, es decir, ajustar el bit 4 del registro TRISB en ‘0’.
- Poner como salida digital el pin RE0, es decir, ajustar el bit 0 del registro TRISE en ‘0’.

Recepción USART
Se pregunta por cual frecuencia de muestreo que se eligió, se tiene pensado de la siguiente manera:
Comando Ts(s)
F5 500µ
F6 600µ
F7 700µ
F8 800µ
F9 900µ
FA 1000µ
Tabla 1. Comandos y tiempos de muestreo
Con ayuda del timer se realiza un conteo con el numero del comando que se recibe de la USART.
Algo parecido a esto:
I=+1 ;
if( i>= #comando) {
i=0;
function/variable;
}
else
state = wait;
Al trabajar el timer con interrupciones, cada vez que pasa un periodo de 100 µs, se vuelve a aumentar
el contador.

Transmisión DAC
El comando de escritura inicia al activar el pin CS bajo, seguido de la sincronización de los 4 bits de
configuración y los 12 bits de datos en el pin SDI en el borde ascendente de SCK. Se eleva el pin CS
lo que hace que los datos queden en los registros de entrada del DAC seleccionado, DACA o DACB.

Figura 3.1 Comandos DAC MCP4822.

̅̅̅̅̅
A/B: 𝐷𝐴𝐶𝐴 𝑜 𝐷𝐴𝐶𝐵 𝑏𝑖𝑡 𝑑𝑒 𝑠𝑒𝑙𝑒𝑐𝑐𝑖𝑜𝑛
1 = escritura en DACB
0 = escritura en DACA
̅̅̅̅
GA: 𝐵𝑖𝑡 𝑑𝑒 𝑠𝑒𝑙𝑒𝑐𝑐𝑖ó𝑛 𝑑𝑒 𝑔𝑎𝑛𝑎𝑛𝑐𝑖𝑎 𝑑𝑒 𝑠𝑎𝑙𝑖𝑑𝑎
1 = 1x (VOUT = VREF * D/4096)
0 = 2x (VOUT = 2 * VREF * D/4096), where internal VREF = 2.048V.

̅̅̅̅̅̅̅̅̅
SHDN: 𝐵𝑖𝑡 𝑑𝑒 𝑐𝑜𝑛𝑡𝑟𝑜𝑙 𝑑𝑒 𝑎𝑝𝑎𝑔𝑎𝑑𝑜 𝑑𝑒 𝑠𝑎𝑙𝑖𝑑𝑎
1 = Funcionamiento en modo activo. Vo está disponible.
0 = Apague el canal DAC seleccionado. La salida analógica no está disponible en el canal que
se cerró.

D11:D0: bits de datos


Los registros DACA y DACB se sincroniza con el Pin LDAC y al bajarlo se transfieren los
contenidos almacenados en los registros de entrada del DAC a los registros de salida.
Si el borde ascendente de la CS ocurre antes, el desplazamiento de datos a los registros de
entrada será abortado.
uint8_t Control_ SPIA = 0b00110000; // Variable de control para el canal A
uint8_t Control_ SPIB = 0b10110000; // Variable de control para el canal B
uint8_t SPIA[2]; // Vector de los dos bytes del canal A
uint8_t SPIB[2]; // Vector de los dos bytes del canal B
En estos vectores SPIA y SPIB se almacena el dato que viene del ADC del micro que será
trasmitido al DAC. Al ser de 2 bytes se almacenará de la siguiente manera:
SPIA[0] = Control_ SPIA or ADRESH;
SPIA[1] = ADRESL;

El or me permitirá que los 4 bits de datos queden como vienen del registro ADRESH y los 4 bit
del control de SPI queden tal cual están escritos ya que los 4 bits más significativos del ADRESH
son 0.
SPI1TXB = SPIA[0];
SPI1TXB = SPIA[1];
Para esta trasmisión debemos tener en cuenta activar y desactivar el bit de CS como se
mencionaba anteriormente para una correcta comunicación.

SPI: Interfaz de periféricos en serie, consta de un bus de 4 cables, con un reloj en serie una salida de
maestro/entrada esclavo o viceversa, por ello la comunicación se da en modo full-dúplex, en este caso
referirse a dúplex se usa para definir un sistema capaz de tener una comunicación de 2 direcciones,
de forma que reciba y envié mensajes de manera instantánea. A su vez retomando la comunicación
serial consiste en recibir y transmitir la información de modo que 2 dispositivos se comuniquen
simultáneamente por medio de canales diferentes, por lo que se requiere de un canal adicional para
generar sincronía de comunicación entre dispositivos.

Para lo anterior se cuentan con líneas lógicas que dan composición al protocolo:
- MOSI: Master Out Slave In: Busca que la línea utilizada para llevar bits tenga una
proveniencia de un maestro a un esclavo.
- Master In Slave Out: a diferencia de la anterior busca que la línea que se usa lleve los bits
que los bits que provienen pasen de esclavo a maestro.
- SCLK: es la línea que viene del maestro, por ello parte de enviar la señal de reloj para
sincronizar los dispositivos conectados a un protocolo.
- SS: es la línea que selecciona y habilita los esclavos.
Figura 4. Configuración de los protocolos SPI Tipo Encadenado

Figura 5. Configuración de protocolos SPI Tipo Paralelo.

Registro de configuración SPIxCON0:


- Bit 7: Poner en 1, activa el módulo SPI. o Bit 6 al 3: Poner en 0, no tienen efecto. o Bit 2:
Poner en 1 de tal forma que se entrega primero el bit menos significativo al más significativo.
o Bit 1: El módulo SPI debe trabajar como maestro, por tanto, poner este bit en 1. o Bit 0:
Permite indicar que cuando SPIxTCNT sea cero, es porque el paquete terminó de ser enviado
para cada byte.
- EL bit 7 EN: habilita el SPI
- Bits del 6 al 3 no habilitan nada, no se implementan.
- Bit 2 LSBF: al colocarlo en 1 lo que hace es evaluar el módulo del SPI operarlo desde el bit
menos significativo.
- BIT 1 MST: bit de operación modo maestro al dejarlo activo en 1 lo que hace es habilitar el
módulo operando como maestro si queda en 0 se opera en modo esclavo.
- Finalmente, el ultimo el BMODE: es quien habilita el modo de selección de longitud de bits
SPIxTCNT, al aplicarse de la siguiente forma muestra cómo se aplican cambios sobre el
ultimo byte intercambiado, por lo que permite mirar el total de bits enviados.

Registro de configuración SPIxCON1: o Bit 7: 1, la entrada de SDI es muestreada al final de la


salida de los datos. o Bit 6: 1, los datos de salida cambian en la transición del estado de reloj de
activo a inactivo. o Bit 5: Estado inactivo para SCK en bajo nivel. o Bit 4: 1, retraso del primer
SCK puede ser menor a ½ período de baudio. o Bit 3: 0, no se usa.
o Bit 2: 1, Pone el bit de control SS en activo bajo. o Bit 1: 1, Pone el bit de control SDI en activo
bajo. o Bit 0: 1, Pone el bit de control SDO en activo bajo.
- BIT 7 SMP: al ponerla en 1 en modo maestro, lo que hace es coger la entrada del SDI y
muestrear al final de la salida de datos.
- Bit 6 CKE: cambio de datos de salida en transición del reloj
- Bit 5 CKP: se define la polaridad de selector de bits, por lo que en esta lo que hace es definirse
en estado inactivo para SCK en bajo nivel, es decir se configura en 0.
- Bit 4 FST: en modo esclavo se ignora en modo maestro se pone un delay para habilitar un
delay menor a medio periodo de Baudio, por ello se configura en 1.
- Con el SSIP, La porlaridad del bit de control de E/S sirve para dejar SS en 1, activo en bajo.
Bit 2.
- Bit 1: se coloca al SDI la entrada configurada en 1 en bajo
- Bit 0 se coloca la SDO en activo bajo configurando en 1.

Registro de configuración SPIxCON2:


- Bit 2: 1, el SS está en estado activo continuamente.
- Bit 1: 1, si se requiere emplear los datos de FIFO en la recepción.

Registro de configuración SPIxCLK:


- Bit 3 al 0: 0000, pone el reloj del funcionamiento del protocolo SPI a Fosc
Rutina Base de la Práctica (en desarrollo)
Timer0
Contador de 8 bits y para nuestro caso se decidió por el timer 0, en el cual se carga un valor, este
comenzara a contar desde el valor cargado hasta que se desborda. Trabajará en modo timer, donde
incrementa cada ciclo de instrucción. Cuando se carga un valor X en el registro TMR0, este contará
(256-X) impulsos y el tiempo que tardará en hacerlo estará dado por la expresión:

𝑇𝑒𝑚𝑝𝑜𝑟𝑖𝑧𝑎𝑐𝑖ó𝑛 = 4 ∗ 𝑇𝑜𝑠𝑐 ∗ 𝑉𝑎𝑙𝑜𝑟𝑅𝑒𝑎𝑙𝑇𝑖𝑚𝑒𝑟0 ∗ 𝑉𝑎𝑙𝑜𝑟𝑃𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟

Para cumplir con los requerimientos se toma 100𝜇𝑠 para el periodo del timer por lo que nuestro
registro TMR0H se carga con 199. El preescaler se selecciona de 1:32 este seleccionado de manera
empírica. Decidimos usar el Timer por interrupciones, la bandera de interrupción TMR0IF se activa
cuando el valor del timer coincide con el valor cargado en TMR0H.

Diagramas de tiempo: Se decidió configurar el reloj del sistema con diferentes valores, ya que el
rango requerido de tiempos de muestreo es bastante extenso. Como lo requerido es 2000 tiempos de
muestreo diferentes entre 500us y 50ms se elegirá usar 64MHz

Como se dijo anteriormente que el reloj del sistema será variable, el diagrama de tiempo se hace de
forma general:

Figura 6. Diagramas de Tiempo UART.

El valor de Ts estará definido por la frecuencia de muestreo que se solicite, con la relación fs = 1/Ts.
Para la conversión análoga a digital se usará el reloj del sistema, para ellos se procede a convertir
secuencialmente por los 2 puertos.

Figura 7. Diagramas de Tiempo UART Parte 2


En la figura anterior se muestra el cambio de los registros de las banderas utilizados para indicar el
inicio y final de la conversión. Serán los mismos registros para las dos conversiones, sin embargo,
una vez finalizada la primera conversión se cambiará el puerto análogo para la segunda conversión.
El tiempo en este cambio de puerto puede considerarse como un ciclo del reloj del sistema.
Para la conversión Digital/Análoga, se toma la hoja de especificaciones del dispositivo MCP4822.La
salida digital del microcontrolador SCK será el reloj del Sistema, para que la comunicación se haga
con la misma frecuencia que la conversión A/D.

Figura 8. Bits de Configuración y Dato

Comunicación UART
Se caracteriza por ser una comunicación que permite transmitir o recibir datos de bit en bit, por lo
que al ser una comunicación serial, no se cuenta como un protocolo, más bien si se cuenta como un
dispositivo, por lo que requiere estar construido por medio de un microcontrolador, esta comunicación
lo que hace es poder realizar una transmisión de datos seriales, por lo que toma bit a bit cada uno de
los datos del registro y los envía por líneas de transmisión, implementando código partiendo del
programa y mandando información serializada de un receptor.

Esta comunicación se caracteriza por ser de tipo asincrónica, por lo que cuenta con una señal de reloj
con protocolo SPI para indicar el tiempo en que transmite cada dato, por lo que los datos poseen un
bit de inicio y uno de parada en casos comunes, cuentan con bits de paridad que indican si hay un
dato es determinar correcto o incorrecto. Por lo que los dispositivos se comunican correctamente y
que esa velocidad de transmisión coincida.

El módulo cuenta con diferentes modos de configuración, en el cual se configura en un modo


asincrónico de 8 bits. En ese caso la transmisión cuenta con bit de inicio y de parada, por lo que el
pin de transmisión se encuentra en 1, inicia la transmisión de datos para enviar un bit de inicio que se
encuentra en 0 por un periodo, por lo que inicia la transmisión de 8 bits, partiendo del bit menos
significativo (LSB) y termina con el bit más significativo (MSB).

Si se cuenta con un bit de parada en 1, parte de detener la transmisión, por lo que cuenta con el
transmisor como el receptor deben tener los parámetros de configuración.
Figura 9. Transmisión UART.

UART para transmitir y recibir datos usa el estándar Non-returnto-zero (NRZ). En este
estándar cuando se envían dos bits consecutivos del mismo valor se mantiene la salida en ese
valor sin volver a un valor neutral entre cada bit de transmisión. Cada bit perdurará
𝟏
𝑻𝒊𝒆𝒎𝒑𝒐𝒅𝒆𝑩𝒊𝒕 =
𝑻𝑩𝒂𝒖𝒅𝒊𝒐𝒔
Si se seleccionara como en la práctica pasada el tiempo sería. Nota: La tasa de baudios la
calculamos abajo en la sección de tasa de baudios.

𝟏
𝑻𝒊𝒆𝒎𝒑𝒐𝒅𝒆𝑩𝒊𝒕 = = 𝟓𝟎𝟎𝝁𝒔
𝟐𝟎𝟎𝟎

𝑻𝒊𝒆𝒎𝒑𝒐𝒕𝒐𝒕𝒂𝒍𝑻𝒙 = 𝟓𝝁𝒔
Transmisión UART
La transmisión es el registro de corrimiento TSR, al cual no se puede acceder directamente por el
software. El TSR obtiene los datos del buffer de transmisión, el cual usa el registro UxTXB.

Configuración:
Se deben configurar 5 bits de control a su vez deben estar en su estado por defecto. Los que se deben
configurar son los siguientes:
- TXEN: parte del registro UxCON0; en 1 para habilitar la transmisión del módulo
- Mode<3:0> al igual que TXEN el registro UxCON0; se selecciona el modo deseado, en este
caso queremos el de alta velocidad.
- RxyPPS; pin de salida deseado
- UxBRGH:L Tasa de baudios deseada
- UxBRGS: Multiplicado de tasa de baudios deseada.
La transmisión se establece de escriire un carácter en el registro UxTXB, se envía al registro TSR. La
condición presente en el TSR parte de generar algún carácter, que debe quedar el dato en el registro
UxTXb hasta que sea transmitido por completo el carácter y se desocupe TSR. El carácter pendiente
luego será transmitido.

Protocolo de Pruebas
1. La frecuencia de muestreo del ADC parte de configurar el PIN RD0 como salida
digital y se le asigna el valor de la bandera ADIF del registro PIR1. En el
osciloscopio se medirá el periodo ‘𝑇𝑠 o tiempo de muestreo’ de la señal de salida
1
por el pin RD0 junto con la frecuencia de muestreo será 𝑓𝑠 = 𝑇 . Con los anteriores
𝑠
datos, lo que se hace es exportar esa frecuencia de muestreo en formato ‘.csv’ para
un posterior análisis en el software Matlab, donde se realiza la respectiva
vectorización de las gráficas para cada uno de los análisis de las frecuencias a
trabajar.

2. Se define la frecuencia de muestreo esto a su vez ayuda a ingresar una señal


sinusoidal con un periodo de 10𝑇𝑠 por el pin RA0, donde una vez más se realiza una
conversión digital-análoga utilizando el Conversor Digital análogo MCP4822 de
Microchip. Después de realizado el proceso de la conversión análoga-digital y
digital-análoga se usa el módulo de National Instruments configurando en Signal
Express ó Labview, para poder medir el SINAD. Para obtener el ENOB se usará la
siguiente ecuación:
𝑆𝐼𝑁𝐴𝐷 − 1.76
𝐸𝑁𝑂𝐵 =
6.02
Para obtener el ENOB de la señal digital se abre el archivo ‘.csv’ guardado anteriormente y
se utiliza el software MATLAB y la función:
𝑟 = 𝑠𝑖𝑛𝑎𝑑(𝑥)
Después de obtenido el valor del SINAD se utiliza la ecuación anteriormente mostrada para
obtener el valor del ENOB. Finalmente, se anota este dato y posteriormente se realiza su
análisis.

3. Finalmente, se ajusta en el código el pin RD1 como salida a fin de que este
equivalga al bit SPITXIF, siendo este la bandera que indica la finalización de la
transmisión SPI. Con ello, se emplea un osciloscopio para medir el tiempo entre
cada transmisión. Tras obtener la señal en tiempo, se guarda en formato ‘.csv’ desde
el osciloscopio para su posterior análisis.
4. Repetir los pasos anteriores para cada tiempo de muestreo del ADC sugerido en la
práctica.

Referencias

https://core.ac.uk/download/pdf/46111717.pdf
https://www.sciencedirect.com/topics/computer-science/serial-peripheral-interface
https://blog.330ohms.com/2019/10/20/mejora-tu-programacion-en-arduino-
comunicacion-uart/

También podría gustarte