summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src
diff options
context:
space:
mode:
authorgalmes2004-04-20 22:21:47 +0000
committergalmes2004-04-20 22:21:47 +0000
commit3fc6bd6301cb0a78ab8d0546c38135a86c70cb5b (patch)
tree7d03a3185597a158cebd9fcf8c6ac729292efbd9 /2004/n/fpga/src
parent98f187e8b1807115354c94e58e89ae643ea4de2e (diff)
rapport.tex : ajout de plein de sources de pwm.
pwm : sources = mise en forme du commentaire. doc = rectification de grosses anneries.
Diffstat (limited to '2004/n/fpga/src')
-rw-r--r--2004/n/fpga/src/pwm/clk1us.vhd16
-rw-r--r--2004/n/fpga/src/pwm/convert_pwm.vhd29
-rw-r--r--2004/n/fpga/src/pwm/pwm_generator.vhd29
3 files changed, 27 insertions, 47 deletions
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