From 3fc6bd6301cb0a78ab8d0546c38135a86c70cb5b Mon Sep 17 00:00:00 2001 From: galmes Date: Tue, 20 Apr 2004 22:21:47 +0000 Subject: rapport.tex : ajout de plein de sources de pwm. pwm : sources = mise en forme du commentaire. doc = rectification de grosses anneries. --- 2004/n/fpga/src/pwm/clk1us.vhd | 16 ++++++---------- 2004/n/fpga/src/pwm/convert_pwm.vhd | 29 +++++++++++------------------ 2004/n/fpga/src/pwm/pwm_generator.vhd | 29 ++++++++++------------------- 3 files changed, 27 insertions(+), 47 deletions(-) (limited to '2004/n/fpga/src') diff --git a/2004/n/fpga/src/pwm/clk1us.vhd b/2004/n/fpga/src/pwm/clk1us.vhd index 3614b5a..2fc2705 100644 --- a/2004/n/fpga/src/pwm/clk1us.vhd +++ b/2004/n/fpga/src/pwm/clk1us.vhd @@ -1,14 +1,10 @@ -------------------------------------------------------------------------------- ---clk1us.vhd ---Eurobot 2004 : APB Team ---Auteur : Fidèle GAFAN ---Module générateur d'horloge 1us-périodique(0,992us en réalité) +-- clk1us.vhd +-- Eurobot 2004 : APB Team +-- Auteur : Fidèle GAFAN et Pierre-André Galmes +-- Module générateur d'horloge 1us-périodique. -- ---REMARQUE(S):changer compt si CLK#32MHz ---Les calculs ont été faits avec CLK=32MHz ---donc 31*(1/CLK)=1us ---d'où compt=31 -------------------------------------------------------------------------------- +-- REMARQUE(S): pour les constantes, se reporter à pwm_const.vhd + library ieee; use ieee.std_logic_1164.all; diff --git a/2004/n/fpga/src/pwm/convert_pwm.vhd b/2004/n/fpga/src/pwm/convert_pwm.vhd index a3ab92e..c043111 100644 --- a/2004/n/fpga/src/pwm/convert_pwm.vhd +++ b/2004/n/fpga/src/pwm/convert_pwm.vhd @@ -1,21 +1,14 @@ -------------------------------------------------------------------------------- ---convert_pwm.vhd ---Eurobot 2004 : APB Team ---Auteur : Fidèle GAFAN ---Module générateur des PWM +-- convert_pwm.vhd +-- Eurobot 2004 : APB Team +-- Auteur : Fidèle GAFAN et Pierre-André Galmes + +-- Principe : -- ---REMARQUE(S):changer tccompt,q et data_out --- si CLK#32MHz et/ou qu'on modifie les valeurs de référence de T1 --- et T2 --- Tcmax=20ms/1us=20161cycles. ---*Si DATACOMPT=0,on veut que T2 vale 0,5ms donc on initialise Q à la valeur ---Q=0,5ms/1us=PWM_VALUE_MIN. ---*Si DATACOMPT=255,on veut que T2 vale 1,5ms donc on initialise Q à la valeur ---Q=1,5ms/1us=PWM_VALUE_MAX. ---*Pour toute autre valeur de DATACOMPT comprise entre les deux précédentes et ---différentes de ces dernières,on initialise Q avec ---Q=(0,5ms/1us)+(DATACOMPT*min[((1,5ms-0,5ms)/1us)/(255-0)] -------------------------------------------------------------------------------- +-- Converti la valeur comprise dans l'intervalle [0 - 255] +-- et transmise par le -- PC en une valeur comprise dans +-- l'interval suivant : +-- [PWM_VALUE_MIN - (PWM_VALUE_MIN + data_in * -- PWM_INC_INT] + --LIBRARY library ieee; use ieee.std_logic_1164.all; @@ -29,7 +22,7 @@ use work.pwm_const.all; entity convert_pwm is port ( data_in : in T_OCTET; - data_out : out T_DOUBLE_OCTET --duree pdt laql la sortie + data_out : out T_DOUBLE_OCTET ); end entity; diff --git a/2004/n/fpga/src/pwm/pwm_generator.vhd b/2004/n/fpga/src/pwm/pwm_generator.vhd index e650de4..960a734 100644 --- a/2004/n/fpga/src/pwm/pwm_generator.vhd +++ b/2004/n/fpga/src/pwm/pwm_generator.vhd @@ -1,31 +1,22 @@ -------------------------------------------------------------------------------- ---pwm_generator.vhd ---Eurobot 2004 : APB Team ---Auteur : Fidèle GAFAN ---Registre à décalage affichantles signaux PWM +-- pwm_generator.vhd +-- Eurobot 2004 : APB Team +-- Auteur : Fidèle GAFAN et Pierre-André Galmes +-- Génèrateur de signal PWM à partir du nombre de cycles +-- à l'état haut et du nombre de cycles de l'enveloppe . -- -- Les commentaires ci-dessous ne sont plus trop valables. -- Maintenant, clock = 40MHz - ---REMARQUE(S):changer tccompt,q et valuecompt --- si CLK#32MHz et/ou qu'on modifie les valeurs de référence de T1 --- et T2 -- Tcmax = 20ms / 1us -- = 20161 cycles. --- Si DATACOMPT = 0, on veut que T2 vale 0,5ms donc on initialise Q à la --- valeur Q=0,5ms/1us=505. - --- Si DATACOMPT=255,on veut que T2 vale 1,5ms donc on initialise Q à la --- valeur Q=1,5ms/1us=1515. +-- Si DATACOMPT = 0, on veut que T2 vale 0,5ms donc on +-- initialise Q à la -- valeur Q=0,5ms/1us=505. --- Pour toute autre valeur de DATACOMPT comprise entre les deux --- précédentes et différentes de ces dernières,on initialise Q avec --- Q=(0,5ms/1us)+(DATACOMPT*min[((1,5ms-0,5ms)/1us)/(255-1)] +-- Si DATACOMPT=255,on veut que T2 vale 1,5ms donc on +-- initialise Q à la -- valeur Q=1,5ms/1us=1515. -------------------------------------------------rtl de la sortie pwm en fonction de tc library ieee; use ieee.std_logic_1164.all; @@ -33,7 +24,7 @@ use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; use work.nono_const.all; -use work.pwm_const.all; +use work.pwm_const.all; --ENTITE entity pwm_generator is -- cgit v1.2.3