STM32F0 - Saída do I2S com "ruido"

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

STM32F0 - Saída do I2S com "ruido"

Mensagempor a.rairan » 14 Set 2012 10:58

Senhores,

Depois de muito apanhar do I2S de um STM32F0 consegui tocar o wave! Porém com "ruído"…

O som é simples, um .wav de uns 300K que eu coloquei numa flash AT45xx.
Leio da flash, jogo num buffer que por DMA transfere para o I2S.
A flash consegue atualizar o buffer a tempo e os dados são transmitidos para o I2S.

Mas o som sai no falante como se estivesse com ruído.

Uma coisa que percebí é que a frequencia de saída (WS do I2S) não está exatamente em 48KHz, está em 46,5KHz +/-.
O CLK e o MCLK estão em cima, um com 3MHz e outro com 12MHz.
Essa diferença poderia gerar o ruído?
Não entendi porque a diferença, já que o clock é o mesmo...

Alguém tem alguma idéia do que pode ser? Realmente estou sem idéias…


Abraço,
André Rairan.
André "Away" Rairan
a.rairan
Byte
 
Mensagens: 192
Registrado em: 11 Out 2006 18:53
Localização: São Caetano do Sul - SP - Brasil

Re: STM32F0 - Saída do I2S com "ruido"

Mensagempor andre_luis » 14 Set 2012 19:40

Cria uma forma de onda padrão de referencia (triangular) pra ver se consegue visualizar no osciloscópio o que está acontecendo.

+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor a.rairan » 16 Set 2012 14:04

Não entendi xará...

Tenho um bom scope aqui, com analisador lógico e decoder de I2S.
Já liguei o I2S no analisador, mas me parece normal.

Na segunda vou colocar um XTAL externo, to usando o clock interno como base clock, mas medi e está com menos de 1%.
André "Away" Rairan
a.rairan
Byte
 
Mensagens: 192
Registrado em: 11 Out 2006 18:53
Localização: São Caetano do Sul - SP - Brasil

Mensagempor pbernardi » 16 Set 2012 14:11

É ponto a ponto ou ponto a multipontos? Se o clock de 3 e 12 MHz deveriam ser o mesmos... há coisas bem erradas aí.

Como você mediu esse clock, com osciloscópio ou multímetro?

Desconfie do clock, pode estar dando reflexão.
But to us there is but one God, plus or minus one - Corinthians 8:6±2. (xkcd.com)
pbernardi
Word
 
Mensagens: 707
Registrado em: 12 Out 2006 19:01
Localização: Curitiba-PR

Mensagempor a.rairan » 16 Set 2012 19:11

ponto a ponto.

vou reformular:

MCLK = 12MHz, CLK = 12MHz e WS (LRCLK) = 48KHz

Medi com o analisador lógigo do osciloscópio.
André "Away" Rairan
a.rairan
Byte
 
Mensagens: 192
Registrado em: 11 Out 2006 18:53
Localização: São Caetano do Sul - SP - Brasil

Mensagempor pbernardi » 17 Set 2012 11:04

André, dê uma medida com o osciloscópio mesmo, sem a função do analisador lógico. Pode haver undershoot/overshoots.

Essa linha de clock é muito longa? Ela está casada?

Tente diminuir a frequência do I2C, talvez fique mais estável.
But to us there is but one God, plus or minus one - Corinthians 8:6±2. (xkcd.com)
pbernardi
Word
 
Mensagens: 707
Registrado em: 12 Out 2006 19:01
Localização: Curitiba-PR


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Google [Bot] e 1 visitante

x