Stap 4: Analoog naar Digitaal Converter (ADC)
Als u nog geen een bord Basys 3, zullen deze setup afwijken voor u.
De ADC neemt een analoog signaal (spanning) en zet dit om in een 12-beetje binair getal. Dit is hoe lezen we de maximale spanning van het zonnepaneel. Als u de ADC-module om te werken, moet u het instantiëren door Vivado van IP-catalogus. Dit zal omhoog een GUI waarin u verschillende instellingen zoals welke pinnen gewenste de ADC om te lezen en welke modus je wilt werken brengen. Zodra u de juiste instellingen hebt geselecteerd, zal Vivado een ADC-module voor u synthetiseren. Vervolgens maakt u uw eigen ADC-module waarin u Vivado de ADC-module en setup instantiëren een port-kaart voor het.
Voor de Basys 3, kan de analoog naar digitaal convertor alleen lezen uit kanalen 6, 7, 14 en 15, dus moesten we kiezen deze in het kanaal selectie tabblad van de ADC Vivado instantiëren wizard. Als je kijkt kijk op het schema van de Bank 35 die ingangssignalen bevat, ziet u dat er een reeks van 8 signalen met het formulier XA #_P/N. Deze gaan naar de ADC en hun signaal ontvangen de onderkant linkerkoptekst Basys 3. Daarom moet u om te kijken in de IO-Bank en zie welke pinnen komen overeen met welk kanaal. In ons geval gebruikten we de J3 en K3 pinnen die overeenkomen met kanaal 6 op de ADC.
Aangezien de Raad ADC kan niet aan meer dan één volt deelnemen, moesten we een divider spanning maken. Dit zal worden verder beschreven in de Instructable.
Hier is een beschrijving van de component van onze ADC in VHDL:
entiteit adc is
Poort (V_in: in STD_LOGIC;
V_out: In STD_LOGIC;
CLK: in STD_LOGIC;
do_out: uit STD_LOGIC_VECTOR (15 downto 0));
einde van adc;
Zoals u zien kunt, neemt de ADC in de twee spanningen, een kloksignaal en do_out. do_out is de gegevens lezen uit een register in de ADC waarin de spanning op kanaal 6. Als u een ander kanaal gebruikt, zal u wilt bijwerken welk adres do_out wordt verzonden uit. Voor kanaal 6 is het adres voor de spanning in x16. De rest van de adc-bestand is een kaart van de haven van de module Vivado gesynthetiseerd uit de IP-catalogus.
signaal van de ADC_addr: STD_LOGIC_VECTOR (6 downto 0);
signaal van de ADC_enable: STD_LOGIC;
ADC_addr < = "001" & x '6'; ---het adres invoer slechts 7 bits lang is
ADC: xadc_wiz_0
kaart van de haven (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 = > open,
channel_out = > open,
eoc_out = > ADC_enable,
eos_out = > open,
alarm_out = > open,
vp_in = > '0',
vn_in = > '0');
Veel van de poorten van de automatisch gesynthetiseerde module worden niet gebruikt.