Sida 1 av 1

Mjukvarudefinierad klass D audioförstärkare?

Postat: 18 november 2017, 15:12:28
av arvidb
Jag har länge haft en idé om att bygga egna högtalare och "bi-ampa" dem (d.v.s. köra aktivt delningsfilter på lågnivåsidan och sedan två förstärkarkanaler per högtalare). Så länge att detta med klass D har hunnit utvecklas rejält under tiden. :)

Efter att ha läst på lite så tycker jag att klass D-förstärkare borde vara en utmärkt sak att ta fram som ett open source-projekt, för det är ju till stor del mjukvara/algoritmer! Ta till exempel en STM32H743ZI, finns som utvecklingskort för typ €20 vilket lillahuset tipsade om här. Den har som sagt FPU med dubbel precision, DSP, 2M FLASH, 1M RAM, och även 17 st 16-bitars timers, 3 st I2S-kompatibla SPIs, 4 st "serial audio interface", 1x SPDIF-RX, ...

Alltså: gott om interface för att ta emot digitala audiosignaler, all processorkraft som krävs för att köra biquad-filter för t.ex. digitala delningsfilter, mixning, RAM så det räcker för någon sekund totalt delay (för synkning av olika kanaler), och även (troligtvis, med tanke på alla timers) gott om PWM-utgångar för att driva 8 st bryggkopplade klass D-slutsteg. (Nu vill man nog iofs köra pulse density modulation eller liknande snarare än PWM, men 8 kanaler 200 kHz PDM borde väl gå att få till i mjukvara på en cpu som kör i 400 MHz? Hmm, kanske på gränsen iofs om det ska hinnas med ett antal biquads också...)

För €6.41 på Mouser så får man sedan en STA516BE som är just ett klass D-slutsteg med två kompletta H-bryggor (MOSFET-drivare och MOSFETs) - d.v.s. två bryggkopplade ljudkanaler på ca 70 W styck (med rimlig THD; databladet påstår 2x200 W men det är med 10 % THD. :roll: )

Man skulle kunna göra moduler med STA516BE och hänga på så många kanaler som man behöver. (Vill man sedan använda feedback så blir det ju lite mer komplicerat iofs...)

I alla fall: någon borde ta tag i detta med en mjukvarudefinierad klass D-förstärkare. ;)

Re: Mjukvarudefinierad klass D audioförstärkare?

Postat: 18 november 2017, 17:28:22
av arvidb
Lite inspiration/"prior art": Microcontroller Class D Amplifier som visar vad man kan göra med en ATtiny45 och ett par diskreta MOSFETs.

Re: Mjukvarudefinierad klass D audioförstärkare?

Postat: 22 november 2017, 19:30:29
av arvidb
Detta är typisk filtrering på utgången enligt databladet för STA516B (detta filter ska väl ta bort så mycket som möjligt av switchfrekvenserna, typiskt över 200-300 kHz nånting):
STA516B-output-filtering.png
Är det någon som kan tyda vad följande olika delar är till för mer specifikt?

1) C52, R63
2) L18, C20, R98, C99
3) C23

Framförallt, vad kan det tänkas krävas för effekttålighet på R63 och R98/R100?

Re: Mjukvarudefinierad klass D audioförstärkare?

Postat: 23 november 2017, 00:21:28
av Gizmo
1) Gissar jag är nått filter.
Funderar mer på ditt projekt. Det som vore extra spännande vore ju om man kunde använda processorn för att göra både delningsfilter (till ett två, eller trevägs högtalarsystem), men framför allt om man kunde köra EQ i processorn också för att kunna dämpa vissa frekvenser. Lokaler, respektive rum har vissa resonansfrekvenser som man gärna vill få bort och det kan vara trevligt att kunna göra digitalt.

Den enkla varianten vore ju att köra bara lågpassfilter, och så använda konstruktionen enbart för att driva basen, då det är där 90% av all energi går åt, dvs det är där man kan göra mest energivinst på att köra klass D.

Re: Mjukvarudefinierad klass D audioförstärkare?

Postat: 23 november 2017, 00:32:23
av ahlsten
Och lägga in ingång för en kondensatormikrofon att placera i rummet för automagihjälp med EQ i alla olika biampade högtalarelement? :>

Re: Mjukvarudefinierad klass D audioförstärkare?

Postat: 23 november 2017, 00:43:01
av arvidb
Ja precis, man kunde skapa "filterblock" i mjukvara och slänga på lite vad som helst. Och med tiden göra det bättre och bättre, om det var ett open source-projekt. Ta emot PDM från en mikrofon = ett block. Klass D-modulering = ett block (eller flera olika att välja mellan beroende på vilket slags modulering man vill ha?). EQ = ett block. O.s.v.

Edit: kul att märka lite samma entusiasm över möjligheterna som jag kände. :)

Re: Mjukvarudefinierad klass D audioförstärkare?

Postat: 26 november 2017, 19:31:30
av maDa
STA339BW som används i diverse Sonos-prylar har inbyggd DSP och tar emot PCM direkt via I2S.

Re: Mjukvarudefinierad klass D audioförstärkare?

Postat: 27 november 2017, 08:34:23
av superx
Kul idé! Jag har också funderat lite i liknande banor. Ingen direkt ambition om att göra något konkret dock.

Som jag förstått det är det ganska knepigt att bygga en diskret lösning själv som är helt mjukvarubaserad (och saknar analog återkoppling). Algoritmdelen är inte så knepig, men för att få bra prestanda för höga frekvenser så blir timing otroligt kritisk för switchningen. Det ställer stora krav på layout, strökapacitanser och transistorers parametrar etc. Av den anledningen är många lyckade lösningar analoga med återkoppling.

Det finns även heldigitala lösningar men jag har fått för mig att de ofta är helt integrerade och/eller låg effekt.

Jag kan mycket väl ha fel men detta är min minnesbild av läget från när jag funderade på problemet för något år sedan.