Dator > hur man skapar en pulsbreddsmodulering ( PWM ) i en Verilog modul för att köra en motor / servo

  • hur man skapar en pulsbreddsmodulering ( PWM ) i en Verilog modul för att köra en motor / servo


  • En pulsbreddsmodulering är ett sätt att kontrollera rotation eller position för en elektrisk motor eller servo .

    Verilog HDL , kommer jag att visa hur lätt det är att använda räknare för att skapa en PWM

    Du behöver : .
    Xilinx ISE
    FPGA .
    Servo /motor .


    1 .
    Så hur fungerar en PWM- arbete?

    med en periodisk rektangulär signal , vi ändra Sändningscykel ( modulera ) kan göras mindre eller större och därför kontrollera vår enhet .

    Varför använda en PWM ?

    Det är en enkel digital till analog omvandling teknik som inte kräver en ADC .
    2 .
    Ok , låter så tänk vad ingångar, utgångar , register och räknare kommer vi att behöva och vilken design vi vill skapa .

    Jag vill använda de åtta växlar på det spartanska FPGA styrelsen att kontrollera hur min motor /servo rör sig eller hur snabbt eller långsamt jag vill att det ska flytta

    Ingångar : . klocka , 8 växlar
    Utgångar : PWM
    Registers : PWM
    Räknare : 16 bitars räknare ( ska förklara varför 16 bitar senare )
    3
    vet vad. är klockan hastigheten på din FPGA och vilken period du vill använda.

    Jag har en spartansk FPGA -kort med en 50MHz klocka . Jag skulle vilja uppdatera signal varje 1 millisekund (t ). Vi tillämpar följande beräkning för att hitta den vågformen perioden ( p )

    p=t * FPGA klockan

    I mitt fall :

    p=. 001 sekunder * 50MHz=50. 000

    veta min p är viktigt för att beräkna mina steg fördröjning ( sd ) :

    sd=p /256=195

    Varför jag använder 256 ? Jag kommer att använda 8 omkopplare för att styra min servo /motor , så 2 ^ 8=256 .
    4 .
    Slutligen vill vi använda vår disk som vår plikt cykel . För att beräkna hur många bitar komponerar vår disk använder vi :

    log2 ( sd )=hur många bitar är vår disk

    Medan disken är mindre än SD ( steg fördröjning ) multiplicerat av växlar värde ( som kan variera från 0 till 255) , detta är vår plikt cykel .

    tips och varningar


  • När upprätta ett register disk måste du ha det initieras till noll annars ditt program fungerar inte .

Previous:Vilka är fördelarna med Java uppgradera ? Next:java 1,5 enum tutorial





Relaterade artiklar


  • den bästa grafiska bärbara datorer
  • EVGA X58 SLI specifikationer
  • hur att fylla en dropDownList från databasen
  • hur man skapar en grundläggande C + + program
  • hur du tar bort skärmen från en Lenovo T43 laptop
  • Hur får man en bättre upplösning på en standard VGA-grafikkort
  • LEXMARK X4650 specifikationer
  • hur man återställer en HP smart chip
  • vad är filändelsen . TQS ?
  • hur man öppnar en länk på samma fönster när du använder frames