USB-äänikortin suunnittelu

[size=150]1. Johdanto[/size]

Tässä artikkelissa käydään läpi omia kokemuksiani suunnitellessani USB-väyläistä äänikorttia, jota myöhemmin kutsutaan yksinkertaisesti USBDAC:ksi. DAC tulee sanoista Digital-to-Analog Converter, koska äänikortissa digitaalinen ääntä edustava data muutetaan sitä vastaavaksi analogiseksi jännitteeksi.

Oma laitteeni perustuu löyhästi PCM2706:n datalehden referenssisuunnitelmiin. En tässä käy läpi sen toimintaa niinkään teknisesti, vaan lähinnä vain omia kokemuksiani. Tarkoituksena on pitää myös asiaa tuntemattomat kiinnostuneina ja hahmottaa elektroniikkasuunnittelusta kiinnostuneita miten yksi toimiva tuote syntyy vain montaa epäonnistunutta prototyyppiä kohti. :wink:

[size=150]2. PCM2706[/size]

Kerrataan ensin illan pääosan esittäjän taustat. PCM2706 on USB 1.1-spesifikaation täyttävä USB-oheislaite, joka toteuttaa USB audiolaiteluokan. Tämä tarkoittaa sitä, että kytkettäessä PCM2706 USB-väylään, käyttöjärjestelmä tietää että kyseessä on standardin mukainen äänilaite, ja osaa ottaa sen käyttöön ilman valmistajan toimittamaa erillisajuria.

PCM2706:n on suunnitellut Burr-Brown, mutta Texas Instrumentsin ostettua BB:n, sitä valmistaa nykyään TI. PCM2706 on 16-bittinen ja tukee 48 kHz:n näytteistystaajuutta. Siinä on sisäänrakennettu kuulokevahvistin ja digitaalinen S/PDIF ulostulo esim. kotiteatterivahvistimille. Kuulokevahvistimen tyypillinen antoteho on kohtuulliset 175 milliwattia (0,175W). PCM2706:tta saa käyttäjäystävällisessä, käsin juotettavassa 32-pinnisessä TQFP-paketissa. PCM2706 sisältää tarvittavan 3,3-volttisen regulaattorin joten se ei käytännössä tarvitse kaverikseen muita kuin passiivisia komponentteja.

Tarkemmat yksityiskohdat ja datalehden löydät PCM2706:n tietosivulta TI:n kotisivuilla.

Yksittäiskappaleina ostettuina PCM2706 maksaa Digi-Keyllä noin 8,4 euroa (ALV 0%), joten se ei ole kovin halpa. Volyymissä ostettuna hinta toki tippuu, mutta harrastelijan kannattaa turvautua mieluummin Texas Instrumentsin mainioon näytetoimitukseen. Pari kappaletta 2706-näytteitä tulee ameriikasta parhaillaan alle viikossa ja TI maksaa viulut (myös tullit ja verot jos niitä koituu maksettavaksi).

Seuraa pieni moraalinen huomautus elektroniikkaharrastelijayhteisön puolesta: älä tilaa näytteitä turhaan. Jos sinulla ei ole aikomustakaan tehdä tilaamillasi piireillä mitään, älä tilaa niitä. Valmistajat jakavat avokätisesti näytteitä, mutta jos palvelua ruvetaan käyttämään härskisti hyväksi, he saattavat lopettaa koko palvelun. Näin on menneisyydessä käynyt joidenkin pienempien puolejohdevalmistajien kanssa.

[size=150]3. Epäonnistumisten galleria[/size]

Tässä kappaleessa käydään läpi kaikki revisiot ensimmäisestä viimeiseen. Näet, että tehdäksesi yhden toimivan laitteen, sinun täytyy tehdä ainakin pari viallista. :slight_smile:

[size=130]3.1 Prototyyppirevisio A[/size]

rev_a_onlypcb.jpg
Prototyyppi A oli käytännössä 1:1 datalehdestä kopioitu. Paitsi että olin tehnyt ainakin viisi virhettä jotka aiheuttivat sen, että edes useilla hyppylangoilla ja johtimien katkaisulla en sitä saanut toimimaan. Laite jumittui loputtomaan USB-enumerointitilaan jonka ilmeni Windowsin “uusi laite löydetty”-pimputuksen toistumisena ad infinitum. Luultavasti PCM2706 oli hajonnut koska esim. sen itse reguloimiin 3,3-volttisiin linjoihin syötettiin USB:n 5 volttia. Lisäksi ylös-/alasvetoja puuttui ja sokerina pohjalla digitaalitulot oli kokonaan pimeinä koska ne oli konfiguroitu väärin (em. ylös-/alasvedot).

Piirilevysuunnittelun puolesta tässä ei ole noudatettu juuri mitään sääntöjä, eikä esimerkiksi yläpuolelle ole laitettu edes maakaatoa. Levy on suunnittelun puolesta käytännössä yksipuoleinen, koko alapuoli on yhtä yhtenäistä maatasoa.

Tämän levyn kasaaminen oli myös ensimmäinen kerta kun juotin pintaliitoskomponentteja isommissa määrin, ja työn laatu on sen mukaista. Kaikki pienet vastukset ja konkat on 1206-kokoisia. Isommilla elkoilla oli väärä footprint, joten niiden jalat piti taivuttaa alas että ne sai ylipäänsä juotettua paikalleen.

rev_a_populated.jpg

[size=130]3.2 Prototyyppirevisio B[/size]

rev_b_onlypcb.jpg

B-versio oli jo huomattavasti hiotumpi. Poistin kaikki A-versiossa huomaamani ongelmat ja kävin piirilevysuunnitelman ja kytkentäkaavion huolellisesti läpi pariin kertaan ennen tilaamista. A-versio meni suoraan tarkistamassa tilaukseen joka oli tietysti täysin typerää. Kokemus opetti sen.

Beta ei toiminut tietenkään kertalaakista. Pari virhettä oli tähänkin suunnitelmaan päätynyt. Laitteen VDD (3,3V) ei taaskaan ollut sama asia kuin USB VBUS (5,0V) joten katkaisin vedon. Lisäksi USB D+ -linjan ylösvetoon olin piirtänyt 1 megaohmin vastuksen kun oikea oli 1,5 kilo-ohmia. Nämä sain onneksi ratkaistua katkaisemalla yhden vedon ja lisäämällä kaksi hyppylankaa. Laite oli kuitenkin jumittunut enumeraatiolimboon kuten versio A:kin. Päättelin että PCM2706 oli taas hajonnut sen käyttöjännitteen pakottamisesta yli sallitun suurimman potentiaalin. Kasasin toisen levyn ja tein em. muutokset ennen USB-johdon kytkemistä. Laite tunnistui heti. Onnistumisen tunne oli huumaava kun skoopin ruudulla pomppi signaali analogitulosta mitattuna.

Kasasin nopeasti analogiapuolen lähtöasteen ja juotin paikalleen myös nyt piirilevyltä löytyvän 3,5-millisen kuulokeliittimen. Kuulokkeiden kytkemisen jälkeen tein kaksi havaintoa; kuulokevahvistin on todella tehokas. Nappikuulokkeilla (Sennheiser CX-300) Windowsin mikserin äänitason pitää olla 1/100, ettei kuulokkeet huuda liian kovaa. Isommilla kuulokkeilla (Beyerdynamic DT331) riittää tasoksi 5-10/100. Toinen havainto oli, että basso oli täysin olematonta. Muuten yläalueen ja keskialueen äänet toistuivat oikein kivasti. Lähdin selvittämään basso-ongelmaa tutkimalla kytkentäkaaviota. Vika löytyi melko nopeasti.


Lähtöasteessa on RC-tyyppinen ylipäästösuodatin jossa on 100 mikrofaradin elko ja 3,3 kilo-ohmin vastus. Ylipäästötaajuus on n. 0,5 hertsiä, eli käytännössä rajoitetaan vain tasajännitteen pääsy pois kuulokkeita vaurioittamasta. Itse olin kytkentääni jostain syystä määrittänyt 100 μF elkon ja 16 ohmin vastuksen. Näillä ylipäästötaajuudeksi muodostui 100 Hz, eli tuhdeimmat bassotaajuudet leikkaantuvat pois. Tämä oli onneksi nopea fiksi, vaihdoin vastukset oikeiksi ja ääni kuulosti nyt todella hyvältä. Tässä hyvässä saundissa oli ehkä 25% onnistumisen tunnetta, mutta seuraavina päivinä kuuntelin B-prototyypillä töissä musiikkia kymmenisen tuntia eikä sointi siitä huonontunut. Referenssinä töissä on työkoneen integroitu Realtek HD-äänipiiri ja Edirol MA-10A kaiuttimien kuulokevahvistin jolle oma viritykseni ei hävinnyt äänessä yhtään. Päin vastoin, korkeammat taajuudet tuntivat olevan paremmin hallittuja. Kuulokkeina testissä oli Beyerdynamic DT331.

Yksi ongelma ongelma oli myös tässä suunnitelmassa, nimittäin kuulokelähdön kanavat olivat väärin päin. Tämä ei musiikkia kuunnellessa käyttöä haittaa, mutta se pitää tietysti seuraavaan revisioon korjata.

[size=130]3.3 Revisio C – kolmas kerta toden sanoo[/size]

Kolmatta versiota työstin kaikessa rauhassa koska kiirettä onnistumiseen ei enää ollut. Aloitin kytkentäkaavion suunnittelun syyskuussa 2011. Piirsin piirilevyn yhtenä sunnuntaisena krapula-aamuna kertaistumalta lokakuussa 2011 ja korjailin sitä sitten tarpeen vaatiessa seuraavien kuukausien aikana.


Piirilevy on taas käytännössä yksipuoleinen jossa alapuoli on 100% maataso. Olen nyt kiinnittänyt huomiota mm. vetojen leveyksiin, kellosignaalivedon pituuden minimointiin ja maadoituksiin. Maadoitus on kokonaan tähtityyppinen, eli jokainen maapiste viedään vialla maatasoon eikä niitä yhdistellä ylätasolla ollenkaan. Piirin kellosignaalia ei enää tuoteta kristallin ja sarjakapasitanssikondensaattorien avulla vaan levyllä on paikka kello-oskillaattorille. Tällä hetkellä olen laittanut normaalia kristallia vastaavan XO:n paikalle mutta tulevaisuudessa on tarkoitus kokeilla myös miltä TCXO (Temperature-Compensated Xtal (Crystal) Oscillator, lämpötilakompensoitu kristallioskillaattori) kuulostaa. Levyllä on myös paikka 128-tavuiselle I2C-EEPROM:lle josta on tarkoitus napata laitteelle uniikit USB-tunnistautumistiedot. Vakiona laite tunnistuu nimellä “USB Audio DAC”, mutta tämän voi em. EEPROM:n avulla vaihtaa haluamakseen.

Suurempana muutoksena tässä versiossa on myös, että olen suunnitellut levyn sopimaan valmiiseen koteloon. Kotelona on Hammondin valmistama 1551S, joka on pieni, 50x50-millinen. Sain kotelon käsiini vasta maaliskuussa 2012 ja vaikka levy on suunniteltu 10/2011, se sopi täydellisesti paikalleen.


Piirilevyn kasaamisen jälkeen se toimi kerrasta. Laite tunnistui heti ja ääni kuulostaa siltä miltä pitääkin. Ainut ongelma tällä hetkellä on sopivat lähtöasteen elkot, nykyiset Panasonicin alumiiniset ei sovi Hammondin koteloon. Tarkoituksena on laittaa tilalle premiumit, audiokäyttöön suunnitellut Nichiconin Muse F95-sarjan tantaalit joilla äänen pitäisi vielä parantua jonkun verran. Lisäksi EEPROM-identifikaatiomuisti on vielä kokeilematta, mutta moneen kertaan kytkennän tarkistettuani en usko että sen kanssa tulee ongelmaa. Enemmän ongelmia tuottaa varmastikin tuon piirin pieni fyysinen koko. :smiley: Levyllä on “juotosjumpperi” P4 jolla voidaan valita EEPROM (U2) käyttöön.

Tässä vielä revisio C koottuna ja testikäytössä:

[size=150]4. Mietteitä projektin jälkeen[/size]

Aloittaessani tätä projektia minulla ei varsinaisesti ollut juuri mitään kokemusta piirilevysuunnittelusta. Jälki oli sen mukaista. Kokemusta on vuoden aikana kertynyt roimasti, oppiminen tuskin tulee itselläni tällä alueella enää olemaan näin nopeaa.

Päällimmäisenä mieleen on jäänyt se, että ikinä ei saa olla liian kiire tilaamaan piirilevyjä. Osasyynä tähän kiireeseen on infernaalisen pitkät toimitusajat hovitoimittajaltani, ITeadilta, mutta osana on myös oma todella lyhyt keskittymiskyky.

Olen tyytyväinen projektiin. Ainut asia mikä enää askarruttaa on laitteen todellinen suorituskyky. Päästäänkö omassa toteutuksessani valmistajan antamiin tyypillisiin suoritusarvoihin (THD, SNR)? Ylitetäänkö ne? Mikä on kuulokevahvistimen todellinen antoteho? Itselläni ei ole mahdollisuutta näitä mitata joten ne jäävät arvoitukseksi.

Jos olet kiinnostunut hankkimaan itsellesi C-revision mukaisen ORIGOn, laita minulle yksityisviestiä. Voin myydä yksittäiskappaleita tilauksesta tehtynä tai vaikkapa kittinä halukkaille, kuitenkin vasta huhtikuussa henkilökohtaisten kiireiden vuoksi. (Päivitetty 19.3. klo 22:30: Kaikki setit menneet, odotellaan seuraavaa piirilevysatsia. Päivitetty 13.3. klo 9: Kitistä on ollut jonkun verran kiinnostusta, ja ensimmäisen satsin piirilevyjä on vielä muutama jäljellä. Ilmoitan tässä, jos piirilevyt pääsevät loppumaan.)

Kuuntelen mielellään kommentteja kokeneimmilta suunnittelijoilta esim. piirilevysuunnittelustani tai muista aspekteista. Mitä olisi voinut tehdä paremmin? Mitä tein erityisen hyvin? Jos olet vasta-alkaja, toivottavasti tämä artikkeli toi odotuksiasi onnistumisesta lähemmäs todellisuutta.

Pääsit näköjään “hack a day” :hin. Onnea!

Jeh, englanninkielisellä versiolla: entropia.kapsi.fi/blog/2012/03/d … ound-card/ :sunglasses:

Tuo piiri ei taida tukea mikrofoonia? Olisi ihan kiva sinällään tehdä oma USB-äänikortti (kuulokkeille), mutta käytännössä siinä saisi olla myös mikrofooniliitäntä.

Ei tue, mutta sisarmallissa PCM2906B on A/D-muunnin.

Itse odottelen omaa 2706-protolevyä saapuvaksi postiin. Muuten rakenne on melko samanlainen kuin yllä, mutta en laittanut paikkaa eepromille. Sensijaan käytin HID-vaihtoehtoa, eli vedin piuhat mikrokytkimille, joilla äänenvoimakkuutta voi säätää. Lisäksi halusin laittaa liittimet piirilevyn vastakkaisille puolille, mistä tuli joitain topologisia vaikeuksia. Päätin myös käyttää keraameja elkojen sijaan, audiopuolella kun tunnutaan kammoksuvan elektrolyyttejä signaalitiellä. Sitä en tiedä onko kyseessä pelkkää haihattelua, vai onko elkoissa jotain erityisen huonoa isojen toleranssien lisäksi.

Hack a Dayssä kammoiksuivat myös elkoja. Maanantaina tulee toivon mukaan postissa Nichicon Muse F95 tantaalit, joiden ainakin datalehden mukaan pitäisi soveltua musiikkikäyttöön tuoden bassorekisteriin lisää potkua. We’ll see…

P.s. kerrottakoon että tuo HaD-maininta poiki potentiaalisen suunnittelu- ja valmistustyön Amerikasta. Eräs firma valmistaa taustamusiikkilaitteita hienoihin ravintoloihin, boutique-kauppoihin yms. ja he tarvitsisivat kotelon sisälle USB-headeriin asennettavaa 8-kanavaista äänilähdettä. Tänään lähetin tarjouksen menemään, katsotaan johtaako mihinkään…

Kyllä niistä elektrolyyteistä tulee kovasti säröä ja tantaalit ovat varmasti parempi vaihtoehto, jos ei riittävät isoja keraamisia ole saatavana.

Sanoit myyväsi valmista korttia tai kittiä halukkaille, paljonkos sellaselle tulis hintaa, siis käytännössä paljokos osat maksavat?`
Projekti on muutes hyvä oivallus, :smiley: ei ois kylläitelle tullu mieleen. :confused:

40 eurolla saa koko kitin, sis. kotelon ja toimituksen Suomeen. Jos haluat pelkän piirilevyn niin sellaisen saa viidellä eurolla. Tuosta on osien hintaa n. 30 euroa, joista kalleimpana PCM2706 (n. 8,5 euroa), kello-oskillaattori ja kotelo molemmat noin viitosen.

Päivitys 19.3. klo 22:30: Kaikki setit tältä erää loppu!


Now with added Museness! Huomenna pitää töissä isommilla luureilla ottaa vähän totisempi kuuntelusessio, mutta toistaiseksi ihan hyvää lupaa…