Bon, j'ai continué les tests, toujours pas de son. Pas simple sans oscillo. J'ai vérifié les liaisons entre le WM8805 et le dac, c'est OK.
Je voulais vérifier l'I2S, mais comme pas de scope, j'ai testé au multimètre. Intuitivement, je me dis que si des datas sont envoyées, je devrais mesurer une tension. Sur BCK et LRCK je mesure quelque chose, mais rien du tout sur SDI. Je suppose donc qu'il n'y a aucune donnée envoyée, normal qu'il n'y ai pas de son
Je vois deux raisons : ESS9023 (ou le WM8805) n'a pas aimé de chauffer, et pour une raison ou une autre il fout SDI à 0. Pour tester le WM8805, il faudrait sortir l'ESS, mais je préfère éviter si possible.
La deuxième raison ça serait le WM8805 mal configuré.
Voici ma config :
Code : Tout sélectionner
void conf_WM8805(int address) {
write_reg(address,RST_DEVID1,0x00); //rst
write_reg(address,PLL6,0x14);
write_reg(address,SPDMODE,0xE7);
write_reg(address, SPDTX4, 0x71);
write_reg(address,AIFTX,0x4A);
write_reg(address,AIFRX,0x0A);
write_reg(address,PWMRDN,0x04);
delay(100);
}
Je commence par un reset soft.
Ensuite via PLL6, je sélectionne l'entré que je veux utiliser (ici 4), je met CLKOUT sur CLK1 et CLKOUTDIS=0 pour activer la pin CLKOUT.
Je met SPMODE = 0xE7 ce qui permet de configurer les entrées (tos ou coax)
Normalement, SPDTX4 est configuré comme il faut par défaut. Mais c'est dans ce registre qu'on peut configurer la sortie sur l'I2S ou SPDIF, comme ça ne marchait pas je l'ai réécris pour vérifier, mais sans succès.
Dans AIFTX, j'ai configuré pour sortir en I2S, sur 24bits LRCLK et BCLK non inversés.
Enfin dans AIFRX j'ai mis AIF_MS=1 pour mettre le WM8805 en master.
Voila, je ne crois pas avoir fait d'erreur dans la config, donc je sais pas trop d'ou ça peut venir. Dans tous les cas, le WM8805 détecte bien le signal et switch correctement 3 entrées ..
![Dan.San :]](./images/smilies/8.gif)