besoin aide CNA R2R 16 bits...

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From French to

Threaded View
Bonjour E0% tous,

toujours dans le cadre de mes expE9%rimentations
sonores, je tente de mettre au point un convertisseur
numE9%rique>analogique 16 bits E0% base de rE9%seau R2R,
en sorties d'un B5%C PIC...dans le but de reproduction
sonore de fichiers audios...
(fichiers .wav mono 16b/16Khz stockE9%s sur une SDCard)
j'ai commencE9% par une version en 8 bits qui
fonctionne E0% merveille (avec des fichiers audios
encodE9%s en 8b/16Khz)...basE9% sur un rE9%seau R2R
cE2%blE9% sur les 8 sorties PortB de mon PIC...
schE9%ma R2R 8 bits
http://vede.free.fr/electronique/r2r08b.gif

mais je voudrais passer en "qualitE9% 16 bits"...
j'ai donc continuE9%/doublE9% mon rE9%seau R2R,
en utilisant, en plus du PortB, les 8 sorties du
PortD de mon PIC...
schE9%ma R2R 16 bits
http://vede.free.fr/electronique/r2r16b.gif

mais voilE0%, E7%a ne fonctionne pas, le son est
horriblement dE9%formE9%, tout juste reconnaissable,
avec de trE8%s gros bruits de fond...

alors voilE0% mes rE9%flexions;
me suis-je trompE9% en cE2%blant simplement
2 rE9%seaux R2R 8bits en sE9%ries pour obtenir un
rE9%seau 16bits? ou bien dans le cE2%blage entre
les PortB et PortD?

n'E9%tant pas un pro dans les rE9%seaux R2R...
si vous avez une idE9%e...merci d'avance....

vede
;O]

ps:sur les 2 schE9%mas, j'utilise des rE9%sistances
de 10K pour R et 20K pour R2 ...(...r2r...)...


Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it

Si ton schema 16 bits est une extension du 8 bits, tout est ok.
Le probleme que tu as ne provient pas de ton montage,
mais des specifications du format des fichiers RIFF / WAV.
Genere une sinusoide numerique, et regarde la sortie du CNA
a l'oscilloscope : tu verras un retournement d'amplitude !

En 8 bits, chaque echantillon est un entier *non-signe*,
on a donc les correspondances suivantes :
valeur -> amplitude
  0x00 -> 0
  0x7F -> 127
  0x80 -> 128
  0xFF -> 255

En 16 bits, chaque echantillon est un entier *signe*,
on a donc les correspondances suivantes :
valeur -> amplitude
  0x0000 -> 0
  0x7FFF -> +32767
  0x8000 -> -32768
  0xFFFF -> -1

Tu vois le topo ?
Ne me demande pas pourquoi, c'est pas moi qui l'ai fait !
Donc pour chaque mot de 16 bits tu dois juste faire la conversion
signe/non-signe avant d'ecrire ce mot vers ton CNA ... au boulot !
Eh ...tiens-nous au courant :-)

Re: besoin aide CNA R2R 16 bits...
Salut,

Oui, j'ai eu le même problème lors d'une programmation.
Sur le 8bits on va de 0 à 255 où 127 est la valeure du silence.
Pour le 16bits (en fait, 15bits) on a un signage à partir du
silence 0v et 15bits en positif / 15bits en négatif.
Il faut donc doubler le convertisseur pour le positif et les négatif.
On obtient alors un circuit mirroir avec une variation à partir de
0v et non à partir de -vcc.
Le 16bits non signé est rare... mais certains programmes audio
Tu peux regardé sur vb81 xur ... ou plutôt dans ZxSpectape...
Mais je crois que la version des sources est boguée en 16bits!
... si ça peut t'aider...
Xav.



Re: besoin aide CNA R2R 16 bits...
On Jul 15, 9:15A0%pm, "GzavSnap"
<zx81.pas.de.spam.ordi5.chez.free.en.france>

Quoted text here. Click to load it

Doubler le circuit electronique du CNA, au lieu d'une ligne
de code pour convertir la donnee 16 bits en non-signe ?
Tu coutes cher, toi ...

Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it

Oui, mais c'est la méthode la plus rapide... à moins que le taux
 d'échantillonnage soit faible.
Car il ne suffit pas d'enlever le bit de signe dans ce cas!




Re: besoin aide CNA R2R 16 bits...
On Jul 16, 5:29A0%pm, "GzavSnap"
<zx81.pas.de.spam.ordi5.chez.free.en.france>

Quoted text here. Click to load it

Quoted text here. Click to load it


Excuse-moi mais je ne comprends pas ta reponse :

J'ai eu le meme probleme avec des fichiers RIFF/WAV
entre les formats 8 et 16 bits, et je trouve plus rapide
(et surtout bien moins couteux) de convertir chaque sample
16 bits avec une ligne de code, plutot que de doubler
l'ensemble de la circuiterie electronique du CNA !

Maintenant, si tu parles de rapidite au sens "temps reel", avec
un uC d'aujourd'hui et une bande passante de 20 KHz en audio,
on a bien le temps de convertir ces 16 bits a la volee.
A la rigueur on peut aussi convertir le fichier entier en amont.
Et pour une appli vraiment realtime, on ne va pas se gonfler a
utiliser un format 16 bits WAV qu'il faudra trafiquer de toutes
facons,
autant utiliser des le depart du 16 bits non-signe tel que l'attend le
CNA.

Re: besoin aide CNA R2R 16 bits...
Ce n'est peut-être pas directement le problème que vous rencontrez
mais....avez-vous idée de la précision que doivent avoir les résistances du
réseau pour prétendre à une profondeur de 16 bits ?


Vincent


Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it

j'allais soulever le même point...

c'est pas la peine de dépanner le truc avant
de s'être penché sur cette question...et
d'abandonner l'idée...






Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it

tu mets un ampli (un AOP en suiveur) aprE8%s ton rE9%seau ?
tu sais que la rE9%solution en 8 bits (1/256) correspond
E0% 0,5%, donc tu es dE9%jE0% E0% la limite pratique de la prE9%cision
de tes rE9%sistances ?
Tu sais que le bruit dans l'alimentation causE9% par
l'activitE9% du PIC causera des variations plus importantes
en sortie que 1 LSB en 16 bits ?
Pour passer E0% 16 bits je recommande d'utiliser une puce
adaptE9%e, oF9% les chemins de courant sont E9%quilibrE9%s et
diffE9%rentiels. J'avais fait une carte DAC stE9%rE9%o 16 bits
il y a longtemps (E0% base de DAC7642) mais j'avais des
soucis de bruit dans la rE9%fE9%rence de tension :-/
http://f-cpu.seul.org/whygee/circuits/DAC16_1.jpg


bonnes bidouilles,
yg
--20%
http://ygdes.com / http://yasep.org

Re: besoin aide CNA R2R 16 bits...
vede se fendait de cette prose :

Quoted text here. Click to load it

N'aurais-tu pas tout simplement interverti tes ports ? Ca donnerait ce
résultat.

--
LeLapin

Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it

Bonsoir E0% tous,

et merci beaucoup pour toutes vos infos...

alors pour commencer, LeLapin, j'y avais pensE9%...
si j'inverse LSB-MSB c'est encore pire (son inreconnaissable)...

aprE9%s oui, j'ai un AOP LM386 en sortie...
d'ailleurs E7%a fonctionne impec. en 8 bits....

et je suis conscient qu'avec mes resistances
"E0% deux balles" "entendre" le bit 7 du LSB sera
illusoire...mais delE0% E0% entendre actuellement
une espE8%ce de "bouillie" audio...E0% la place du son...

j'ai pensE9% E0% une puce adaptE9%e, mais j'en ai pas sous
la main, j'ai commencE9% E0% regarder, mais les rE9%fs que
j'ai vu sont hors de prix (+ de 20 dollars)...

donc suis allE9% chercher du cF4%tE9% du format de fichier .wav,
http://sub0.developpez.com/FormatWAV/Conv_Form.htm
et donc je vais tenter, dans les prochaines heures,
une conversion signE9% > non-signE9% comme me proposait Jean Christophe...

au dE9%part je pensait avoir "mal" cE2%blE9% les 2 rE9%seaux R2R
(sur PertB et PortD) entre eux...style il aurait manquE9% un
diviseur de tension en sortie du R2R du LSB ...

n'hE9%sitez pas si vous aves plus d'infos,
je vous tiens au, jus,
vede
;O]



Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it

Oui : tu aurais bien de la distorsion, mais pas a ce point.

Quoted text here. Click to load it

J'avais ecrit un programme C pour generer des fichiers WAV ...
tout allait bien en 8 bits mono et stereo, puis ca s'est mis a
merder en mode 16 bits ... j'ai rame un moment avant de realiser
que si le 8 bits est bien *non-signe*, le 16 bits est *signe*
# 8-bit stored as unsigned bytes, 0 to 255
# 16-bit stored as 2-complement signed integers, -32768 to 32767.
http://ccrma.stanford.edu/courses/422/projects/WaveFormat /

Fais gaffe aussi a mettre a jour les deux blocs de 8 bits
au meme instant, ou au moins, avec un delai maxi equivalent
a une seule instruction (les deux ports toujours en sortie,
pour ne pas avoir besoin de reecrire les directions TRISx)
ecrire le MSB d'abord, puis ensuite le LSB, a la volee.
En ASM c'est ok, mais en C, le compilo peut te jouer
de mauvais tours a ce niveau ... a surveiller.

Re: besoin aide CNA R2R 16 bits...

snipped-for-privacy@y7g2000yqa.googlegroups.com...
Quoted text here. Click to load it

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...




Re: besoin aide CNA R2R 16 bits...

snipped-for-privacy@k30g2000yqf.googlegroups.com...
Quoted text here. Click to load it

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...




Re: besoin aide CNA R2R 16 bits...
vede a écrit :
Quoted text here. Click to load it
tu n'aurais pas inversé les 2 paquets de 8 bits (poids forts et poids
faibles )??

JJ

Re: besoin aide CNA R2R 16 bits...
Bonsoir E0% tous

Quoted text here. Click to load it

E9%h non, E7%a serait trop facile ;O]

vede
;O]

Re: besoin aide CNA R2R 16 bits...
vede a écrit :
Quoted text here. Click to load it

Les 2 ports sont-ils mis à jour en même temps ?
Car si un port est rafraichi avant l'autre, ca pourrait peut-être
expliquer ton pb ...

Re: besoin aide CNA R2R 16 bits...
Bonsoir E0% tous,

Quoted text here. Click to load it

non pas exactement, mais en moins de 0.3B5%s...
je ne pense pas que le problE8%me vienne de lE0%,
mais j'ai testE9% (inversion rafraichissement LSB-MSB)
sans succE8%s...

vede
;O]



Re: besoin aide CNA R2R 16 bits...

Quoted text here. Click to load it


C'est parce-que dans un WAV le 16 bits est *signe*
http://netghost.narod.ru/gff/graphics/summary/micriff.htm
Sois pas tetu  :op

Re: besoin aide CNA R2R 16 bits...
Quoted text here. Click to load it




Bonsoir,

La réponse qu'a donné Jean-Christophe (datée du 15/7 à 17h41) est la bonne
(j'ai été confronté moi même à ce problème, en plus de celui de travailler
sur du materiel Motorola). Pourquoi l'ignorez-vous?

Antoine



Site Timeline