A modulação de largura de pulso é uma maneira de controlar a rotação ou a posição de um motor elétrico ou servo . Usando Verilog HDL , vou mostrar como é fácil de usar contadores , a fim de criar um PWM . Coisas que você precisa 
 Xilinx ISE 
 Servo /motor FPGA 
 Mostrar Mais instruções 
 1 
 Então, como funciona um PWM ? 
 
 Ter um sinal retangular periódica , mudamos o ciclo de trabalho ( modular ) a ser maior ou menor e, portanto, controlar o nosso dispositivo. 
 
 Por que usar um PWM ? 
 
 é uma digital simples para técnica de conversão analógica que não necessita de um ADC . 
 2 
 Ok , então vamos pensar o que entradas, saídas, registradores e contadores vamos precisar e que projeto que queremos criar . 
 
 Eu quero usar as oito chaves na placa FPGA Spartan para controlar como meus movimentos motor /servo ou o quão rápido ou lento que eu quero que ele se mova 
 
 Entradas: . relógio , 8 switchesOutputs : pwmRegisters : pwmCounters : 16 bit counter ( vai explicar por que 16 bits mais tarde ), 
 3 
 Saiba o que é a velocidade do clock do seu FPGA e qual período você gostaria de usar. 
 
 Eu tenho um Spartan placa FPGA com um relógio de 50MHz . Gostaria de atualizar o sinal a cada 1 milissegundo (t). Nós aplicamos o seguinte cálculo para encontrar o período da forma de onda (p ) 
 
 p = t * relógio FPGA 
 
 No meu caso : 
 
 p = 0,001 segundo * 50MHz = 50000 
 
 Conhecendo meu p é importante , a fim de calcular o meu passo demora ( sd ) : 
 
 sd = p /256 = 195 
 
 por que eu uso 256 ? Eu vou estar usando 8 interruptores para controlar o meu servo /motor , então 2 ^ 8 = 256. 
 4 
 Finalmente , queremos utilizar o nosso contador como o nosso ciclo de trabalho . Para calcular quantos bits compor nosso balcão usamos : 
 
 log2 (dp ) = quantos bits é o nosso contador de 
 
 Enquanto o contador for menor que sd (atraso passo ) multiplicado pelo valor de interruptores (que pode variar de 0 a 255), este é o nosso ciclo de trabalho .