“Conocimiento Programación>Lenguajes De Programación

Cómo crear una modulación de ancho de pulso (PWM ) en un módulo de Verilog para ejecutar un motor /servo

2013/3/21
Una modulación de ancho de pulso es una manera de controlar la rotación o la posición de un motor eléctrico o servo . Utilizando Verilog HDL , voy a demostrar lo fácil que es utilizar contadores con el fin de crear un pwm . Cosas que necesitará
Xilinx ISE
FPGA
Servo /motor
Ver Más instrucciones
1

Entonces, ¿cómo funciona un pwm ?
< p> tener una señal rectangular periódica , cambiamos el ciclo de trabajo ( modular ) para ser más pequeño o más grande y por lo tanto controlar nuestro dispositivo.

Por qué utilizar un PWM ?

es un sencillo digital técnica de conversión analógica que no requiere de un ADC .
2

Ok , por lo que permite pensar que las entradas, salidas, registros y contadores vamos a necesitar y que el diseño que desee crear .

quiero usar los ocho interruptores en el tablero FPGA Spartan para controlar cómo mi motor /servo se mueve o qué tan rápido o lento que quieren que se mueva

Entradas: reloj, 8 . switchesOutputs : pwmRegisters : pwmCounters : 16 bit contador ( a explicar por qué 16 bits después)
3

saber cuál es la velocidad de reloj de la FPGA y qué período desea utilizar.

tengo un Spartan tarjeta FPGA con un reloj de 50MHz . Me gustaría actualizar la señal de cada 1 milisegundo (t ) . Aplicamos el siguiente cálculo para encontrar el período de forma de onda ( p )

p = t * FPGA reloj

En mi caso :

p = 0,001 segundos * 50 MHz 50000

Conociendo mi p es importante para el cálculo de mi tardanza paso ( sd ) :

sd = p /256 = 195

¿Por qué yo uso 256 ? Me va a utilizar 8 interruptores para controlar mi servo /del motor , por lo que 2 ^ 8 = 256.
4

Finalmente queremos usar nuestro contador como nuestro ciclo de trabajo . Para calcular la cantidad de bits componen nuestro contador usamos :

log2 ( sd ) = la cantidad de bits es nuestro contador

Mientras que el contador es inferior sd (retardo de paso ), multiplicado por el valor de los interruptores (que puede variar de 0 a 255) , éste es nuestro ciclo de trabajo .

Lenguajes De Programación
¿Qué es el Protocolo de Incompatibilidad
¿Cuáles son las desventajas de un procesador de consultas
Cómo crear un ID en Conde
¿Son todos los idiomas finitos regulares, según la teoría de los idiomas formales?
¿Qué es un archivo IDL
¿Para qué idioma es el teclado Dvorak?
Cómo mostrar un valor en una cadena de MATLAB
Cómo mostrar una imagen en el Grid View
Conocimiento de la computadora © http://www.ordenador.online