Paso 4: Convertidor analógico a Digital (ADC)
Si no tienes una placa Basys 3, esta configuración será diferente para ti.
La ADC toma una señal analógica (voltaje) y lo convierte en un número binario de 12 bits. Se trata de cómo leemos la tensión máxima del panel solar. Para obtener el módulo ADC para trabajar, debe crear a través IP catálogo de Vivado. Esto hará que aparezca una GUI en el que usted selecciona una configuración distinta como qué pins quieres el ADC para leer y qué modo desea operar en. Una vez haya seleccionado todos los ajustes adecuados, Vivado sintetiza un módulo ADC para usted. Entonces crear su propio módulo de ADC en que crea una instancia de Vivado módulo ADC y configuración de un mapa de puerto para él.
Para el 3 de Basys, el convertidor analógico a digital sólo puede leer desde canales 6, 7, 14 y 15 así que tuvimos que elegir en la pestaña de selección de canal del asistente de creación de instancias de Vivado ADC. Si buscas mirar el esquema de banco 35 que contiene las señales de entrada, se puede ver que hay una serie de 8 señales con la forma XA # __P/N. Estos van a la ADC y reciban su señal desde la cabecera de Basys 3 izquierda inferior. Por lo tanto, usted necesita mirar en el Banco de IO y ver que pines corresponden a qué canal. En nuestro caso, hemos utilizado las patillas J3 y K3 que corresponden al canal 6 en el ADC.
Desde ADC de la Junta no puede tomar en más de un voltio, había que crear un divisor del voltaje. Esto será descrito más lejos en el Instructable.
Aquí está una descripción del componente de nuestro ADC en VHDL:
entidad adc es
Puerto (V_in: en RAMB16_S36;
V_out: En RAMB16_S36;
CLK: en RAMB16_S36;
do_out: a información (15 p 0));
final a adc;
Como se puede ver, la ADC toma en las dos tensiones, una señal de reloj y do_out. do_out son los datos de un registro en el ADC que contiene el voltaje en el canal 6. Si utiliza un canal diferente, usted tendrá que actualizar que do_out dirección se envía desde. Para el canal 6, la dirección de la tensión está en x16. El resto del archivo adc es un mapa de puerto del módulo Vivado sintetizado de la IP catálogo.
ADC_addr de señal: información (6 p 0);
ADC_enable de señal: RAMB16_S36;
ADC_addr < = "001" y x "6"; ---la dirección de entrada es de sólo 7 bits de largo
ADC: xadc_wiz_0
mapa de puerto (daddr_in = > ADC_addr,
den_in = > ADC_enable,
di_in = > x "0000",
dwe_in = > '0',
do_out = > do_out,
drdy_out = > d_rdy,
dclk_in = > clk,
reset_in = > '0',
vauxp6 = > V_in,
vauxn6 = > V_out,
busy_out = > abrir,
channel_out = > abrir,
eoc_out = > ADC_enable,
eos_out = > abrir,
alarm_out = > abrir,
vp_in = > '0',
vn_in = > '0');
Muchos de los puertos desde el módulo automáticamente sintetizado no se utilizan.