AD1862-basert diy dac fra scratch?

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
AD1862 blir av av en håndfull kyndige mennesker regnet som den ultimate R-2R dacen. Det er en mono chip med +-12V forsyningsspenning og Iout. Den ble aldri tatt i bruk kommersielt i noen særlig stor skala, og er for lengst gått ut av produksjon, men er fortsatt mulig å oppdrive.

Så til poenget... jeg fikk en litt sprø idé om å forsøke å lage en dac fra scratch, basert på denne chipen. Planen var å kjøre USB til I2S, deretter til et digitalt filter og videre til dac. For å gjøre det litt enklere tenkte jeg å basere meg på ferdige moduler for USB-receiver og digitalt filter.

Audio-GD leverer digitale filtermoduler basert på Altera Cyclone II, som gir MSB-first ut:
http://www.audio-gd.com/Pro/dac/DSP1/DSP1ENspecs.htm

pcm63.com leverer NOS AD1862-chiper:
http://pcm63.com/?69,ad1862n-j-military

Jeg har lite erfaring med digital kretsdesign, så det ville blitt et forskningsprosjekt med bratt læringskurve. Er det noen som har erfaring med denne typen dacer? Noen som kan si om dette er et prosjekt som kan la seg gjennomføre? Jeg tar imot innspill med åpne armer.
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Ingen som har erfaring med denne chipen her på forumet? ???

Jeg har et lite teknisk spørsmål i forhold til å interface I2S med BTC MSB-first. I2S er enten 24 eller 16 bit. AD-dacen er 20-bit. Hva skjer dersom man fôrer et 24 bit signal til en 20 bit dac? Dacen konverterer kun de siste sendte bitene etter at LE klokkesignalet har gått ned. Man konverterer altså kun 20 av 24 bits. Hva betyr dette i praksis?
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Nå har jeg sjekket litt rundt, og funnet ut at dette prosjektet skal være realiserbart. DSP-1 fra Audio-GD er direkte kompatibel med AD1862, da man kan velge 20-bit output med en DIP-switch på modulet. Altså får man 20-bit 11.28 Mhz ut. I tillegg kan man enkelt velge oversampling fra 1x til 8x.

Prosjektet blir da i forholdsvis stor grad modulbasert, men dac-kretsen og I/V-konvertering blir fra scratch. Så da er det bare å sette i gang. :)
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Her er litt for å veie opp for alt Buffalo-pratet 8)


Ikke hver dag man ser en mono-dac i DIP-pakke. Nå gjelder det bare å finne ut hvor fake den er. :-X
 

Vedlegg

O

Oblivion

Gjest
DIY_dude skrev:
Ingen som har erfaring med denne chipen her på forumet? ???

Jeg har et lite teknisk spørsmål i forhold til å interface I2S med BTC MSB-first. I2S er enten 24 eller 16 bit. AD-dacen er 20-bit. Hva skjer dersom man fôrer et 24 bit signal til en 20 bit dac? Dacen konverterer kun de siste sendte bitene etter at LE klokkesignalet har gått ned. Man konverterer altså kun 20 av 24 bits. Hva betyr dette i praksis?
I2S spesifikasjonene sier at det skal klokkes med 64FS - det vil si 64 "bit" klokkepulser (32 pr kanal) i hver syklus.
Data sendes med MSB først slik at det spiller ingen rolle om en sender 16/20/24 eller 32bit data eller om mottager er 16/20/24 eller 32bit.
Hvis senderen har mindre data dybde enn 32bit fylles det på med "0" til det er 32bit dybde.
Hvis mottageren har mindre data dybde enn 32bit brukes kun den datadybden den greier, med
for eksempel en mottager som har 20bit datadybde blir 12 LSB bit skrellet av slik at hvis det sendes 24bit data vil en ganske enkelt miste 4 LSB bit som innehold lyddata.

I2S spesifikasjonene ble definert slik for å enkelt tillate at sendere og mottagere kan ha forskjellig bitdybde selv om resultatet i de fleste kombinasjoner blir feil....

Det er kun noen får kombinasjoner som blir bitperfekte :eek: :eek:
Det er når det sendes 16bit data og mottager KUN kan ta imot 16bit data,
og når det sendes 24bit data og mottager KUN kan ta imot 24bit data,
og når det sendes 32bit data og mottager KUN kan ta imot 32bit data.

ALLE andre kombinasjoner blir IKKE bitperfekte pga den "forenklede" og feilaktige I2S standarden.
For eksempel:
16bit data og en 20bit DAC gir IKKE bitperfekte data.
16bit data og en 24bit DAC gir IKKE bitperfekte data.
16bit data og en 32bit DAC gir IKKE bitperfekte data.

20bit data og en 16bit DAC gir IKKE bitperfekte data.
20bit data og en 24bit DAC gir IKKE bitperfekte data.
20bit data og en 32bit DAC gir IKKE bitperfekte data.

24bit data og en 16bit DAC gir IKKE bitperfekte data.
24bit data og en 20bit DAC gir IKKE bitperfekte data.
24bit data og en 32bit DAC gir IKKE bitperfekte data.

32bit data og en 16bit DAC gir IKKE bitperfekte data.
32bit data og en 20bit DAC gir IKKE bitperfekte data.
32bit data og en 24bit DAC gir IKKE bitperfekte data.
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Takk for et informativt innlegg! Det oppklarer mye av det jeg har lurt på. I mitt tilfelle skal jeg ta imot I2S med en FPGA-chip og sende videre til dacen som et 20-bit 2s complement signal, som i likhet med I2S er definert som MSB first.

Jeg visste ikke dette om I2S, at det kun gir bitperfect resultat når mottaker kun støtter den aktuelle datadybden. Jeg kjenner ikke til hva slags dataformater denne Cyclone-chippen støtter, men jeg regner med at jeg ikke vil få et bitperfect signal.
 
O

Oblivion

Gjest
DIY_dude skrev:
Takk for et informativt innlegg! Det oppklarer mye av det jeg har lurt på. I mitt tilfelle skal jeg ta imot I2S med en FPGA-chip og sende videre til dacen som et 20-bit 2s complement signal, som i likhet med I2S er definert som MSB first.

Jeg visste ikke dette om I2S, at det kun gir bitperfect resultat når mottaker kun støtter den aktuelle datadybden. Jeg kjenner ikke til hva slags dataformater denne Cyclone-chippen støtter, men jeg regner med at jeg ikke vil få et bitperfect signal.
Det er I2S DSPen sender ut og jeg ville tro at det låter best uten DSPen..

Men med en 20bit DAC vil du få feil data i 4 LSB bit når kilde data er 16bit,
og med 24bit kilde data blir 4 LSB bit av dette ikke brukt (skrellet av).
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Hmm, Audio-GD oppgir følgende:
Input Data Format: I2S
Output Data Format: MSB-First, Binary Two’s Complement
Output Word Length: 16, 20, or 24 Bits

Dacen støtter ikke I2S, så jeg må ha en DSP for å konvertere signalet. Men det DSP-1 har visstnok dip-switcher for å velge bit-dybde på utgangssignalet, så bit-dybden blir ikke noen issue allikevel.
 
O

Oblivion

Gjest
DIY_dude skrev:
Hmm, Audio-GD oppgir følgende:
Input Data Format: I2S
Output Data Format: MSB-First, Binary Two’s Complement
Output Word Length: 16, 20, or 24 Bits

Dacen støtter ikke I2S, så jeg må ha en DSP for å konvertere signalet. Men det DSP-1 har visstnok dip-switcher for å velge bit-dybde på utgangssignalet, så bit-dybden blir ikke noen issue allikevel.
MSB-First, Binary Two’s Complement == I2S

Så da støtter DACen I2S...

Bit dybden blir et issue uansett så lenge det ikke er 20bit data du spiller,
men det problemet har stort sett alle avspiller løsninger..

Har lagt ved I2S spesifikasjonene
 

Vedlegg

Cobra2

Hi-Fi freak
Ble medlem
26.02.2003
Innlegg
4.980
Antall liker
1.055
Sted
Stavanger
Torget vurderinger
75
Selv om det er greitt å vite...synes jeg at diskusjonen "bit-korrekt" og streben etter dette er en anelse bortkastet...
Jeg lytter til et ANALOG (konvertert) signal, og det er pr definisjon ikke bit-korrekt ;D

Arne K
 
O

Oblivion

Gjest
Cobra2 skrev:
Selv om det er greitt å vite...synes jeg at diskusjonen "bit-korrekt" og streben etter dette er en anelse bortkastet...
Jeg lytter til et ANALOG (konvertert) signal, og det er pr definisjon ikke bit-korrekt ;D

Arne K
Når du får hørt hvor ANALOGT en "bit-korrekt" digital implementasjon låter kan det hende du får ;D ;D
 

Cobra2

Hi-Fi freak
Ble medlem
26.02.2003
Innlegg
4.980
Antall liker
1.055
Sted
Stavanger
Torget vurderinger
75
Kanskje, men da må DAC-chippen (vi snakker om AD1862 her) "justeres/trimmes" for maksimal yteevne.
Og prosedyren i databladet er feil.
Denon "gadd" ikke engang prøve å lage en trim-krets, men i TEAC VRDS-25 er DAC'ene "fin-trimmet".
VRDS-25 bruker også up-sampling til 20bit (AD1862=20bit).

Arne K
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Oblivion skrev:
MSB-First, Binary Two’s Complement == I2S

Så da støtter DACen I2S...
Okok, jeg skjønner at jeg ikke har helt kontroll på definisjonene her. Men sender ikke I2S begge kanaler i samme datastrøm? Det er her det skjærer seg litt, siden dacen er en monodac. Jeg trenger en receiver/DSP som sender ut en separat datastrøm for hver kanal, samt bitclock og wordclock. Eventuelt må jeg invertere wordclocken til den ene dacen?
 
O

Oblivion

Gjest
Sjekket databladet og DACen følger ikke I2S spesifikasjonene,
de bruker WORD clock forskjellig fra normalen,
men det ser ut til at AD1862 i praksis er I2S kompatibel.

Det følgende er hentet fra databladet:

INTERNAL DAC INPUT REGISTER UPDATED WITH 20 MOST RECENT BITS

Når LE (Latch Enable) (normalt WORD clock) går lav lastes de siste 20 data bit inn i DACen.
Normalt er WORD clock høy eller lav for å indikere om det er høyre eller venstre kanals data som klokkes inn i DAC og det klokkes på flanke skifte.
Med AD1862 må en lage litt logic styring hvor en bruker WORD clock og lager en puls til AD1862 når den skal latch data inn.
Derfor må en ha en timing til venstre kanal og en til høyre kanal.

Det er mulig at AD1862 takler en normal WORD klokke timing inn på LE og at det holder å invertere WORD clock til den ene kanalen.

Det står i databladet at data klokkingen er kompatibel med "normale" digital filter chiper etc. så jeg regner med at AD1862 er I2S kompatibel i praksis..

For å få tiltenkt ytelse må en ha et digital filter eller DSP som klokker ut venstre og høyre kanal samtidig som to datastrømmer og ha en felles Latch Enable (modifisert Word Clock) - ellers vil AD1862 gå på halv fart..
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Jeg har laget et forslag til hvordan AD1862 kan ta imot et I2S-signal via litt glue logic. Fikk tips om å bruke en variabel flip-flop. Bruker da CD4557 http://www.galigear.com.au/CD4557-HEF4557BP-shift-register-ICs-for-sale for å forsinke datastrømmen med 11 bits for venstre kanal og 43 bits for høyre kanal. Da skal wordclocken kunne brukes direkte som latch enable.



Fint om noen har innspill.

Er usikker på et par ting. Er det riktig at det er bitclock som skal inn på dacens CLK-inngang? I så fall vil jo denne kjøre på bare 2,8 MHz med et 44,1 Khz signal. Er det også bitclock som skal inn på CD4557-chipen? Er det likegyldig hvilken spenning CD4557 er forsynt med. Det står at den kan kjøres på både 5 og 12 V, men har det noen betydning?

Har også funnet prototypekort med jordplan på ELFA. Neat! https://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?item=48-320-77&toc=20548 Kun 300,- kr stykket. :eek:
 

Vedlegg

O

Oblivion

Gjest
DIY_dude skrev:
Er usikker på et par ting. Er det riktig at det er bitclock som skal inn på dacens CLK-inngang? I så fall vil jo denne kjøre på bare 2,8 MHz med et 44,1 Khz signal. Er det også bitclock som skal inn på CD4557-chipen? Er det likegyldig hvilken spenning CD4557 er forsynt med. Det står at den kan kjøres på både 5 og 12 V, men har det noen betydning?
Bit klokken skal inn på DAC CLK inngang, men du bør sjekke fase og tidsforsinkelse.

Ser du i databladet for CD4557 så er fomelen: Høyere spenning = Høyere hastighet.
Men øker du spenningen må du tilpasse dette slik at du ikke kjører mer enn 5 volt inn i DACen.

Word klokken bør du vel også studere nærmere....
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Mener du at CD4557-chipen introduserer en tidsforsinkelse på signalet som gjør at dataene kan komme i ufase med klokkesignalet? Hvordan er det i så fall mulig å håndtere dette?

Jeg forstår det sånn at chipen kan operere med høyere hastigheter hvis den får høyere forsyningsspenning. Men er utgangssignalet påvirket direkte av forsyningsspenningen, sånn at jeg bør kjøre chipen på 5V?

Noe sier meg at jeg blir nødt til å kjøpe et oscilloskop for å klare å dra dette prosjektet i havn. 8)
 

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Ok, nå har jeg forlatt det første konseptet med variabel shift register. CD4557 har altfor mye propagation delay og altfor lang rise time til at det lar seg gjennomføre. Derfor har jeg endret konseptet helt. Bruker en rekke av 74HC-chiper isteden. Disse gir neglisjerbar propagation delay og har mye raskere rise time, så 174 kHz signaler skal kunne fungere problemfritt. Vedlagte kretsen gir (forhåpentligvis) riktig delay på høyre og venstre datakanal, og sender signalene simultant til begge dacene.

Noen som har tips til noen enkle og gode diskrete regulatorkretser? Det blir mye strømforsyninger til denne dacen. +-12V til Va på dacen, +-5V til Vd på dacen, +5V til flip-flopene og +-15V til I/V-trinnet. 8)
 

Vedlegg

DIY_dude

Hi-Fi freak
Ble medlem
15.01.2007
Innlegg
1.313
Antall liker
67
Sted
OSLO
Torget vurderinger
8
Jeg tenkte i utgangspunktet på kretsskjema, og ikke på ferdige regulatorer. Har lyst til å lage regulatorene fra bunnen av også. Men hvis det viser seg å bli vanskelig så kan det være jeg går for noen sånne ferdige shuntregulatorer. Evt. fra newclassd.com istedenfor Tentlabs.
 

oyvine

Hi-Fi entusiast
Ble medlem
03.11.2005
Innlegg
184
Antall liker
1
Hei,
jeg sliter litt med å forstå hvordan man skal og bør håndtere ulike bitbredder på I2S. Jeg tror det finnes en tråd startet av Oblivion om dette for en stund siden, men jeg er ikke i stand til å finne den. Det nærmeste jeg kommer er dette svaret:

Oblivion skrev:
DIY_dude skrev:
Ingen som har erfaring med denne chipen her på forumet? ???

Jeg har et lite teknisk spørsmål i forhold til å interface I2S med BTC MSB-first. I2S er enten 24 eller 16 bit. AD-dacen er 20-bit. Hva skjer dersom man fôrer et 24 bit signal til en 20 bit dac? Dacen konverterer kun de siste sendte bitene etter at LE klokkesignalet har gått ned. Man konverterer altså kun 20 av 24 bits. Hva betyr dette i praksis?
I2S spesifikasjonene sier at det skal klokkes med 64FS - det vil si 64 "bit" klokkepulser (32 pr kanal) i hver syklus.
Data sendes med MSB først slik at det spiller ingen rolle om en sender 16/20/24 eller 32bit data eller om mottager er 16/20/24 eller 32bit.
Hvis senderen har mindre data dybde enn 32bit fylles det på med "0" til det er 32bit dybde.
Hvis mottageren har mindre data dybde enn 32bit brukes kun den datadybden den greier, med
for eksempel en mottager som har 20bit datadybde blir 12 LSB bit skrellet av slik at hvis det sendes 24bit data vil en ganske enkelt miste 4 LSB bit som innehold lyddata.

I2S spesifikasjonene ble definert slik for å enkelt tillate at sendere og mottagere kan ha forskjellig bitdybde selv om resultatet i de fleste kombinasjoner blir feil....

Det er kun noen får kombinasjoner som blir bitperfekte :eek: :eek:
Det er når det sendes 16bit data og mottager KUN kan ta imot 16bit data,
og når det sendes 24bit data og mottager KUN kan ta imot 24bit data,
og når det sendes 32bit data og mottager KUN kan ta imot 32bit data.

ALLE andre kombinasjoner blir IKKE bitperfekte pga den "forenklede" og feilaktige I2S standarden.
For eksempel:
16bit data og en 20bit DAC gir IKKE bitperfekte data.
16bit data og en 24bit DAC gir IKKE bitperfekte data.
16bit data og en 32bit DAC gir IKKE bitperfekte data.

20bit data og en 16bit DAC gir IKKE bitperfekte data.
20bit data og en 24bit DAC gir IKKE bitperfekte data.
20bit data og en 32bit DAC gir IKKE bitperfekte data.

24bit data og en 16bit DAC gir IKKE bitperfekte data.
24bit data og en 20bit DAC gir IKKE bitperfekte data.
24bit data og en 32bit DAC gir IKKE bitperfekte data.

32bit data og en 16bit DAC gir IKKE bitperfekte data.
32bit data og en 20bit DAC gir IKKE bitperfekte data.
32bit data og en 24bit DAC gir IKKE bitperfekte data.
Har noen en lenke til tråden som omhandlet dette eller en lenke til hvor dette forklares et annet sted på nettet?

mvh,
Øyvin Eikeland
 
Topp Bunn