| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> Content
    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 ?
    < p > 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 .

    Previous :

    next :
      Articoli Correlati
    ·Come creare un Makefile 
    ·Connection Pool Tutorial 
    ·Differenza tra orientato su byte I /O & Character I /O 
    ·GCC Function System 
    ·Che cosa è un modificatore static 
    ·Come ridimensionare le colonne DataGrid in Flex 
    ·Come formattare le date in C # 
    ·Come aggiungere colore a un file batch 
    ·Come colore di un link ad ancora 
    ·Come utilizzare una stringa di connessione variabile in…
      Articoli in evidenza
    ·Procedura: Xcode con PHP 
    ·Come creare grassetto e corsivo testo utilizzando la pr…
    ·Come collegare frame utilizzando NetBeans 
    ·Come scrivere in un file remoto in PHP 
    ·Come collegare video in VB.NET 
    ·Java Visual Editor Tutorial 
    ·Come fare un programma di conversione temperatura in QB…
    ·Come eseguire il debug con Eclipse JSP 
    ·Come utilizzare ListView in VB 6.0 
    ·Come Eseguire SSIS dalle stored procedure 
    Copyright © Conoscenza Informatica http://it.wingwit.com