Gerar PWM

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Gerar PWM

Mensagempor Guri » 25 Set 2010 23:12

Olá a todos,


É o seguinte:

Estou com uma dúvida em relação a frequencia ideal para um PWM que estou fazendo via software.

Então eu fiz uma amostragem com as seguintes caracteristicas:

Sample rate = 22.050hz
Resolução do sampled = 16 bits
Mono

Eu estou enviando para um DAC de 8 bits do tipo paralelo r2r e funciona corretamente a reprodução da wave.

Agora eu queria enviar os dados para o PWM, porém qual seria a frequencia que o PWM deveria ser sintonizado?

Obrigado,
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Gerar PWM

Mensagempor msamsoniuk » 26 Set 2010 01:55

a solucao direta seria usar um pwm fixo de 16 bits e, assim, o periodo completo de cada ciclo seria de 65536 clocks. mas multiplicando 22050Hz por 65536 vc teria um total de 1.4GHz de clock no pwm para poder reproduzir 22050 amostras com precisao de 16 bits e isso eh elevado demais.

daih disso partem tres solucoes diferentes.

uma solucao simples seria diminuir o tamanho do contador pwm. assim, para um contador de 8 bits vc precisaria de uns 5MHz, para 9 bits uns 11MHz, para 10 bits uns 22MHz e assim por diante. supondo que vc fosse operar a 22MHz, vc descartaria 6 bits de cada amostra.

a solucao complicada seria usar taxa de amostragem variavel e tamanho do contador pwm variavel. supondo um clock de 22MHz, vc poderia variar o comprimento do contador pwm para cobrir diferentes bandas com diferentes tamanhos de contador, variando de 16 a 8 bits por exemplo.

neste caso, vc teria a seguinte divisao:

16 bits: ateh 344.531 Hz
15 bits: ateh 689.062 Hz
14 bits: ateh 1378.12 Hz
13 bits: ateh 2756.25 Hz
12 bits: ateh 5512.5 Hz
11 bits: ateh 11025 Hz
10 bits: ateh 22050 Hz
9 bits: ateh 44100 Hz
8 bits: ateh 88200 Hz

e uma solucao nao muito complicada nem muito simples seria usar o pwm fixo em 8 bits com 88200Hz de taxa de amostragem e compensar a diferenca atraves de difusao de erro. trata-se de um processo de quantizacao, onde vc parte de uma amostra de 16 bits, trunca para 8 bits e entao armazena o resto da truncagem em um contador de erro, q eh somado a proxima amostra. se o erro acumulado for muito grande, a quantizacao da proxima amostra sera modificada de modo que a media entre sucessivas amostras fica mais proximo ao valor original.

por isso eh interessante usar uma taxa de amostragem maior, mas nao precisa efetivamente trabalhar com um volume maior de dados. ao inves disso, pode usar 22050Hz e quadriplicar as amostras. mesmo usando amostras repetidas, o desvio em funcao do erro acumulado ira fazer as amostras terem valores diferentes.

por exemplo, se vc tem varias amostras com valor 256, a truncagem de 16 para 8 bits vai resultar em 1 sempre e nenhum residuo. mas se vc tiver um valor de, digamos, 384, a truncagem tb sera de 1, porem sobra um residuo de 128. assim no proximo ciclo, digamos que seja de 384 tb, sera somado o valor 384 mais o residuo de 128, o que totaliza 512. soh que nesse caso a truncagem tera valor 2 e o residuo sera zero.

o que vai ocorrer eh que a saida ficara variando entre 1 e 2 continuamente, o que sera efetivamente percebido como um valor 1.5. de certa forma, essa tecnica de difusao de erro equivale ao metodo complicado e efetivamente vai simular uma precisao pwm variavel para diferentes bandas, porem sem complicar o hardware.

Guri escreveu:Olá a todos,

É o seguinte:

Estou com uma dúvida em relação a frequencia ideal para um PWM que estou fazendo via software.

Então eu fiz uma amostragem com as seguintes caracteristicas:

Sample rate = 22.050hz
Resolução do sampled = 16 bits
Mono

Eu estou enviando para um DAC de 8 bits do tipo paralelo r2r e funciona corretamente a reprodução da wave.

Agora eu queria enviar os dados para o PWM, porém qual seria a frequencia que o PWM deveria ser sintonizado?

Obrigado,
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor Djalma Toledo Rodrigues » 26 Set 2010 11:26

Uma boa solução, e bem simples, para obter o PWM é o Conversor de 1 Bit

ou Conversor Delta Sigma

Imagem
Diagrama em sua forma mais simples

O Estágio 1 Bit DAC se resume apenas a um RC

O Estagio Difference, o primeiro estagio, deve ser um Subtrator e não
um Comparador como errôneamente se vê por ai.

A Saída do Conversor (Bitstream Out) vai para o µC.


Aumentando o número de Integradores diminui o Ruido da Conversão,
veja a figura:

Imagem
Block Diagram of a Second Order Analogue Delta Sigma Modulator

Vale o mesmo para a Frequência de Clock (Oversampling)

------------
Fonte:http://www.beis.de/Elektronik/DeltaSigma/DeltaSigma.html

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Mensagempor msamsoniuk » 26 Set 2010 16:12

coincidentemente eu fiz exatamente esse primeiro conversor que vc citou e funcionou muito bem no simulador de circuitos integrados:

http://framework.sourceforge.net/pics/u ... _TE823.pdf

Djalma Toledo Rodrigues escreveu:Uma boa solução, e bem simples, para obter o PWM é o Conversor de 1 Bit

ou Conversor Delta Sigma

Imagem
Diagrama em sua forma mais simples

O Estágio 1 Bit DAC se resume apenas a um RC

O Estagio Difference, o primeiro estagio, deve ser um Subtrator e não
um Comparador como errôneamente se vê por ai.

A Saída do Conversor (Bitstream Out) vai para o µC.


Aumentando o número de Integradores diminui o Ruido da Conversão,
veja a figura:

Imagem
Block Diagram of a Second Order Analogue Delta Sigma Modulator

Vale o mesmo para a Frequência de Clock (Oversampling)

------------
Fonte:http://www.beis.de/Elektronik/DeltaSigma/DeltaSigma.html

DJ
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor Djalma Toledo Rodrigues » 27 Set 2010 14:52

É o Circuito esta em Loop

Gera o Pulso com largura proporcional a Tensão de entrada sobre o Contrôle da
Tensão realimetada através do 1 Bit DAC ( Simples RC).

É, em princípio, semelhante ao Controlador PID

DJ
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x