DIY DAC aneb jak by to nemělo vypadat

Moderátor: Moderátoři AVMania.cz

Odeslat příspěvekod xmarek 11. 11. 2012 18:46

Už dříve jsem předeslal, že se chystám si doma postavit svůj vlastní DIY USB DAC. Nyní jsem ve fázi testování a psaní softwaru. Všechny potřebné věci na testování už mám k dispozici a tak mě napadlo, že Vám dám nahlédnout trochu pod pokličku jak se to dá dělat. Berte to spíš jako varování. ;-) A to ze dvou důvodů:
- nikdy by mě nenapadlo kolik problémů se může vyskytnout.
- netušil jsem kolik nového se toho člověk musí naučit zejména k faktu, že nejsem profesí obvodář a ani programátor kontrolérů.

P1100589.JPG
Můj DAC a jeho nedodělaný bráška.

P1100588.JPG
Testovací DAC vs Můj DAC.

P1100585.JPG
Detail zapojeného DACu.

P1100584.JPG
DAC a jeho hodiny.

P1100582.JPG
Testovací zdroj.

P1100581.jpg
Můj DAC in Action.


Rozhodně to neberte, že to narvu do škatule a už to pojede. Výčet nedořešených problémů je velmi obsáhlý. Každopádně nějaký progress už tady je (i když asi ne takový jaký bych si představoval):
- vyrobil jsem si testovací modul, který bude základem výsledného zařízení.
- kontrolér (STM32F4xx) už funguje v režimu Host (tj. přehrává hudbu z flashky).
- veškeré události loguji na display (320x240, color).
- jsem schopen posílat data přes I2S z discovery kitu směrem ven. Bohužel zatím funguje jen jeden kit z ebay-e. Můj DAC sice přehrává hudbu, bohužel mám problémy s interními hodinama a zvuk není úplně ideální. :-S
Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod bogino 11. 11. 2012 19:17

Velmi siroka tema pre jedneho kutila. :)

To spojenie DAC + player, flashka a displej sa mi paci. Co tak urobit DAC, ktory by aj vo finale vedel hrat z flashky?
Linka na moje testy v mojom profile
HQPlayer Desktop ► Gustard DAC-X10 ► SPX2010TA ► HiFiMan HE-500
bogino
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod Odar 11. 11. 2012 19:18

Podla mna je to kontraproduktivne. Je den Hi-Res album ma cca 1 GB. Moc by si ich na flashku nedal.
Odar
Trvalý BAN

Odeslat příspěvekod xmarek 11. 11. 2012 19:27

S discovery Kitem (STM32F4) to není problém, ale ve finále režim host nebude u mého DACu umožněn. Důvodem je zdroj pro device (tj. flashku). Discovery ho obsahuje (je integrovaný na desce) a je schopen detekovat i přepětí a podle toho se zařídit (zkrat atd). Bohužel pájet ho je už nad mé možnosti a o jiné alternativě nevím. A zatím budu rád když vyřeším jiné věci, které mají větší prioritu. ;-) Třeba taková "drobnost", že mi nefunguje USB class 1 a nemluvě o class 2. :-S A raději nezmiňuji to, že to vypadá, že si firma TI vytvořila vlastní standard I2S. :-(
Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod icotech852 11. 11. 2012 19:42

Mne sa paci ze si nam aj obrazovo predstavil svoju dielnicku.A vidim tam aj tvoje Rockity.
Ohladne toho dacu ...tu si ma uz davno predbehol...zjavne ani neviem o com hovoris ^^ raz som programoval simatic ale i tak - klobuk dole.Som rad ze do toho niekto takto vidi.
forsaken...
icotech852
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod xmarek 11. 11. 2012 19:48

Jen tak mimochodem. Kdyby jste hledali HYPA-u tak ta je v té uhledné krabici na pravo na monitoru (KRK RP6). :mrgreen: A ta bílá noha je od lupy. ;-)
Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod bogino 11. 11. 2012 19:54

xmarek píše:A zatím budu rád když vyřeším jiné věci, které mají větší prioritu. ;-)

Jasne ... :) To nebolo z pohladu vyvojara, ale z mojho nezainetresovaneho pouzivatelskeho pohladu. Uvedomil som si, ze taky stolovy DAC nepoznam. Tiez som si uvedomil, ze Ohm711 ma 120 GB flashku vo svojom imode, par albumov sa mu tam zmesti. Takze sa mi to v hlave pospajalo a vznikla z toho otazka. :)
Linka na moje testy v mojom profile
HQPlayer Desktop ► Gustard DAC-X10 ► SPX2010TA ► HiFiMan HE-500
bogino
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod xmarek 11. 11. 2012 20:30

Pro čip STM32F4xx to není problém, ale je trošku problematické samotné využití. Každý v souvislosti s podobnými věcmi automaticky očekává konektor A nebo B. I když pominu tuto věc a dám uživateli (sobě) možnost zařízení (DAC) provozovat v režimu host a device dohromady (autodetekce) tak narážím na jednu drobnou věc a tou je interakce s uživatelem a podpora pro různé formáty. Upřímně čím více v sobě taková věc integruje tím se jednak navyšuje jeho cena (vývoj apod) a hlavně taková univerzální věc pak budí dojem, že umí sice všechno, ale nic pořádně. A mým hlavním cílem je udělat hlavně slušný USB DAC (transport dat z PC). Ze své praxe jsem naučený, že se dá každá věc vylepšovat do nekonečna, ale na začátku si musíte stanovit určité limity a těch se držet.

Rozhodně se nebráním novým nápadům. ;-) Pouze se snažím jednu věc dodělat a pak se pustit do další.

Každopádně můj plán je opravdu velmi bláznivý. Chci si vyrobit DACy (Kity) různých výrobců a zjistit jak hrají a jejich výhody a nevýhody a na závěr vyrobit DAC, který bude z těch všech nejlepší. Pochopitelně velmi sparťanským způsobem. To celé chci svázat s kontrolérem od ST.
Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod lluta 12. 11. 2012 10:58

kdyby si raděj napsal před tím než si dal vyrobit ty desky aspoň na AW tak jsme to tam mohli zkonzultovat... pokud budeš takto divoko drátovat různé DACy a nepřemýšlet nad DPS tak moc kvalitní srovnání neuděláš..

mohl ses taky inspirovat u mě.. hraje mi to na první drc a už pár týdnů si vychutnávám zvuk http://luta.7u.cz/index.php?str=25

ale je fajn, že do toho jdeš s takovým nadšením pro věc :-)

PS: ty jsi uplně oddělil digital a analog země?? se divím že ti ten DAC ještě nezfajroval..takhle se to fakt nedělá
lluta
Kolemjdoucí

Odeslat příspěvekod xmarek 12. 11. 2012 12:25

@lluta: Souhlas. Upřímně vím moc dobře, že je tam hodně věcí k řešení, ale je třeba vzít v potaz, že jsem nikdy tyto věci nedělal a potřeboval jsem se urychleně dokopat k nějakému výsledku. Ta deska je čistě testovací a konečný návrh bych určitě s někým konzultoval. Původně jsem uvažoval, že použiji návrh z pavouka nebo od Dohnalíka, ale nakonec jsem to řešil po svém. Důvodem bylo to, že jsem potřeboval plnou kontrolu na DACem z kontroléru a taky, že jsem se chtěl držet původního schématu a doporučení od TI.
Na to jaké problémy jsem měl, jsem vůbec překvapený, že to aspoň něco dělá a, že se z toho nezakouřilo. Zdroje jsem naštěstí nahazoval zvlášť a dobře jsem udělal páč jsem během toho zrušil jedno LMko.
Co se týče těch zemí tak i když to tak vypadá tak oddělené naštěstí (pro mě) nejsou. Tato věc trošku vyplynula z mé neznalosti a naštěstí při mě stáli všichni svatí a nechtěl jsem pro tyto účely používat zdroj z HYPA-y, který je toho schopen. :-[
Rozhodně tento kit nebude sloužit jako referenční pro nějaké srovnávání kvality DACu. ;-)


Nechci tady moc rozvádět všechny věci, které mám s tím v plánu. Důvod je velmi jednoduchý. Nerad bych se dostal do situace někoho kdo se holedbá tím jaky je machr a přitom skutek utek. A může se lehce stát, že to celé nakonec hodím do kontejneru s konstatováním, že jsem starý nepoučitelný vůl. :mrgreen:

O.T.: Moje životní filozofie je, že je lepší se o něco alespoň pokusit než celý život bečet nad tím, že na to nemám. A i když se to nezdaří, tak si aspoň můžu říct, že jsem to zkusil. ;-)
Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod lluta 12. 11. 2012 12:58

bud tu zem pro jistotu natvrdo propoj na DPS a nebo pokud mas spolecny zdroj tak tam dej aspon antiparalelne smd shottky diodky, ktere omezi rozdil potencialu mezi GND pokud by nejak narost
lluta
Kolemjdoucí

Odeslat příspěvekod xmarek 12. 11. 2012 22:10

Konečně se mi podařilo prolomit období smůly a DAC konečně hraje. :-D Dalo mi to pěknou fušku zjistit, že ta potvora od TI nepodporuje 16bitovou délku pro standardní I2S. Taky si mohli dát práci a někde to v manuálu uvést. :-(

Dopl.: Dokonce se mi podařilo generovat frequenci (MCLK) přes to "moje" malé udělátko tj. AD9850 DDS Signal Generator ovládané EZ-USB FX2LP kitem (HID). :-)

Teď ještě rozchodit to USB v režimu device a mám do Vánoc splněno. 8-)
Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod xmarek 27. 1. 2013 14:34

Tak se mi po dlouhé době podařilo udělat daší progress.
- Transport, který je postavený na základě STM32F4 (discovery nebo jeden čínský kit) už funguje v režimu device a nejenom to. Frequenci generuji AD9850, zatím pouze v režimu Philips I2S
48kHz/16b (výstup 32 bit z důvodu, že DSD1794 podporuje v default pouze 24bit).
- Jsem schopen upravit USB desciptor tak aby "podporoval všechny možné frequence co mě napadají. Bohužel transport zatím funguje v asynchronous class 1.0 (USB full speed) takže i když zobrazím 192kHz tak bych to přes USB neprorval. :-[
- vstupní frequence je zatím jenom 24,576MHz. Později plánuji i druhou pro násobky 44.1KHz.

A teď pro případné zájemce něco za co bych vývojáře STM32 kopnul nejraději do .... Věc která není nikde publikovaná (aspoň já jsem ji nenašel): STM32F4 podporuje dělič I2SDIV nastavit i do režimu 1, byť v manuálu uvádějí, že není 1 a 0 podprována. Už jsem byl rozhodnutý, že koupím krystal 49,152MHz a naštěstí jsem si to rozmyslel. :-\ Proč taková informace? Důvodem je to, že podle této frequence nastaví MCLK (master clock) a SCK (system clock) a když tam hodíte 2 tak máte automaticky na výstupu polovinu.

A teď jak to celé hraje. Vzhledem k tomu, že ten signál generovaný AD9850 trošku ujíždí tak je tam občas trošku patrný jitter. Mám v plánu si koupit nějaké jakostnější krystaly, ale nechtěl jsem to uspěchat. A dobře jsem udělal. :-P Jinak to v porovnání s Benchmarkem hraje slušně. Jak jsem uvedl chtělo by to lepší krystaly, ale i tak jsem s výsledkem velmi spokojen. Celé je to takový amaterský bastl, do toho sondy osciloskopu a propojené to je tak, že by všichni hi-fisté padli na zadek. Raději to ani fotit nebudu páč bych to zase schytal. :mrgreen:
Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod xmarek 15. 6. 2013 12:58

Takže je tady další celkem významný progress. Vyrobil jsem si na koleně další Kit, který mi doufám dopomůže k vysněnému cíli. :) Pochopitelně jsem si za něj schytal kritiku, ale já se nenechám jen tak odradit. :mrgreen:
Obrázek
Jak vidíte celé to heblo obsahuje tři usb (dvě klasické a jedno mini). Ty dvě vedle sebe slouží pro FS a HS (postavený na základě ULPI PHY USB3300), třetí je pro účely logování (CP2102).
Enumerace na všech portech funguje bez problémů. Krystaly tikají jak mají a jejich přepínání je řízeno STM32F407xx (na něm je postavena celá komunikace USB to I2S). Programování čipu je realizováno přes ST-link. Z vyjímkou čipu pro logování je vše napájeno externě.

Co se týče softwaru tak pořád řeším issue s feedbackem (asynchronous isochronous). Už jsem něco vyřešil, ale jelikož jsem nikde nenašel informaci o tom, že by někdo rozjel isochronous IN na STM32F4xx tak nedělám nic jiného jak studuji specifikaci USB pro zde zmíněný kontrolér abych ten jejich framework opravil.

Hrát to už nějak hraje, ale bohužel pořád v "synchronním" modu. A ten je zcela nepoužitelný pro tyto krystaly. Důvodem je to, že DAC očekává časování vůči těm krystalů, ale to USB v současném stavu není schopné zajistit. Takže je to celé zatíženo obrovských jitterem a v podstatě je to neposlouchatelné. Řešením je PLL závěs, který by nepatrně snížil nebo zvýšil frequenci. Touto cestou jít nechci páč by se ty krystaly na desce staly pouhou ozdobou a kvalita zvuku by byla do značné míry závislá na PLL závěsu. Nemluvě o tom, že i DAC by dostával data v poněkud jiných frequencích než pro jaké byl vyrobený.

Obrázek
Zde vidíte jak je to spojené dohromady. Možná si řeknete proč tam jsou ty volně pohozené dráty. Ty jsou připravené na SPI řízení DACu. A zatím jsem je nezapojil. :-[
Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod xmarek 19. 8. 2013 16:56

Po dlouhé době drobný progress. Pořád zápasím s feedbackem u UAC1. Podařilo se mi to trošku rozjet, ale pořád to není ideální. Nicméně u DACu které nepodporují MCLK to hraje kupodivu bez problémů. U mého Custom DACu už to tak nechrčí, ale do dokonalosti to má pořád daleko. :) Zase na druhou stranu budu mít prima zvukovou kartu do práce. :D Pure hifisti by se ze mě asi pos... :mrgreen: Napájené je to celé nějakým silnějším 12V spínaným zdrojem a i když jsem to poslouchal na HD800 nebo K702 tak není nic slyšet. Propojil jsem to s KRKama a taky to hraje pěkně. Do Hi-endu to má pochopitelně daleko, ale žádný brum apod. se nekoná. Na to, že ten DACan patří mezi lowend to opravdu jde.

Upozornění administrátora: Odstraněn podpis odporující pravidlům fóra.
xmarek
Mírně pokročilý
Uživatelský avatar

Další stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků