mise en oeuvre CODEC TI sur AVR [résolu] - Nano-ordinateur, microcontrôleurs, FPGA - Electronique, domotique, DIY
Marsh Posté le 07-03-2019 à 20:18:32
Bon, j'ai perdu des heures à cause d'une erreur de débutant: J'avais pas vérifié le HP. Il est mort. J'ai honte.
Concernant le délai entre PCMSYNC et la transmission SPI j'ai trouvé une astuce aussi:
Code :
|
Le CODEC, en tout cas la partie haut-parleur, fonctionne.
Marsh Posté le 07-03-2019 à 21:56:10
J'imagine le sentiment de désespoir après avoir passé des heures à se palucher la datasheet, vérifier le câblage, mesurer plein de trucs à l'oscillo et changer 12 fois le code et les registres pour se rendre compte que c'est le HP qui est hs .
J'espère au moins que ce fut instructif
Jamais pensé à brancher l'oscillo directement sur la sortie analogique du codec ?
Marsh Posté le 08-03-2019 à 11:09:32
TotalRecall a écrit : Jamais pensé à brancher l'oscillo directement sur la sortie analogique du codec ? |
Justement, c'est en vérifiant toutes les broches au scope que je me suis rendu compte que cette "tension continue" que m'affichait le multi était un sinus. Ensuite le diagnostic était vite fait.
Oui je sais, j'aurais dû vérifier au scope directement, mais qui s'attend à ce qu'un HP soit cassé??
Marsh Posté le 03-03-2019 à 19:46:35
Bonsoir,
je désespère concernant l'utilisation du CODEC TI TLV320AIC1106. Est-ce que quelqu'un peut m'aider?
Ce CODEC est branché sur un µC AVR Atmega1284P:
Reset PA2 (active low, mis à 1 après un reset)
LinSel PA3 (mis à 1 -> 8 Bit µlaw)
MicMute PA4 (mis à 0)
EarMute PA5 (mis à 0)
MCLK PB3 = OC0A (master clock 2,048MHz)
PCMI PD3 (USART1 as SPI, MOSI)
PCMO PD2 (USART1 as SPI, MISO)
Le clock du SPI est branché nulle part, tout est basé sur le master clock fourni au CODEC.
PCMSYNC PD5
EarOut+/- directement sur un petit haut-parleur
Microphone branché comme indiqué dans la doc, ignoré pour l'instant
alimentation 3,3V avec découplage 2x100nF CMS
J'essaye de jouer un son (sinus 440Hz) dans le HP mais j'entends rien du tout.
Au niveau logiciel tout est basé sur deux timers en mode CTC du AVR cadencé par un quartz de 8,192MHz et alimenté en 3,3V aussi.
Le premier est utilisé pour fournir le master clock de 2,048MHz au CODEC. Signal vérifié à l'oscilloscope.
Le deuxième provoque une interruption toutes les 125µs (1/8000). Dans cette interruption je crée une impulsion positive sur PCMSYNC puis je lance un transfer SPI (envoi+réception) avec une valeur prise dans un tableau de valeurs encodant le signal (correct, fabriqué par Audacity, encodage µlaw).
J'ai pu vérifier à l'analyzeur logique que l'envoi des données se fait en principe correctement, je retrouve les valeurs de mon tableau. MISO est tiré sur Vcc/2 en dehors des transferts (vérifié à l'oscilloscope), l'analyzeur logique enregistre donc n'importe quoi.
Le seul problème que je vois (et il risque d'être de taille ) c'est un délai trop important entre l'impulsion PCMSYNC et le début du transfer SPI, mais cela n'explique (à mon avis) pas que je n'entende vraiment rien du tout. Je devrais - si mon sinus passe mal - au moins entendre une espèce de bruit ou autre??
Voilà le code simplifié:
Quelqu'un pour m'aider svp?
Message édité par rat de combat le 07-03-2019 à 20:18:47