besoin aide CNA R2R 16 bits...

On Jul 16, 5:59 pm, "GzavSnap"

Attends : si son CNA 8 bits fonctionne, son CNA 16 bits doit fonctionner aussi.

Vede, voici un test pour lever le doute qui subsiste entre le fichier WAV et le CNA 16 bits, en testant juste le CNA :

Un bout de code avec une variable non signee sur 16 bits, un compteur que tu incrementes a chaque tour de boucle. Ecris ses MSB et LSB vers le CNA : en sortie tu dois avoir une dent de scie bien lineaire, sinon c'est ton CNA qui deconne.

void main(void) { unsigned int u =3D 0; // compteur

// ... les inits de ton PIC

while(1) // forever { PORTD =3D u >> 8; // MSB PORTC =3D u & 0xFF; // LSB u++; // increment du compteur

// ajoute une une tempo ici ... } }

Reply to
Jean-Christophe
Loading thread data ...

vede a ecrit

alors l'origine semble fiable ;o)

Puisque tu semble etre satisfait du R2R en wav 8 bits sur un seul port out, j'essaierai pour une levée de doute sur pb synchro de distribuer le meme signal (wav) 8 bits sur les 2 ports prevus pour le 16 bits en ne connectant le reseau R2R que sur les bits odd ou even des 2 ports (ou autre config) Rvl

Reply to
rvlegran

Jean-Christophe se fendait de cette prose :

L'idéal étant un signal en dent de scie (rampe).

--
LeLapin
Reply to
LeLapin

nt.

Je pense qu'un souci majeur de Vede est justement qu'il n'a pas d'oscilloscope, sinon ce serait r=E9solu depuis longtemps. ahhhhh qu'est-ce que j'ai pu m'emmerder avant d'acheter mon tektro d'occa= sion !

--=20

formatting link
/
formatting link

Reply to
whygee

le=20

je plussoie all=E8grement.

yg

--=20

formatting link
/
formatting link

Reply to
whygee

et comme l'a test=E9 vede, le code avec xor $80 fonctionne mieux qu'avec la valeur absolue.

ouais, attends, il doit rester une bouteille de champagne dans un = coin...

on peut raisonner sur autre chose que des concepts ? :-)

en m=EAme temps, le jour o=F9 plus personne ne pourra ronchonner sur internet, =E7a fera tout bizarre...

orie des nombres...

) je crois pas, non.

e ? d'un autre c=F4t=E9, il vient de dire que le code avec xor $80 ne fonctio= nne pas tr=E8s bien donc je soup=E7onne un probl=E8me autre part. et sans oscillo on n'ira pas loin.

non sign=E9.

je suis d'accord. d'ailleurs c'est une op=E9ration que je connais depuis assez longtemps pour reconnaitre quand je dois l'utiliser, sans me poser de question.

a sortie attend.

litude,

la solution est simple : un xor et au lit !

si : quelle est la valeur absolue de -32768 pour un entier 16 bits ?

moi aussi mais pour d'autres raison. et l=E0 je viens de me r=E9veiller :-/

on a la r=E9putation qu'on se fait, hein :-)

--=20

formatting link
/
formatting link

Reply to
whygee

"vede" a écrit dans le message de news: snipped-for-privacy@k30g2000yqf.googlegroups.com...

il est de toute façon illusoire d'esperer la qualité 16bit, à la louche les 4 derniers bit sont noyés dans le bruit analogique de la sortie...

ou alors AOP de précision, plan de masse impec, etc...

tu peux trouver un DAC 10 ou 12 bit moins cher et suffisant...

Reply to
Stephane Legras-Decussy

"Jean-Christophe" a écrit dans le message de news: snipped-for-privacy@y7g2000yqa.googlegroups.com...

c'est pour ce genre de gag qu'il y a des composants tout fait avec des latch et tout ce qu'il faut...

mais c'est super pédagogique sa démarche...

Reply to
Stephane Legras-Decussy

On Jul 16, 11:52=A0pm, whygee

Pas d'oscillo ? Bon, une autre solution : une tempo elevee dans la boucle, pour avoir le temps de voir evoluer lentement la tension en sortie du CNA avec un voltmetre. La tension doit augmenter lineairement, puis retomber au minimum lors du passage du compteur de 65535 a zero.

Ou encore : reboucler la sortie du CNA vers un CAN, et par soft comparer la valeur du CAN avec la valeur ecrite sur le CNA ... pour toute valeur de 0 a 65535.

Reply to
Jean-Christophe

Jean-Christophe se fendait de cette prose :

Encore faut-il ne pas avoir le même problème sur l'ADC :)

--
LeLapin
Reply to
LeLapin

Jean-Christophe, le 16/07/2009 a écrit :

C'est effectivement limpide. Un signal audio de la vraie vie à valeur moyenne nulle échatillonné en complément à 2. Si c'est effectivement ça qui se passe, ce qu'il faut faire est évident. Il faut ajouter 0x8000 à la valeur, sans se préoccuper de la retenue. Si l'outil de calcul est basé sur des mots de 8 bits, il suffit d'ajouter 0x80 (10000000b) à l'octet de poids fort. Tout ceci revient à inverser le bit de poids fort du mot de 16 bits, donc le bit de poids fort de l'octet de poids fort. Visuellement, l'addition correspond à "monter" le signal de

32767, avec effet "compteur kilométrique" (65535 + 1 = 0, etc.). L'inversion correpond à "échanger" la bande 0 .. 32767 et la bande 32768 .. 65535. Pour inverser un bit, on peut utiliser un XOR (OU exclusif) avec 0x8000 ou 0x80.
--
Pierre Maurette
Reply to
Pierre Maurette

On Jul 17, 10:45=A0am, LeLapin

Y'en a un deja integre dans son PIC ;-)

Reply to
Jean-Christophe

j'espere que vede à bien pensé à utiliser 2 ports de sortie de meme techno et pas des ports avec des technos differentes mixée Rvl

Reply to
rvlegran

me=20

hmmmm je pense =E0 un truc con : son PIC aurait-il des p=E9riph=E9riques multiplex=E9s avec les broches de= son DAC ? si le code d'initialisation est mauvaise alors les bits en sortie sont ma= uvais, ce qui se v=E9rifie facilement avec des LEDs ou un voltm=E8tre.

yg

--=20

formatting link
/
formatting link

Reply to
whygee

me

son DAC ?

uvais,

Bonjour =E0 tous,

bon ben =E7a y est, =E7a fonctionne ;O] avec le sch=E9ma R2R pr=E9sent=E9 d=E9s le d=E9but

formatting link

et le code: Mmc_Fat_Read(caracter) mlsb =3D caracter Mmc_Fat_Read(caracter) mmsb =3D caracter xor 0x80 PORTB =3D mmsb PORTD =3D mlsb

"bizarrement", il faut envoyer le msb sur le portB...

mais bon, sans =E7a, la qualit=E9 n'est pas vraiment au rendez vous...la restitution est m=EAme moins bonne qu'avec un fichier en 8 bits...notamment =E0 cause de la "faible" vitesse de mon PIC (40Mhz) et de la lourdeur de la librairie SPI-FAT-SD...

encore merci =E0 tous pour vos contributions, qui m'ont permis d'y arriver ;O]

bon'soir=E9e, vede ;O]

Reply to
vede

vede se fendait de cette prose :

Tout ça pour ça... ;)

--
LeLapin
Reply to
LeLapin

Bonsoir =E0 tous,

ben oui....je peux rigoler?

en 17xx on m'aurait dit, textuellement : ach=E9te un ane ;O]

vede :O]

Reply to
vede

re

une autre:

tu fais fuir mes carottes .... LeLapin

;O] vede :O]

Reply to
vede

une autre:

L'eusses-tu cru, oh homme, que tu fusses là peint ?

Vincent

Reply to
Vincent Thiernesse

bon ben une derni=E9re alors:

vincent mit l'=E2ne dans un pr=E9s, et s'en vint dans l'autre...

combien y-a-t-il d'=E2ne(s)

vede ;O]

Reply to
vede

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.