Página 1 de 1

protocolo I2s

MensagemEnviado: 05 Abr 2010 08:24
por BolhaDigital
Eu tô me debatendo para implementar o protocolo i2s...

Alguém aí sabe como montar corretamente o frame desse protocolo,

No meu caso estou tentando fazer funcionar um DAC da philips TDA1311.

Eu tô fazendo o drive em assembler para agilizar as coisas...

O que tá acontecendo é que ainda não entendi direito, se alguém souber explicar eu agradeço,

muito obrigado,

MensagemEnviado: 05 Abr 2010 08:34
por fabim
tio, c tem certeza mesmo que vai querer fazer o I2S via fw ?

MensagemEnviado: 05 Abr 2010 09:23
por BolhaDigital
oi fabim, tudo bem cara!

me perdõa a burrice, mas o que é fw?

MensagemEnviado: 05 Abr 2010 09:35
por Francesco
Significa Firmware.

MensagemEnviado: 05 Abr 2010 09:35
por BolhaDigital
É o seguinte, eu fiz minha "batéra midi" e tô utilizando um DAC r2r, ficou beleza, tô usando um sample de 22.050hz....e um pic877a, num dá risada pô!

Então o "trem" é que eu queria entender melhor esse protocolo que a primeira vista parece ser bem simples, se alguém souber, veja se eu estou certo no raciocinio:

o buffer desse chip é de 16 bits e possui comandos, sendo clock, data e canal esquerdo/direito, pelo meu raciocinio a rotina ficaria assim:

- primeiro mantenho o pino de seleção de "canal" em nivel 0 (envia cn esquerdo)
- inicio o clock, sendo na primeira borda de subida mantenho o pino data em 1 ou 0 dependendo do dado que eu quero por no buffer do DAC...
- depois faço o mesmo para o canal direito.

Eu tô entendendo que é uma coisa mais ou menos parecida ou parecida mesmo com o envio de dados para um shift register, será que é isso mesmo?


Muito obrigado,

MensagemEnviado: 05 Abr 2010 09:47
por fabim
firmwa = fw
hardware = hw

olha, vou ser sincero.. I2S não é complicado não.
Quero ver você dar conta de fazer tudo com um PICzinho.

olha só. imagina que quer tomar conta de uma I2S stereo, 16 bits, e a 22.050kshs.

Veja bem
16 * 2 * 22050 = 705600
Você acha que consegue gerar via FW uma SPI com exatos exatos exatos 705600 bits por segundo ? e ainda ficar fazendo latch com um pino a cada 16 bits ?

complicado né?rs


Abraços

MensagemEnviado: 05 Abr 2010 09:57
por BolhaDigital
Caramba, fabim não entendi bulhufas...

Como assim 705600 bits por segundo...

Bom eu imagino que eu tenho um DAC que contém um buffer de 16 bits estereo é só um DAC, eu acho que não preciso ficar em cima do DAC refrescando o buffer, certo?

Eu penso que só enviarei para o DAC a informação no tempo que eu desejar que no caso seria a cada 45u (1/22050), no meu caso especifico só utilizarei um canal (mono)...

Confesso que essa conta doida que vc fêz eu não entendi...

Muito obrigado,

MensagemEnviado: 05 Abr 2010 10:51
por fabim
BolhaDigital escreveu:Caramba, fabim não entendi bulhufas...

Como assim 705600 bits por segundo...

Bom eu imagino que eu tenho um DAC que contém um buffer de 16 bits estereo é só um DAC, eu acho que não preciso ficar em cima do DAC refrescando o buffer, certo?

Eu penso que só enviarei para o DAC a informação no tempo que eu desejar que no caso seria a cada 45u (1/22050), no meu caso especifico só utilizarei um canal (mono)...

Confesso que essa conta doida que vc fêz eu não entendi...

Muito obrigado,


o titio. Veja só.
I2S, é um mesclado de SPI com LRclock.
Como ele funciona ?

Veja por exemplo a 16 bits stereo.

Se vai fazer um sample de 16 bits stereo em 22050 amostras por segundo. Qual é a velocidade de um clock "constante e sem parar para um DAC I2S" ?

Lembre-se bem, no tempo de 1/22050, eu envio 32 bits pois são 16 * 2...

ENTÃO, QUAL É O MEU bitRATE ?
Facil, 22050 samples de "2*16bits"
22050 samples * 32
= 705600 bits por segundo.

então você tem que enviar um BIT, setando o data e clock, a cada exatamente 1/705600... Pic da conta não mané...

Use um DAC de 16 bits da CIRRUS, ou se preferir, eu ja fiz e fica muitissimo bom, MCP4922. Configura o SPI do pic, um timer pra estourar a cada tempoX - (N *(8*(1/clock))uS. e pronto...

Abraços E desista, num da não, o pic num da conta.

MensagemEnviado: 05 Abr 2010 11:13
por BolhaDigital
valeu fabim, vc é o cara...

MensagemEnviado: 05 Abr 2010 11:16
por fabim
hehehe, só pra atiçar.
tendeu porque parei com pic? e porque o proex me chingou tanto tempo pra eu poder parar ?

1° Arm em sua maioria é mais barato que pic
2° infinitamente mais rapido, e com mais perifericos
3° os 176X e os 23XX todos tem I2S in e out via hW...
4° sei lá, acho o arm bem mais simples que pic, o proex que o diga..

E da licensa, vou continuar o meu drive FTP para um cortexM3..

MensagemEnviado: 05 Abr 2010 11:33
por BolhaDigital
cara, por falar em arm.

eu baixei o eclipse e o gcc, instalei e aparentemente esta tudo correto...

me responde uma coisa!

Esse compilador e ide são os mais usados e são free de verdade?

Outra coisa, eu tô esquentando os motores para pegar no arm, me arruma aí uma rotininha basica tipo um pisca , para eu poder tentar entender de forma mais objetiva como inicializar esse treco...ainda não mexi em nada, já comprei kits e o caramba, tô com programas instalados e tudo mais, porém quero entender o maximo possível para poder por a mão na massa de fato, bom mexia com pic e pulou para arm, vc entende qual é o meu drama...nessa migração,

muito obrigado,