AFDAC 1541

Traditionele bronapparaten zoals CD-, DVD- en platenspelers.
(streaming-/computeraudio graag in de daarvoor aangewezen forumgroep)

Moderators: Barry2001, Beheerdersteam

Gebruikersavatar
Pjotr
Berichten: 21203
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Re: AFDAC 1541

Berichtdoor Pjotr » di 08 jan 2019, 20:30

Ja, leuk spul. Mooi dat je het gevonden hebt. Ik heb nog wel eens "ruzie" met de fitter/router: Past een design op 1 of 2 FF of logische functies na er niet in b.v. Dat is soms best wel puzzelen om het design in zijn geheel nog eens te bekijken of wat vereenvoudigingen mogelijk zijn, zodat het wel past.
Peter de Jong

Gebruikersavatar
Shadow
Berichten: 9189
Lid geworden op: vr 28 jan 2011, 20:56
Locatie: Vlissingen

Re: AFDAC 1541

Berichtdoor Shadow » di 08 jan 2019, 21:10

Was het daarom ook niet dat Hypex in de Fusion’s 2 aparte klokken gebruikte met aparte frequenties?

Gebruikersavatar
Barry2001
Algemene moderator
Berichten: 10281
Lid geworden op: zo 22 mar 2009, 16:57
Locatie: Hengelo

Re: AFDAC 1541

Berichtdoor Barry2001 » di 08 jan 2019, 21:14

Mooi dat je het het gevonden hebt Knuis =D> . Cpld’s zijn wat dat betreft ideaal in een project als dit.

Gebruikersavatar
knuisje
Berichten: 3638
Lid geworden op: zo 15 apr 2007, 0:07
Locatie: Julianadorp

Re: AFDAC 1541

Berichtdoor knuisje » di 08 jan 2019, 21:20

ja ben blij dat het nu helemaal goed werkt. Je kunt overigens de synthese nog beïnvloeden om te optimaliseren op speed of area, dat kan nog soelaas bieden als je te weinig ruimte hebt. Ik zat gelukkig ruim in mijn jasje, gebruik ongeveer 105 van de 128 flipflops.
( ͝° ͜ʖ͡°)

Gebruikersavatar
Barry2001
Algemene moderator
Berichten: 10281
Lid geworden op: zo 22 mar 2009, 16:57
Locatie: Hengelo

Re: AFDAC 1541

Berichtdoor Barry2001 » di 08 jan 2019, 21:24

knuisje schreef:ja ben blij dat het nu helemaal goed werkt. Je kunt overigens de synthese nog beïnvloeden om te optimaliseren op speed of area, dat kan nog soelaas bieden als je te weinig ruimte hebt. Ik zat gelukkig ruim in mijn jasje, gebruik ongeveer 105 van de 128 flipflops.


Ja gaaf he, je bent er echt flexibel mee zodat je nu nog verder kunt tunen.

Gebruikersavatar
democles
Berichten: 4307
Lid geworden op: do 11 nov 2010, 21:08
Locatie: Appingedam

Re: AFDAC 1541

Berichtdoor democles » do 10 jan 2019, 18:37

Begrijp er niet veel van met al die afkortingen. :|

https://nl.wikipedia.org/wiki/Complex_p ... gic_device

Gebruikersavatar
ray5150
Berichten: 22766
Lid geworden op: vr 13 apr 2007, 23:56
Locatie: s-Gravenhage

Re: AFDAC 1541

Berichtdoor ray5150 » do 10 jan 2019, 21:04

Het is dan ook best wel complex...

Gebruikersavatar
Pjotr
Berichten: 21203
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Re: AFDAC 1541

Berichtdoor Pjotr » do 10 jan 2019, 21:10

Echte audio gaat verder dan het koken van een kabeltje :mrgreen: Had jij daar niet ooit een mooi plaatje van Ray?
Peter de Jong

Gebruikersavatar
ray5150
Berichten: 22766
Lid geworden op: vr 13 apr 2007, 23:56
Locatie: s-Gravenhage

Re: AFDAC 1541

Berichtdoor ray5150 » do 10 jan 2019, 21:16

Deze bedoel je waarschijnlijk :

audio_design.jpg
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.

Gebruikersavatar
ray5150
Berichten: 22766
Lid geworden op: vr 13 apr 2007, 23:56
Locatie: s-Gravenhage

Re: AFDAC 1541

Berichtdoor ray5150 » do 10 jan 2019, 21:20

Overigens snap ik zelf ook geen fluit van al dat digitale gepruts.
Wat dat betreft diep respect van mijn kant voor knuisje/Peter dat hij zoiets van scratch (zonder voorbeelden dus) kan ontwerpen, en tot een werkend geheel opbouwen.

Gebruikersavatar
Pjotr
Berichten: 21203
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Re: AFDAC 1541

Berichtdoor Pjotr » do 10 jan 2019, 21:24

Ach, uiteindelijk is het ook gewoon een vak Ray. Hoofdzakeleijk B.Z.E.T. ;)

ray5150 schreef:Deze bedoel je waarschijnlijk :

audio_design.jpg

Ja die i.d.d. :lol:
Peter de Jong

Gebruikersavatar
knuisje
Berichten: 3638
Lid geworden op: zo 15 apr 2007, 0:07
Locatie: Julianadorp

Re: AFDAC 1541

Berichtdoor knuisje » do 10 jan 2019, 21:30

Dank Ray, maar er is zo veel te vinden op het web dat je met logisch nadenken en doorzettingsvermogen al een aardig eind kan komen.

De truc die is gedaan met dit ontwerp is de TDA1541 van digitale signalen te voorzien op de manier die optimaal is voor deze dac. Helaas is deze manier heel afwijkend zodat je geen standaard ic's zoals een SPDIF receiver of een USB-interface kan gebruiken, tenzij je een manier vindt om het geheel met elkaar te laten praten. Dit wordt glue logic genoemd, dus logica om de boel aan elkaar te plakken. Dit kun je met losse logische ic's doen zoals flipflops, schuifregisters, AND-poorten etc. Voor simpele dingen gaat dit prima maar als de logica complex is dan heb je tientallen of honderden logische ic's nodig om dit voor elkaar te krijgen zodat het praktisch onmogelijk wordt.
Zo'n CPLD bevat al deze flipflops, AND-poorten enz. die je via een soort matrix aan elkaar kunt knopen om elke combinatie te kunnen maken, m.a.w. jouw ontwerp te implementeren. Deze matrix stel je niet met de hand in maar daar zijn hulpmiddelen voor gemaakt. Je kunt in een programmeertaal zoals VHDL of Verilog beschrijven wat de bedoeling is en via een proces wat synthesis en fitting wordt genoemd wordt jouw programma vertaald in instellingen van de matrix zodat de CPLD zich gaat gedragen zoals je hebt beschreven. Dat is het in een notendop.
( ͝° ͜ʖ͡°)

Gebruikersavatar
democles
Berichten: 4307
Lid geworden op: do 11 nov 2010, 21:08
Locatie: Appingedam

Re: AFDAC 1541

Berichtdoor democles » vr 11 jan 2019, 2:49

Bedankt knuisje het wordt me een hoop duidelijker nu,heb even gekeken hoe de programmeertaal werkt,weet dus nu wat de processors op dac,s doen
en wat bedoeld wordt met registers,ANDpoorten etc.
Scheelt je een hoop onderdelen die anders de dac bedienen. :shock:
Wel een hoop werk met dat programmeren.

Gebruikersavatar
Barry2001
Algemene moderator
Berichten: 10281
Lid geworden op: zo 22 mar 2009, 16:57
Locatie: Hengelo

Re: AFDAC 1541

Berichtdoor Barry2001 » vr 11 jan 2019, 8:34

Om een idee te krijgen Peter, hoeveel tijd heeft je alleen het programmeren gekost? En heb je VHDL gebruikt?

Gebruikersavatar
knuisje
Berichten: 3638
Lid geworden op: zo 15 apr 2007, 0:07
Locatie: Julianadorp

Re: AFDAC 1541

Berichtdoor knuisje » vr 11 jan 2019, 9:18

Ha Barry, ik ben van de zomer begonnen met het ontwerp van de dac. Ik kwam op diyAudio een topic tegen van een Canadees die een I2S to PCM print had ontwikkeld en de goede resultaten die er mee werden behaald. Helaas was de groupbuy al lang beëindigd, dus ik besloot het maar zelf te ontwikkelen. Je hebt soms een uitdaging nodig. :lol:
De eerste stap was het leren van VHDL, er zijn allerlei tutorials en zelfs complete leerboeken te vinden op het net. De belangrijkste verandering in mindset ten opzichte van gangbare programmeertalen zoals C of Basic e.d. is dat er niet 1 routine draait maar dat meerdere processen tegelijk worden uitgevoerd. Zo heb ik een proces dat de I2S data inleest, een proces dat het converteert en als PCM stromen naar de dacs stuurt, een proces dat de bitclock genereert, een proces dat de latch enable aanstuurt etc.
Er zijn voorbeelden te vinden van bijvoorbeeld de code van een I2S receiver, dus je hoeft niet geheel het wiel opnieuw uit te vinden. Maar al met al ben ik er wel een maand of twee zoet mee geweest.
( ͝° ͜ʖ͡°)

Gebruikersavatar
VintageHarry
Berichten: 1144
Lid geworden op: ma 27 okt 2014, 11:41
Locatie: Bij Arnhem

Re: AFDAC 1541

Berichtdoor VintageHarry » vr 11 jan 2019, 9:41

Poeh, diep respect hoor! Maar het lijkt me wel mooi om zo het maximale uit deze DAC te halen.

Gebruikersavatar
knuisje
Berichten: 3638
Lid geworden op: zo 15 apr 2007, 0:07
Locatie: Julianadorp

Re: AFDAC 1541

Berichtdoor knuisje » vr 11 jan 2019, 10:25

Hier nog een plaatje van twee signalen uit de CPLD. De bovenste lijn is de bitclock. Je ziet steeds 16 pulsen om de data in te klokken. Daarna stopt de bitclock weer. Dit inklokken veroorzaakt groundbounce bij de TDA1541.
De onderste lijn is een enkele puls, de latch enable met een frequentie van 192kHz. Als de dac deze puls ontvangt vindt de daadwerkelijke conversie naar een analoog signaal plaats, dit verschijnt net zolang op de uitgang tot de volgende latch enable puls.
Je ziet ook dat ik de latch enable puls enige tijd na de laatste bitclock puls activeer. Dit heeft als reden om de effecten van de bitclock veroorzaakte groundbounce tot rust te laten komen en de digitaal analoog conversie op een stil moment te laten plaats vinden.

De bitclock is maar een kwart van de tijd actief zoals is te zien. Dit komt omdat het ontvangen I2S signaal een zgn. framelengte van 64 bits heeft. Bij I2S worden via 1 datalijn de 2 stereokanalen achter elkaar verstuurd en is altijd ruimte gereserveerd voor 32 bits audio. Dus 2 kanalen van 32 bits achter elkaar wordt steeds 64 bit framelengte. De TDA1541 stuur ik echter niet aan in I2S mode maar simultaneous mode, waarbij er per kanaal een aparte data-ingang is. Ik kan dus de 16 audiobits voor beide kanalen tegelijk versturen zodat ik hiervoor maar een kwart van de tijd nodig heb (64/16). De door de bitclock veroorzaakte groundbounce treedt maar een kwart van de tijd op.
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
( ͝° ͜ʖ͡°)

Gebruikersavatar
Barry2001
Algemene moderator
Berichten: 10281
Lid geworden op: zo 22 mar 2009, 16:57
Locatie: Hengelo

Re: AFDAC 1541

Berichtdoor Barry2001 » vr 11 jan 2019, 10:26

Dat heb je snel gefikst in 2 maand tijd, netjes hoor. Denk dat alles bij elkaar de software voor het nixie klokje me zeker een half jaar heeft gekost. Kanttekening daarbij is wel dat ik weinig tot geen programmeerervaring had. Ben zelfs een keer opnieuw begonnen, met netjes en overzichtelijk werken zodat ik zelf ook nog snapte wat ik een maand geleden had gedaan.. en daar (Arduino) vind je uiteraard ook niet opnieuw het wiel uit, door gebruik libraries zoals rtc etc. SW voor VFD IV18 klokje had ik al veel sneller aan de praat.
Het interessante van jou project vind ik de flexibiliteit die je hebt door de poortjes die voor je beschikbaar zijn. En nu nog kun je erin tunen met wat je nog beschikbaar hebt. Heb wel eens mee zitten kijken met een collega die zich met FPGA programmeren bezig houdt, gaat helemaal een wereld open. Is (denk ik) ook niet iets dat je zo even doet, en als het niet nodig is lijkt een CPLD meer voor de hand liggend.
Maar nogmaals gaaf project zo!

Gebruikersavatar
knuisje
Berichten: 3638
Lid geworden op: zo 15 apr 2007, 0:07
Locatie: Julianadorp

Re: AFDAC 1541

Berichtdoor knuisje » vr 11 jan 2019, 10:53

Dank Barry, ik vind jouw klokken ook inspirerend. Ik heb al een nixieklokje (kant en klare kit], maar wil nu helemaal zelf een soort woordklok ontwikkelen.

FPGA is voor de echt complexe ontwerpen die buiten bereik van een CPLD liggen. Maar het principe is in feite hetzelfde.
( ͝° ͜ʖ͡°)

Gebruikersavatar
SSassen
Berichten: 8231
Lid geworden op: vr 22 apr 2005, 10:21
Locatie: Zuidoostbeemster

Re: AFDAC 1541

Berichtdoor SSassen » vr 11 jan 2019, 11:10

@Peter,

Heb je mijn reactie nog gezien of heb je er wellicht overheen gelezen?
Mediocre is not my middle name.

Gebruikersavatar
knuisje
Berichten: 3638
Lid geworden op: zo 15 apr 2007, 0:07
Locatie: Julianadorp

Re: AFDAC 1541

Berichtdoor knuisje » vr 11 jan 2019, 11:24

Ja, had ik al op gereageerd toch?
( ͝° ͜ʖ͡°)

Gebruikersavatar
SSassen
Berichten: 8231
Lid geworden op: vr 22 apr 2005, 10:21
Locatie: Zuidoostbeemster

Re: AFDAC 1541

Berichtdoor SSassen » vr 11 jan 2019, 11:26

knuisje schreef:Ja, had ik al op gereageerd toch?


Excuus, ik zie nu dat je inderdaad al had gereageerd, daar heb ik kennelijk overheen gelezen.
Mediocre is not my middle name.

Gebruikersavatar
Pjotr
Berichten: 21203
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Re: AFDAC 1541

Berichtdoor Pjotr » vr 11 jan 2019, 12:56

knuisje schreef:Dank Barry, ik vind jouw klokken ook inspirerend. Ik heb al een nixieklokje (kant en klare kit], maar wil nu helemaal zelf een soort woordklok ontwikkelen.

FPGA is voor de echt complexe ontwerpen die buiten bereik van een CPLD liggen. Maar het principe is in feite hetzelfde.

Ja, heb net voor de grap eens een Nixieklokje in een CPLD met 64 FF geprakt :D

Een CPLD kun je vergelijken met gewoon ouderwetse TTL logica: Alles klokt tegelijk. Dit in tegenstelling tot een CPU waar elke actie 1 voor 1 afgehandeld wordt en waarvoor je een programma schrijft. Je kunt zelfs een compleet schema tekenen van TTL of CMOS tellers, flip-flops, allerhande poorten, in- en uitgangen enz. De compiler vertaalt dat schema dan naar een identieke logisch formele functionaliteit en de fitter vertaalt dat naar verbindingen in de CPLD die daarmee overeenkomen. En dan is het een kwestie van de CPLD programmeren, net als met een EPROM.

Het leuke is nu dat je i.p.v. een schema te tekenen ook de functionaliteit kunt opschrijven met booleaanse vergelijkingen. Dat is in feite wat je met een hardware beschrijvingstaal zoals o.a. VHDL doet. Maar zo'n taal is veel krachtiger, je kunt tellers, sommators en andere complexere funties in 1x opschrijven. Een 4 bits teller genaamd "count" wordt dan: count = count +1 om vooruit te tellen en count = count -1 om achteruit te tellen. Je hoeft dus niet alles in FF's en poorten uit te werken.

FPGA's is een afsplitsing van PLD's. De eerste PLD bevatten hooguit 8 FF's en wat poorten. Voor een beetje logica had je nog steeds een flinke euro kaart vol. Op een gegeven moment bedacht men dat FF's ook uit een verzameling poorten bestaat. Men is toen chips gaan ontwikkelen waarop alleen maar poorten zitten. Die FF maakt de compiler dan we voor je. Voordeel is dat dit repeterende patronen zijn die je makkelijk door een computer kunt laten tekenen. Je kunt er dus heel, heel, heel veel op één chip zetten. Met één moderne FPGA bouw je een complete a-synchrone USB 2.0 audio interface met S/PDIF en I2S uit. Nadeel is dat de timing van de gegenereerde logica qua timing niet meer vast ligt. Dat is bij een CPLD wel zo. CPLD's kunnen dan ook veel sneller zijn. Meestal gebruik je een CPLD als het echt snel moet en de timing kritisch is, zoals b.v. een PC bus interface. FPGA's gebruik je meer als het ontwerp heel uitgebreid is maar niet zo snel hoeft. Met een FPGA kun je een hele ARM core processor inbouwen in je ontwerp. Zijn complete libraries voor.
Peter de Jong

MarcelvdG
Berichten: 714
Lid geworden op: do 31 jan 2013, 21:47
Locatie: Haarlem

Re: AFDAC 1541

Berichtdoor MarcelvdG » vr 11 jan 2019, 19:11

Ik ben niet goed op de hoogte van de geschiedenis van FPGA's, maar moderne FPGA's bevatten zeker niet alleen maar losse poorten. Op een Spartan 6 XC6SLX75 zitten bijvoorbeeld 132 parallelle vermenigvuldigers van 18 bij 18 bits met een 48 bits accumulator erachter. Ze kunnen alle 132 per seconde een paar honderd miljoen vermenigvuldigingen uitvoeren.

Gebruikersavatar
Pjotr
Berichten: 21203
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Re: AFDAC 1541

Berichtdoor Pjotr » vr 11 jan 2019, 19:35

Ja, dat klopt. Toen die FPGA's zo groot werden dat je er een complete MCU in kwijt kon kwamen er ook steeds meer high level functies bij zoals geheugenblokken en multipliers. Maar ook PLL en dat soort functies. Eigenlijk zie je ook steeds meer een soort mix van CPLD's en FPGA's ontstaan. Dat terrein is een specialisatie op zich geworden de laatste jaren.

Dit soort componenten maken b.v. ook de goedkope digitale oscilloscopes mogelijk. Dacht dat het grootste gedeelte van de logica van een 1 GS/s RIGOL in 2 Spartan FPGA's en nog wat snel extern geheugen zit gebakken.
Peter de Jong


Terug naar “Bronnen”

Wie is er online

Gebruikers op dit forum: CCBot en 1 gast