Handig zo'n seriele DAC. I2S protocolletje, data erin en een mooi analoog signaal.... Vergeet het maar.
Hoe ik het ook probeer, met welke simulator dan ook, de hoogste 7 bits doen niets. Chip kapot c.q. verkeerd aangesloten, verkeerd protocol??? Maar waarom doen de laagste 9 bits het dan perfect (precies lineair verband tussen digitale en analoge waarde, 2tws compl. omslag bij bit 9)? Mijn stuurprotocol is perfect conform de datasheet.
Iemand een idee?
bvd BenZ
Hadden die dingen niet een eigenaardigheid met het moment waarom de analoge waarde er uit komt, zoals een clockje later dan je het verwacht? Voor audio gebruik is dat geen probleem namelijk omdat je een continue datastream hebt.
Misschien zit zoiets je dwars. Kun je als test dezelfde data er eens twee keer er uit gooien per "sample"? Dan weet je zeker dat de eerste cycle volledig is afgerond.
hoe heb je de uitgang aangesloten ? heb je daar de op-ampschakeling gberuikt die in het datasheet op bladzijde 3 in figuur 1 beschreven staat gebruikt ?
De DAC levert een uitgangsstroom. Tevens gaat de DAC ervan uit dat de spanning op de uitgangspin constant 0 Volt blijft, vandaar de ietwat 'vreemde' opampschakeling.
Volgend probleem: de opamp die voorgeschreven wordt (ne5532) is geen Rail to railk typ, je moet dus de voedingsspanning van de opamp groter maken dan 5 volt, zodat de uitgang van de opamp groot genoeg kan worden.
Dat extra bitje ( na de wisseling van het WS-signaal)is me bekend en, zoals eerder aangegeven, ik hou me precies aan het protocol van de datasheet. Bovendien geef ik voor alle zekerheid dezelfde digitale waarde twee keer achter elkaar en aansluitend door (zoals streamend). En als klap op de vuurpijl L en R complementair.
De analoge uitgangen zijn aangesloten op twee opamps, gevoed met + en - 15V. Zou er vervorming zijn of clippen o.i.d. dan zou ik weten waar te zoeken. Helaas, zo te zien is het zuiver digitaal.
Op 21 februari 2008 21:33:34 schreef alex278:
Heb je al een ander exemplaar geprobeerd?
Nog niet. Er zit niets anders op dan zo'n ding maar weer bestellen....
Dank voor het denken en schrijven.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
juiste clockfrequentie EN timing ?
i2s bitbangen zal niet lukken .....
sommige i2s chips werken met timeout counters. als je bitclock te traag is of je wacht te lang tussen 2 clock pulsen resetten ze zichzelf
tda1543 is vrij robuust in dat opzicht.
http://www-user.tu-chemnitz.de/~heha/Mikrocontroller/TDA1543.htm is wel een aardige site; heb daar ook vandaan dat 't ding zowel 8 als 16-bits bedrijf aan kan.
Mijn klokfrekwentie is 2 kHz (andere frekwenties geven hetzelfde resultaat). Het uitgangsspanningsbereik met 1k2 terugkoppelweerstand van de opamp is 2V voor de 9 bits, dus het hele bereik vlgs de datasheet!
Dat niet precies 16 bits geleverd hoeven te worden is me bekend. Het gaat er om dat bij mij de eerste 7 genegeerd worden in beide kanalen en volgens het I2S-protocol tellen de eerste bits het meest.
Check: heb je een 'foldback' (dus dat je om de 9 bits terugkomt op je oorspronkelijke waarde), of loop je tegen een bovengrens aan? In het eerste geval lijkt het me een communicatieprobleem, in het tweede geval zou ik nog eens kijken naar je I-V-conversie (opamp die vastloopt tegen de voedingsspanning oid).
Op 22 februari 2008 10:43:36 schreef alex278:
Check: heb je een 'foldback' (dus dat je om de 9 bits terugkomt op je oorspronkelijke waarde), of loop je tegen een bovengrens aan? In het eerste geval lijkt het me een communicatieprobleem, in het tweede geval zou ik nog eens kijken naar je I-V-conversie (opamp die vastloopt tegen de voedingsspanning oid).
Als ik een 16 bits teller gebruik als digitale "datafeed" dan zie ik de door jou genoemde foldback. Zoals ik eerder aangaf, bespeur ik niets van enige analoge vervorming, zodat ik het moet zoeken in het digitale deel. Is het de communicatie? Voorzover ik kan nagaan volg ik precies het protocol (ik gebruik een PIC18F4550 voorzien van I2S-protocol als data generator/digitale sturing die gevoed wordt via een serieaansluiting naar een PC), zoals de logic analyzer van de PIC-simulator laat zien. Als er communicatieproblemen zouden zijn verwacht ik die bij de wisseling van het WS-signaal, dus hoogstens geldend voor enkele hoogste bits. Waarom alle 7? En zeer stabiel (reproduceerbaar) en geldend voor beide kanalen.
Zie hier de timing:
Bij nader inzien is mijn kloksignaal niet 100% regelmatig.
Zit het probleem soms hier:
Zijn de plaatjes te zien?
Ik heb ingetikt(voorzien van image openen en sluiten): http://www.circuitsonline.net/images/tda1543timing.jpg
[Bericht gewijzigd door Henry S. op (10%)]
Op 22 februari 2008 11:13:25 schreef BenZ:
Voorzover ik kan nagaan volg ik precies het protocol (ik gebruik een PIC18F4550 voorzien van I2S-protocol als data generator/digitale sturing die gevoed wordt via een serieaansluiting naar een PC),
Doe eens niet. 'n tda1543 gebruikt *geen* i2s, als ik 't goed heb. Ga eens bitbangen door zelf het clocksignaal en WS (plus je data) aan te bieden. Geheid dat het dan wel werkt.
Heb je niet goed:
I2S input format: time multiplexed, two's complement,
TTL.
Op 22 februari 2008 11:29:17 schreef BenZ:
Zijn de plaatjes te zien?
Ik heb ingetikt(voorzien van image openen en sluiten): http://www.circuitsonline.net/images/tda1543timing.jpg
Nee, CO host geen afbeeldingen van gebruikers, zie http://www.circuitsonline.net/forum/faq/2 onder het kopje [img ][/img ]
En lees meteen de hele FAQ want 3 posts onder elkaar is ook niet de bedoeling, gebruik de edit.
- Het protocol van de TDA1543 is I2S volgens de datasheet.
- Mijn signaalniveau is TTL (komt uit de PIC18F4550)
- Of mijn digitale code two's compl. is of niet is nog even van weinig belang (zou alleen het hoogste bit betreffen, mijn probleem bestrijkt 7 bits).
Het signaal is door mijzelf samengesteld (klok 2 kHz, ws om de 16 klokpulsen, datastroom vanaf 2e klokpuls doorlopend naar 1e puls na de ws-wisseling, ws&data wisselend op neergaande flank van klok) en ziet er krek uit als in de datasheet.
Mijn signaal ziet er als volgt uit:
Er is een geringe onregelmatigheid in het kloksignaal te zien. Deze is er uitgehaald, maar dit levert geen verbetering op.
Op 22 februari 2008 21:32:44 schreef BenZ:
Het signaal is door mijzelf samengesteld (klok 2 kHz, ws om de 16 klokpulsen, datastroom vanaf 2e klokpuls doorlopend naar 1e puls na de ws-wisseling, ws&data wisselend op neergaande flank van klok) en ziet er krek uit als in de datasheet.
Kijk dan maar eens wat er gebeurt als je een klokpuls extra invoegt. Drie keer wedden dat 't dan wel werkt?
Op 22 februari 2008 22:05:18 schreef alex278:
[...]Kijk dan maar eens wat er gebeurt als je een klokpuls extra invoegt. Drie keer wedden dat 't dan wel werkt?
Bedoel je 17 opgaande flanken per WS?
Natuurlijk wil ik 't best proberen, maar waarom zou 't werken? Het I2S-protocol is juist flexibel aangaande het aantal bits (en dus het aantal klokpulsen per ws-wisseling).
Nou, dan probeer je 't niet 
Ik heb zelf ook wat met tda1543's zitten prutsen, en 't was nogal wat gedoe om dat aan de praat te krijgen (met ook van dit soort verschijnselen.) Leverde het nodige gepruts op met de plaatsing van WS/data en klok-bits.
Overigens doet de TDA1543 alleen wat op een kloktik, dus ook al heb je een ontzettend onregelmatige klok, dan is er nog niets aan de hand (ik maakte alleen een klok aan op het moment dat ik data uit wilde klokken. Werkte prima.)
[Bericht gewijzigd door alex278 op (31%)]
alex278,
Ik weet niet waar je om wilde wedden, maar je zou verloren hebben: hoeveel bits/klokcycli ik ook toepas ( 10...18) er verandert niets, zoals ook staat in de datasheet.
Mijn laatste redmiddel was een herhalingscyclus gedurende 5 seconden en met een scoop zoeken naar afwijkingen: alles klopte, op het uitgangssignaal na (overeenkomend met een bereik van 9 bits).
Zoals je in mijn tijdsdiagram kunt zien zijn mijn signalen precies zoals voorgeschreven. Ik weet niets beters dan andere IC's aanschaffen.
Bedankt voor het meedenken.
Andere IC's: werken precies zoals het hoort! Oude IC's weer geprobeerd: oude fout. Wat een merkwaardige fout....
Bedankt iedereen!
(Dit bericht is voor anderen die hetzelfde meemaken en voor belangstellenden).
guidob
Overleden
Waren de oude toevallig 1543A types (met nadruk op A)?
[Bericht gewijzigd door Henry S. op (75%)]
Ja, de een heeft een Japans serieel protocol(A) en de ander niet.
[Bericht gewijzigd door Henry S. op (54%)]
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Op 1 oktober 2008 14:20:39 schreef BenZ:
[...]Yep! Is daar iets mee (op beide staat PHILIPS)?
'nough said ...
Donder en bliksem ......., welke idioten bij die lampenboer hebben dit bedacht? OK, OK, ik had beter moeten kijken en jullie de volledige informatie moeten geven.
Bedankt zover, ik ga verder aan de slag.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
TDA1013 is ook zo ene rotding ... daar is een A en een B versie van. bij de b versie zijn er 2 pinnen van plaats gewisseld ! ... resultaat : -Boooom- als je dat onder stroom zet ...