Étape 4: Convertisseur analogique à numérique (ADC)
Si vous n’avez pas un Conseil de Basys 3, cette configuration sera différente pour vous.
L’ADC prend un signal analogique (tension) et le convertit en un nombre binaire de 12 bits. Voilà comment nous lisons la tension maximale du panneau solaire. Pour obtenir le module ADC pour travailler, vous devez instancier via catalogue IP de Vivado. Cela fera apparaître une interface graphique dans lequel vous sélectionnez différents paramètres tels que quelles broches vous voulez l’ADC pour lire et mode que vous voulez à exploiter en. Une fois que vous avez sélectionné tous les paramètres appropriés, Vivado résumera un module ADC pour vous. Puis, créez votre propre module ADC dans lequel vous devez instancier de Vivado module ADC installation une port carte pour elle.
Pour le 3 Basys, le convertisseur numérique analogique peut uniquement lu canaux 6, 7, 14 et 15, nous avons dû choisir dans l’onglet de sélection du canal de l’Assistant de l’instanciation de Vivado ADC. Si vous regardez Regardez le schéma de 35 Banque qui contient les signaux d’entrée, vous pouvez voir qu’il y a une série de 8 signaux avec la forme XA #_P/N. Ceux-ci vont à l’ADC et reçoivent leur signal de l’en-tête de Basys 3 gauche bas. Par conséquent, vous devez regarder dans la Banque d’e/s et de voir quelles broches correspondent à quel canal. Dans notre cas, nous avons utilisé les broches J3 et K3 qui correspondent aux canaux 6 sur l’ADC.
Puisque ADC le jury ne peut pas prendre en plus d’un volt, nous avons dû créer un diviseur de tension. Ce sera décrit plus loin dans l’Instructable.
Voici une description des composantes de notre ADC en VHDL :
entité adc est
Port (V_in : au std_logic_vector ;
V_out : En std_logic_vector ;
CLK : dans std_logic_vector ;
do_out : dehors STD_LOGIC_VECTOR (15 downto 0)) ;
fin adc ;
Comme vous pouvez le voir, l’ADC prend dans les deux tensions, un signal d’horloge et do_out. do_out est les données lues à partir d’un registre de l’ADC qui contient la tension sur le canal 6. Si vous utilisez un canal différent, vous devez mettre à jour que do_out adresse est envoyée à partir. Pour le canal 6, l’adresse pour la tension est en x16. Le reste du fichier adc est un port de carte du module Vivado synthétisé à partir du catalogue de la propriété intellectuelle.
ADC_addr du signal : STD_LOGIC_VECTOR (6 downto 0) ;
ADC_enable du signal : std_logic_vector ;
ADC_addr < = « 001 » & x « 6 » ; ---l’adresse entrée est seulement de 7 bits
ADC: xadc_wiz_0
carte de port (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 = > Ouvrir,
channel_out = > Ouvrir,
eoc_out = > ADC_enable,
eos_out = > Ouvrir,
alarm_out = > Ouvrir,
vp_in = > « 0 »,
vn_in = > '0') ;
Beaucoup de ports du module automatiquement synthétisé ne sont pas utilisés.