“Conocimientos 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

2014/2/3
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
Cómo configurar un DataTable DataGrid para rellenar TreeView
Cómo utilizar el desplazamiento de bits en Criptografía
¿Por qué se utiliza el sistema binario de Computadoras
Oracle SQL Sugerencias
Cómo incrustar una página en una etiqueta DIV
Cómo vínculo profundo en Silverlight
¿Cómo se alinean los números decimales en Just Basic 1.01
Cómo desarrollar un controlador de dispositivo para DOS
Conocimientos Informáticos © http://www.ordenador.online