summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src/servo/convert_servo.vhd
diff options
context:
space:
mode:
Diffstat (limited to '2004/n/fpga/src/servo/convert_servo.vhd')
-rw-r--r--2004/n/fpga/src/servo/convert_servo.vhd41
1 files changed, 41 insertions, 0 deletions
diff --git a/2004/n/fpga/src/servo/convert_servo.vhd b/2004/n/fpga/src/servo/convert_servo.vhd
new file mode 100644
index 0000000..af1e948
--- /dev/null
+++ b/2004/n/fpga/src/servo/convert_servo.vhd
@@ -0,0 +1,41 @@
+-------------------------------------------------------------------------------
+--convert_servo.vhd
+--Eurobot 2004 : APB Team
+--Auteur : Fidèle GAFAN
+--Module générateur des PWM
+--
+--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)]
+-------------------------------------------------------------------------------
+--LIBRARY
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.std_logic_unsigned.all;
+use ieee.std_logic_arith.all;
+
+use work.nono_const.all;
+use work.servo_const.all;
+
+--ENTITY
+entity convert_servo is
+port (
+ data_in : in T_OCTET;
+ data_out : out T_DOUBLE_OCTET --duree pdt laql la sortie
+ );
+end entity;
+
+
+architecture RTL of convert_servo is
+begin
+ data_out <= (SERVO_VALUE_MIN + (data_in * SERVO_INC_INT));
+
+end RTL;