0% encontró este documento útil (0 votos)
255 vistas3 páginas

Inversor de Giro para Motor a Pasos

Este documento describe una práctica de diseño de procesadores dedicados utilizando una tarjeta Spartan II. La práctica incluye implementar un generador de señal PWM y un controlador de motor de pasos unipolar en VHDL. También modificar estos diseños para dirigir la salida PWM a LEDs externos e invertir la dirección del motor de pasos utilizando botones pulsadores.

Cargado por

Joha Bermudez
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
255 vistas3 páginas

Inversor de Giro para Motor a Pasos

Este documento describe una práctica de diseño de procesadores dedicados utilizando una tarjeta Spartan II. La práctica incluye implementar un generador de señal PWM y un controlador de motor de pasos unipolar en VHDL. También modificar estos diseños para dirigir la salida PWM a LEDs externos e invertir la dirección del motor de pasos utilizando botones pulsadores.

Cargado por

Joha Bermudez
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

DISEO DE PROCESADORES DEDICADOS

Aplicaciones Prcticas: PWM y Motores a Pasos Tarjeta Spartan II


M. en C. Juan Carlos Herrera Lozada [email protected]

Instituto Politcnico Nacional

Prctica 3

Centro de Innovacin y Desarrollo Tecnolgico en Cmputo

CIDETEC
Marzo 2009

Campo 1: Datos Personales. Campo 2: Objetivos. Sntesis Lgica y Programacin de FPGA XC2S100. Campo 3: Desarrollo de la Prctica.

1.

(3 puntos) Revisa el documento Aplicaciones Prcticas con Plus: PWM y Motores a Pasos disponible en la pgina web de la materia. Descarga el proyecto completo PWM Embebido, analiza los cdigos en VHDL e implemntalo en la tarjeta de desarrollo para verificar su funcionamiento.

La unidad PWM diseada en VHDL permite convertir una seal digital de 4 bits (que se introducen a travs del Dipswitch) en una seal analgica en un rango de 0 Volts a Vcc. Modifica el diseo original para que la salida de la unidad se dirija hacia cuatro leds externos. Utiliza el siguiente diagrama de conexiones. Recuerda que la seal de reloj que entra al contador binario de la unidad PWM, es la seal del oscilador de la tarjeta previamente dividida.

2. (3 puntos) Disea un mdulo que permita invertir el giro de un motor a pasos unipolar. Para la teora puedes
auxiliarte del material disponible en la pgina web. Analiza los pormenores de las conexiones, considerando que requerirs 4 salidas hacia las bobinas del motor y el circuito amplificador correspondiente. El siguiente cdigo en VHDL implementa un inversor de giro (secuencia de medio paso) con una opcin de stop para un motor unipolar. Observa que es necesario utilizar el divisor de tiempo para introducir la seal de reloj al mdulo inversor de giro.
--Maestra en Tecnologa de Cmputo --CIDETEC IPN, Diseo de Procesadores Dedicados --Juan C. Herrera L. Prueba de tarjeta LC Spartan II. library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; --Secuencia de Medio Paso entity motor_pasos is port ( RELOJ, RESET, STOP, DIR: in STD_LOGIC; DATO_MOTOR: out STD_LOGIC_VECTOR(3 downto 0) ); end motor_pasos; Juan Carlos Herrera Lozada [email protected] CIDETEC IPN, Mxico, 2009 1/3

architecture motor_arch of motor_pasos is type state_type is (INICIA, CERO, UNO, DOS, TRES, CUATRO, CINCO, SEIS, SIETE); signal estado, estado_siguiente: state_type; begin arranque_motor:process (RELOJ, RESET) begin if RESET='0' then estado <= INICIA; elsif RELOJ='1' and RELOJ'event then estado <= estado_siguiente; end if; end process arranque_motor; estados_motor:process (estado, DIR, STOP) begin case estado IS when INICIA => if STOP='0' then estado_siguiente <= INICIA; elsif DIR='1' then estado_siguiente <= CERO; else estado_siguiente <= SIETE; end if; when CERO => if STOP='0' then estado_siguiente <= CERO; elsif DIR='1' then estado_siguiente <= UNO; else estado_siguiente <= SIETE; end if; when UNO => if STOP='0' then estado_siguiente <= UNO; elsif DIR='1' then estado_siguiente <= DOS; else estado_siguiente <= CERO; end if; when DOS => if STOP='0' then estado_siguiente <= DOS; elsif DIR='1' then estado_siguiente <= TRES; else estado_siguiente <= UNO; end if; when TRES => if STOP='0' then estado_siguiente <= TRES; elsif DIR='1' then estado_siguiente <= CUATRO; else estado_siguiente <= DOS; end if; when CUATRO => if STOP='0' then estado_siguiente <= CUATRO; elsif DIR='1' then estado_siguiente <= CINCO; else estado_siguiente <= TRES; end if; when CINCO => if STOP='0' then estado_siguiente <= CINCO; elsif DIR='1' then estado_siguiente <= SEIS; else estado_siguiente <= CUATRO; end if; when SEIS => if STOP='0' then estado_siguiente <= SEIS; elsif DIR='1' then estado_siguiente <= SIETE; else estado_siguiente <= CINCO; end if; when SIETE => if STOP='0' then Juan Carlos Herrera Lozada [email protected] CIDETEC IPN, Mxico, 2009

2/3

estado_siguiente <= SIETE; elsif DIR='1' then estado_siguiente <= CERO; else estado_siguiente <= SEIS; end if; END CASE; end process estados_motor; salida:process(estado) begin case estado IS when INICIA => DATO_MOTOR when CERO => DATO_MOTOR when UNO => DATO_MOTOR when DOS => DATO_MOTOR when TRES => DATO_MOTOR when CUATRO => DATO_MOTOR when CINCO => DATO_MOTOR when SEIS => DATO_MOTOR when SIETE => DATO_MOTOR when others => NULL; END CASE; end process salida; end motor_arch;

<= <= <= <= <= <= <= <= <=

"0000"; "1000"; "1100"; "0100"; "0110"; "0010"; "0011"; "0001"; "1001";

3.

(4 puntos) Modifica el diseo para que tu motor pueda dar un paso por cada pulso de reloj introducido a travs de un push button. Investiga qu es un circuito anti-rebotes y cmo lo puedes implementar en VHDL. El recorrido debe poder realizarse en ambos sentidos, por lo que en tu diseo debes conservar la variable DIR (direccin de giro).

Campo 4: Conclusiones individuales.

Juan Carlos Herrera Lozada [email protected] CIDETEC IPN, Mxico, 2009

3/3

También podría gustarte