Stepper-Motor-Control
v3.0.0
System on a Chip 2014 - Group 04
|
Motor Control Unit. More...
Libraries | |
ieee | |
Use Standard Library. |
Use Clauses | |
std_logic_1164 | |
Use Logic Elements. |
Generics | |
divider | integer := 125000 |
Prescaler for PWM-signal. |
Ports | |
clock | in STD_LOGIC |
component clock | |
reset_n | in STD_LOGIC |
resets the component | |
run | in STD_LOGIC |
chip enable | |
direction | in STD_LOGIC |
motor direction ('0' is left) | |
mode | in STD_LOGIC_VECTOR ( 3 DOWNTO0 ) |
mode to run motor with | |
speed | in STD_LOGIC_VECTOR ( 2 DOWNTO0 ) |
speed to run moter with | |
motor_pwm | out STD_LOGIC_VECTOR ( 3 DOWNTO0 ) |
signal-bus for the motor pulse-width-modulation | |
motor_en | out STD_LOGIC_VECTOR ( 1 DOWNTO0 ) |
both enable signals for the motor | |
steps | out STD_LOGIC_VECTOR ( 31 DOWNTO0 ) |
number of steps motor did | |
ir | out STD_LOGIC |
IR signal set when motor stopped. |
Motor Control Unit.
Definition at line 44 of file motor_control_unit.vhd.
|
Generic |
Prescaler for PWM-signal.
For this purpose 2,5 ms are used as minimal pulse-width.
The prescaler is calculated with the given and desired frequency via the following formula:
\begin{equation*} \text{prescaler} = \frac{f_{\text{clock}} \text{Hz}}{f_{\text{prescaler}} \text{Hz}} \end{equation*}
e.g.:
\begin{equation*} \left.\begin{aligned} f_{\text{prescaler}} &= \frac{5}{2}\,\text{ms} \newline &= 400\,\text{Hz} \newline\newline \text{prescaler} &= \frac{50\,\text{Mhz}}{400\,\text{Hz}} \newline &= 125000 \newline \end{aligned} \right\} \qquad \text{pulse-width: 2.5 ms} \end{equation*}
For simulation-purpose the divider was set to 125 for faster wave generation.
Definition at line 67 of file motor_control_unit.vhd.