berokinfo.com

Cum de a crea un puls Width Modulation (PWM) într-un modul Verilog pentru a rula un motor / Servo

O modulație a lățimii impulsului este o modalitate de a controla rotirea sau poziția unui motor electric sau servo.


Folosind Verilog HDL, voi arăta cât de ușor este de a utiliza contoare pentru a crea un PWM.

Ceea ce aveți nevoie

  • Xilinx ISE
  • FPGA
  • Servo motor
  • Deci, cum funcționează un PWM?

    Având un semnal dreptunghiular periodic, vom schimba ciclul de lucru (modula) să fie mai mică sau mai mare și, prin urmare, controlează dispozitivul nostru.

    De ce să folosiți un PWM?

    Este un simplu digital pentru tehnica de conversie analogic care nu are nevoie de un ADC.

  • Ok, deci vă permite să gândească ce intrări, ieșiri, registre și contoare vom avea nevoie și de design care dorim să creăm.

    Vreau să folosesc cele opt switch-uri de pe placa Spartan FPGA pentru a controla modul în care meu cu motor / servo se mișcă sau cât de repede sau lent vreau să se miște.

    Intrări: Ceas, 8 comutatoare
    Rezultate: PWM
    Registre: PWM
    Contoare: 16 biți contor (se va explica de ce 16 biți mai târziu)

  • Aflați ce este viteza de ceas de FPGA și ce perioadă doriți să utilizați.



    Am o placa Spartan FPGA cu un ceas 50MHz. Aș dori să reîmprospăta semnalul fiecare 1 milisecundă (t). Vom aplica următorul calcul pentru a găsi perioada de undă (p)

     p = t * ceas FPGA

    În cazul meu:

     p = .001 secunde * 50MHz = 50000

    Cunoașterea mea p este importantă pentru a calcula întârzierea mea etapa (SD):

     sd = p / 256 = 195

    De ce am folosit 256? Eu voi fi folosind 8 switch-uri pentru a controla servo meu / cu motor, asa ca 2 ^ 8 = 256.

    Adăugarea SD la modulul Verilog
  • În cele din urmă dorim să folosim contra noastră ca ciclul nostru de taxe. Pentru a calcula câți biți compun contra nostru folosim:

    log2 (SD) = câți biți este contra noastră

    În timp ce contorul este mai mică decât SD (etapa de întârziere) înmulțită cu valoarea switch-uri (care poate varia de la 0 la 255), acest lucru este ciclul nostru de datoria.

    Codul final pentru un PWM utilizând 8 switch-uri pentru a controla ciclul de funcționare

sfaturi Avertismente

  • La crearea contorul de registru acesta trebuie inițializat la zero altfel programul nu va funcționa.
Distribuiți pe rețelele sociale:

înrudit
Cum să setați ceasul pe un Aftermarket JVC stereo KD-S33Cum să setați ceasul pe un Aftermarket JVC stereo KD-S33
Cum să Deconectați stereo auto cablajuluiCum să Deconectați stereo auto cablajului
Cum de a elimina o masina Stereo Fabrica De la un BuickCum de a elimina o masina Stereo Fabrica De la un Buick
Cum se scoate stereo într-un Dodge Ram 1999Cum se scoate stereo într-un Dodge Ram 1999
Cum AUX de intrare la un BMW 325i 2003Cum AUX de intrare la un BMW 325i 2003
Cum se joacă muzica de pe un sistem stereo Bluetooth CarCum se joacă muzica de pe un sistem stereo Bluetooth Car
Cum de programul dvs. stereo Kenwood autoCum de programul dvs. stereo Kenwood auto
Cum de a elimina Bip La Oprirea o mașină de la Sony XplodCum de a elimina Bip La Oprirea o mașină de la Sony Xplod
Cum se depanează un sistem de sunet BMWCum se depanează un sistem de sunet BMW
Cum să Tune un sistem stereo autoCum să Tune un sistem stereo auto
» » Cum de a crea un puls Width Modulation (PWM) într-un modul Verilog pentru a rula un motor / Servo