Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> .

Come creare una modulazione di larghezza di impulso ( PWM) in un modulo Verilog per l'esecuzione di un Motor /Servo

A modulazione di larghezza di impulso è un modo per controllare la rotazione o la posizione di un motore elettrico o servo . Utilizzando Verilog HDL , vi mostrerò come è facile utilizzare i contatori in modo da creare un PWM . Cose che ti serviranno
Xilinx ISE
FPGA
Servo /motore
Mostra più istruzioni
1

Così come fa un lavoro PWM ?

Avere un segnale rettangolare periodico , cambiamo il duty cycle ( modulare ) per essere più piccolo o più grande , e quindi controllare il nostro dispositivo .

Perché usare un PWM ?

si tratta di una semplice digitale tecnica di conversione analogico che non richiede un ADC .
2

Ok , così lascia pensare che cosa ingressi, uscite, registri e contatori avremo bisogno e di cui il design che si vuole creare .

voglio utilizzare gli otto switch sulla scheda FPGA Spartan per controllare come il mio motore /servo si muove o come veloce o lento ho bisogno di spostare

Ingressi: . clock, 8 switchesOutputs : pwmRegisters : pwmCounters : 16 bit contatore ( spiegherà perché 16 bit dopo)
3

sapere che cosa è la velocità di clock del chip FPGA e quale periodo che si desidera utilizzare .

ho un Spartan scheda FPGA con 50MHz di clock . Vorrei aggiornare il segnale ogni 1 millisecondo ( t ) . Noi applichiamo il seguente calcolo per trovare il periodo della forma d'onda ( p ) per

p = t * FPGA orologio

Nel mio caso :

p = 0,001 secondi * 50MHz = 50000

Conoscendo il mio p è importante al fine di calcolare il mio passo di ritardo ( sd ) :

sd = p /256 = 195

Perché ho usato 256 ? Userò 8 interruttori per controllare il mio servo /motore, in modo 2 ^ 8 = 256 .
4

Infine vogliamo usare il nostro contatore come il nostro ciclo di lavoro . Per calcolare il numero di bit che compongono il nostro contatore usiamo :

log2 ( sd ) = quanti bit è il nostro contatore

Mentre il contatore è inferiore a SD ( ritardo di fase ), moltiplicato per il valore di switch ( che può variare da 0 a 255) , questo è il nostro ciclo di lavoro .

 

Programmazione © www.354353.com