Página 1 de 1
PWM

Enviado:
03 Out 2010 13:16
por Guri
Estou precisando fazer um PWM, porém precisa ser discreto e com as caracteristicas:
Ter uma entrada de 8 bits para entrar com os valores da modulação 0 a 255.
O clock deve ser externo.
Agradeço a dica.

Enviado:
03 Out 2010 14:13
por RobL
Não sei se vai lhe servir pois, diz aí que precisa ser discreto (não em um micro ?).
Basta usar qualquer PIC pequenino com o Timer2 no modo PWM ou comparação. Conforme o valor a comparar, muda o duty ciclo.
O valor, a comparar poderia vir de uma UART ou tecla, ou ainda de uma tabela em função do comparador de tensão ou ADC.
A frequência depende do clock i/o e o prescaler. Tá pronto.

Enviado:
03 Out 2010 14:58
por msamsoniuk
usa essa ideia como base:
unica diferenca eh que para extender para 8 bits, vai precisar cascatear um segundo contador de 4 bits e descobrir como cascatear dois comparadores de 4 bits. ou trocar por contadores e comparadores de 8 bits. se usar uma CPLD para fazer isso, fica bem trivial e simples em verilog. eu nao testei, mas seria algo assim:
- Código: Selecionar todos
module pwm(CLK, WR, D, PWM);
input CLK;
input WR;
input [0:7] D;
output reg PWM;
reg [0:7] VAL = 0;
reg [0:7] CNT = 0;
always@(posedge WR)
begin
VAL <= D;
end
always@(posedge CLK)
begin
CNT <= CNT+1;
if(CNT>VAL)
PWM <= 1;
else
PWM <= 0;
end
endmodule

Enviado:
05 Out 2010 16:55
por Guri
Muito obrigado pela ajuda, a todos.
Eita, marcelo você é um cara muito bem disposto a judar!
Grato,