Sida 3 av 5

Re: Aktiva "digitala" högtalare

Postat: 3 april 2009, 19:01:56
av cyr
Kom på att det kanske inte är direkt uppenbart hur jag tänkt att hela systemet egentligen ska hänga ihop, och en bild säger ju >1kord som bekant:

Bild

Varje grön ruta i bilden motsvarar i princip ett kretskort, även om CPU och DSP-bitarna eventuellt kommer att integreras direk på "FPGA-kortet" i centralenheten. Skulle t.o.m. kunna flyttas in helt i FPGA:n om den är tillräckligt biffig, kanske en Spartan3A-DSP. Just nu lutar det nog mot en Spartan3E/A i QFP-kapsel, som enbart routar signaler kors och tvärs samt hanterar LVDS-snittet ut mot själva högtalarna. CPU:n blir nog AVR32, möjligen en ARM9 och DSP lutar åt en TMS320C674x.

Re: Aktiva "digitala" högtalare

Postat: 4 april 2009, 00:47:21
av blueint
Du kommer att få tidsförskjutning mellan högtalarna.. ;)

Re: Aktiva "digitala" högtalare

Postat: 4 april 2009, 22:39:49
av Andax
10 µs förskjutning eller så... Knappast hela världen...

Re: Aktiva "digitala" högtalare

Postat: 4 april 2009, 23:07:22
av BER
Jag gjorde en kort överslags beräkning också, fick dock en kortare tid än Andax och då antog jag ändå att systemet inte tidskompensera vilket inte skulle vara allt får svårt att implementera.

Men vi säger väll 10 us ändå ... 340 m/s ger 3,4 mm ...

Svalander skulle säkerligen bli upprörd över denna markanta ljudförsämring

Re: Aktiva "digitala" högtalare

Postat: 27 maj 2009, 02:02:36
av CrilleE
Hmm, jag jobbar med att utveckla liknande grejer.
Fast vi kör likström på vanliga högtalarkablar och överlagrar signalen digitalt på samma kablar. Alltså blir det lika många kablar som en vanligt passivt system, eller mindre (man kan ju t.ex. dra en kabel till alla bakkanaler).

Re: Aktiva "digitala" högtalare

Postat: 27 maj 2009, 09:18:12
av cyr
Smart...

Finns ju även varianter som kör signalen överlagrat på 230V.

Re: Aktiva "digitala" högtalare

Postat: 31 maj 2009, 11:45:48
av cyr
Har lyckats lägga några timmar till på det här projektet, och kommit en bit på väg med Verilog-koden.

Jobbar på att faktiskt få fram ljudet hela vägen till förstärkaren, enligt följande:

Dator (USB) PCM2706 (I2S) Spartan3E starterkit (LVDS/Cat5) Mitt lilla FPGA-kort (I2S) TAS5518

Så långt har jag kommit in på starterkitet:

Bild

Det där är 4096 samples av någon Daft Punk-låt :)

Nu ska dessa paketeras i lagom stora paket, på med ett CRC-värde, 8b10b-kodas och iväg över kabeln...

Re: Aktiva "digitala" högtalare

Postat: 1 juni 2009, 18:44:34
av cyr
Jag fortsätter prata med mig själv lite i den här tråden... om inte annat så jag kan komma tillbaka hit om några veckor när jag glömt bort hur det var jag tänkte :)

Angående trafiken över Cat5-kabeln och hur den ska gå till...

Som jag redan skrivit så använder jag LVDS över de fyra paren i kabeln, AC-kopplat i varje ände och med några ESD-skydd men annars direkt kopplat till FPGA:n (som har intern terminering). Jag har nu döpt de fyra paren till CLK, DU, DD och DX (Master-klocka, upstream-data, downstream-data och reserv). Dessutom har jag hittat på den käcka förkortningen Audio Area Network (A2N).

Varje A2N-kedja består av en master och en eller flera slavar. Mastern kan ha flera portar som i så fall bildar separata kedjor. Slavarna har alltid en upstream-port (som kopplas mot mastern) och en downstream-port (som kopplas till nästa slav, om det finns någon). Mastern skickar ut master-klockan och downstream-data, medan den sista slaven i kedjan skickar ut upstream-data. Den sista slaven i kedjan blir tillsagd av mastern att den ska generera paket, hur ofta och hur stora de ska vara. De andra slavarna i kedjan kan också skicka data (både upstream och downstream) men bara genom att modifiera data-paket som passerar förbi.

Data-paketen består av en header och en eller flera "tidsluckor", där tidslucka 0 används för styrdata och resten för audio-data (en tidslucka per kanal).

Audio-datan skickas från mastern och tas emot av de slavar som blivit inställda på att ta emot från just de tidsluckorna, den skickas vidare downstream utan att modifieras. Det är också möjligt att skicka audio upstream, i så fall så fyller en slav i en viss tidslucka som den blivit tilldelad.

Styrdatan tas alltid emot av varje slav och skrivs in i en buffert där processorn behandlar den, och den skickas inte vidare till nästa enhet i kedjan. Istället fylls den tidsluckan med data som processorn skrivit i "utbufferten".

Mastern skickar styrdata till en viss slav i små paket, med en adress-byte som är lika med slavens position i kedjan. När paketet tas emot av processorn i en slav så tittar den på adressen och om den är noll så behandlas paketet lokalt, annars räknas den ner och paketet skickas vidare till nästa enhet. Svar skickas upstream på ungefär samma sätt, fast "adressen" räknas upp i varje steg istället (och börjar på noll), så att mastern vet vem som skickade.

Styrdata är alltså små kommandon i stil med "sätt volymen till -37dB" eller "hur många kanaler har du?" eller "du ska lyssna på tidslucka 5". Väldigt små mängder data allså, så det gör inget att den måste gå via en liten processor i varje slav.

Ujujuj vad mycket text det blev, tar med bilder i nästa inlägg jag lovar :D

Re: Aktiva "digitala" högtalare

Postat: 2 juni 2009, 09:04:50
av JimmyAndersson
"Jag fortsätter prata med mig själv lite i den här tråden..."

Jag följer projektet med stort intresse, trots att jag inte skrivit så mycket. Vem sitter inte tyst och stilla i väntan på ljudafton... :)


Det här med förskjutningen som det pratades lite om tidigare: Skulle man inte kunna stoppa in några delay?
Dvs så att den kanalen som kommer fram sist är "nutid" och kanalerna som kommer fram före denna tid fördröjs.

10µs är då rakt inte mycket, men som jag uppfattade det så är det mellan två högtalare.
Dvs mellan kanal 1 och 2 : 10µs. 1 och 3 : 20µs. 1 och 4 : 30µs osv. Trots att själva tiderna är oerhört korta så blir det ändå en blandning av fördröjningarna som liksom moduleras av rummet (och ifall lyssnaren rör sig, lite som att man kan se blinkningar i PWM-styrda lysdioder som annars inte syns).
Du tror inte att det kan röra till det vid rumskorrigeringen?

Re: Aktiva "digitala" högtalare

Postat: 2 juni 2009, 10:43:06
av cyr
Jag kommer till det lite senare, men tanken är att enheterna ska synkroniseras så att ljudet kan skickas ut från FPGA:n inom några få master-klock-cycler (dvs några hundra ns) från den önskade tiden. Inte direkt för att det behövs så exakt synk mellan enheterna men för att det går :)

Det kommer att finnas en liten buffert i varje enhet ändå (det behövs när samples skickas några åt gången i "burst"), så det är lätt att justera fördröjningen i varje enhet så att man kompenserar för fördröjningen i kedjan.

Re: Aktiva "digitala" högtalare

Postat: 2 juni 2009, 18:07:48
av JimmyAndersson
Aha! Bra feature. :)

Iofs så kanske man borde ha förstått det. Cyr-projekt™ brukar vara väldigt genomtänkta. :D

Re: Aktiva "digitala" högtalare

Postat: 2 juni 2009, 20:31:05
av cyr
Mer genomtänkta än genomförda i allmänhet... :wink:

Re: Aktiva "digitala" högtalare

Postat: 2 juni 2009, 21:02:42
av jonnorberg
10uS motsvarar en distorsion vid 25kHz. Vilket är ej hörbart. Om vi räknar att ljudvågor samverkar inom 90 grader och motverkar varandra över 90grader.

f=1/4t

Vid 20us så börjar det krypa ner i frekvens. 12.5kHz.

Re: Aktiva "digitala" högtalare

Postat: 2 juni 2009, 21:58:19
av psynoise
20 kHz släcks ut helt vid först 25 µs (1/20 ms = 50 µs är periodtiden) dvs vid 180 graders förskjutning. Dock kommer en delay som är mindre dämpa ALLA frekvenser, kolla med miniräknaren cos(0)+cos(0,00001) != 2,00...

Re: Aktiva "digitala" högtalare

Postat: 3 juni 2009, 09:14:30
av jonnorberg
Precis. Dock så blir det ju kamfilter. Delayet är ju alltid någon frekvens hela våglängd, sammverkan. Och någon annans halva, motverkan.