Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Hur man skapar en pulsbreddsmodulering (PWM ) i en Verilog modul för att köra en motor /Servo

    A pulsbreddsmodulation är ett sätt att styra rotationen eller positionen av en elmotor eller servo . Använda Verilog HDL , kommer jag att visa hur lätt det är att använda räknare för att skapa en PWM . Saker du behöver
    Xilinx ISE
    FPGA
    Servo /motor
    Visa fler instruktioner
    1

    Så hur gör en PWM arbete?

    att ha en periodisk rektangulär signal , ändrar vi arbetscykeln ( modulera ) att vara mindre eller större och därmed styra vår enhet .

    Varför använda en PWM ?
    p Det är en enkel digital till analog konvertering teknik som inte kräver en ADC .
    2

    Ok , låter så tänk vad ingångar, utgångar, register och räknare som vi behöver och vilka motiv vi vill skapa .

    jag vill använda de åtta omkopplarna på Spartan FPGA styrelsen att styra hur min motor /flyttar servo eller hur snabbt eller långsamt jag vill att det ska flytta Ingångar

    : . klocka , 8 switchesOutputs : pwmRegisters : pwmCounters : 16 bit räknare ( kommer att förklara varför 16 bitar senare ) Addera 3

    Vet vad är klockhastigheten på din FPGA och vilken period du vill använda .

    jag har en Spartan FPGA board med en 50MHz klocka . Jag skulle vilja uppdatera signal varje 1 millisekund ( t ) . Vi tillämpar följande beräkning för att hitta vågformsperioden ( p ) katalog

    p = t * FPGA klocka

    I mitt fall :

    p = 0,001 sekunder * 50MHz = 50000

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

    sd = p /256 = 195

    Varför jag använder 256 ? Jag kommer att använda 8 växlar 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 komponera vår disk vi använder :

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

    Medan räknaren är mindre än sd ( steg fördröjning ) multiplicerat med omkopplare värde ( som kan variera från 0 till 255 ) , är det vår plikt cykel .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur invertera en if-sats för att minska Nesting
    ·Hur rekursivt att passera i en länkad lista
    ·Hur man läser en Hex File
    ·Hur man använder MSBuild att Merge WPF Assemblies
    ·Hur man skriver en enkel COBOL Program
    ·Inaktivera Oracles Form Trace
    ·Hur man gör scrollbar färger fungerar för iFrame
    ·Skillnader mellan Psuedocode och flödesscheman
    ·Fördelar med flera Arv
    ·Skillnader mellan HTML 5 och HTML 4
    Utvalda artiklarna
    ·Hur man gör en Piglatin Program på Python
    ·Arbetsbeskrivning för en Microsoft Program Manager
    ·Hur man använder Android SDK Tools på Windows 7
    ·Ställa Mnemonic viktiga sammanslutningar Med Visual Ba…
    ·Datavetenskap större projekt
    ·Cool Visual Basic projektidéer
    ·. Hur man uppgraderar en väg från VB6 till Net
    ·Hur man byter Spaces i DOS Delsträngar
    ·Hur man skriver program med VBA
    ·Hur Fördela Xcode i Mac Apps
    Copyright © Dator Kunskap http://www.dator.xyz