summaryrefslogtreecommitdiff
path: root/2004/n/fpga/src/servo/convert_servo.vhd
blob: af1e948c4d96c2bc43881116673d624c6109f54e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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;