DIY Electronic projects
Class D Amplifier - High Quality Power Audio Amplifier - Printable Version

+- DIY Electronic projects (https://forum.yu3ma.net)
+-- Forum: Hifi audio (https://forum.yu3ma.net/forum-3.html)
+--- Forum: Pojačivači snage - Power amps (https://forum.yu3ma.net/forum-16.html)
+--- Thread: Class D Amplifier - High Quality Power Audio Amplifier (/thread-2651.html)



RE: Class D Amplifier - High Quality Power Audio Amplifier - Braca - 10-01-2022

Čestitke i s moje strane!

Ovo u prilogu sam pročitao pre 50 godina...



RE: Class D Amplifier - High Quality Power Audio Amplifier - mikikg - 10-01-2022

Mali off-topic, radi poredjenja, isto A/D i D/A konverteri, brzi sa nekom nižom rezolucijom, isto postoji RX i TX port koji može da posluži za razne stvari, od "radio stanice" do mernog uredjaja, tj. sve što može da se skombinuje sa onim FPGA i BeagleBone Black i to da radi u realnom vremenu čak i modulacije koje još nisu izmišljene jer mehanizam sa I/Q de/modulacijom podržava to sve, može da se generiše bilo kakav signal na bilo kojoj frekvenciji do max predvidjene koje idu na nekim modeili oko 5-6GHz i više dok podržani modulacioni bandwith se kreće oko 50 do 100MHz što posledično povlači užasno zahtevno interno DSP procesiranje koje samo sa FPGA može da se reši ali kada se reši to je "bruka" kako to radi ... 

[Image: attachment.php?aid=38510]

http://websdr.ewi.utwente.nl:8901
Pogledaj na primer kako izgleda "samo" 30MHz širine radio bandwith-a na kratkim talasima (ne može da pobrojiš koliko tu ima radio stanica i različit signala), trenutni radio etar u realnom vremenu, online sdr-radio prijemnik za 0-30MHz, ima wide-band aktivnu antenu koja ide direktno na ulaz A/D konvertera 80MSPS, to dalje do FPGA kockice da "izvuče" samo deo informacija za tebe kao posetioca/slušaoca te jedne frekvencije, u FPGA se za svakog posetioca radi posebno procesiranje jer se tako optimizuje obrada jer se barada sa sumanutom količinom informacija koje stižu sa A/D konvertera, podržava do par hiljada on-line korisnika i tu je 1GBit Ethernet LAN kontroler da to ide na server pa se odatle to strimuje svakom posetiocu te stranice posebno.

[Image: attachment.php?aid=38511]


RE: Class D Amplifier - High Quality Power Audio Amplifier - mikikg - 10-02-2022

Cosmos A/D konverterom je meni interesantan i za SDR prijemnik uz dodatak I/Q miksera i spominjanog Si5351 oscilatora, odprilike ovo kada se prilkjuci na oba ulaz A/D konvertera (I + Q signal) dobije se SDR radio prijemnik za frekvencije 0-30MHz sa 786kHz širine demodulacionog opsega (bandwith) za bilo koju modulaciju i ono najbitnije sa odličnom dinamikom i 24/32bit rezolucijom uzorkovanja.

Isto kao i za audio merenja, moj prethodni 24/192k A/D konverter je imao prag šhuma na oko -110dB i to mi je bio limit, sa novim "niskošumnim" A/D konverterom to bi se poboljšalo za bar 10-15dB i za toliko bi postao "osetljiviji" prijemnik i dodatno bi dobio još 4x veći demodulacioni BW!

Sa dodatnim mikser/oscilatorima mogu da se "premestim" na bilo koju drugu frekvenciju čak i u GHz opsegu a da imam sve ove gore osobine prijemnika Smile

BTW: Ovaj "mali" Class-D DSD-AMP što pravimo (ne sa GaN, to je šlag na tortu) u PRAKSI može da se "čuje" na nekih 1000km na frekvenciji 2.8MHz uz adekvatnu antenu (antena sa jediničnim pojačanjem, malo je teže napraviti antene sa pojačanjem za te frekvencije) i "malo modifikovanim" izlaznim filterom i "malo" modifikovanim modulacijama, CW može sigurno a neke druge mora da probam Smile

BTW2: Ako dobro razumem koncept, u suštini na nosećoj frekvencij 2.8MHz dobiće se amplitudno modulisan signal (AM) i posledično je onda moguće primeniti i još neke izvedene anlogne ili digitalne modulacije signala, na primer DRM signal 10kHz (audio + malo data)
 
[Image: zmsdr-v3-mcu.jpg]


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-02-2022

Ddpd je proban do dsd256 i radi bez problema na 256 x 44100 = 11289600Hz ! Trebalo bi da funkcionise i na bilo kojoj drugoj modulaciji sto kazes samo drugaciji filter, jedini problem je sto na ulazu signal mora biti digitalni jer imamo ulaze sa schmit trigerom. Ja cu se poigrati malo sa rpi DMI i SMI, na par mesta na netu nailazim na to da cak i sa rpi zero w dobijaju tajminge u preciznosti 1ns na gpio preko DMI i SMI sto mi je ekstra jer onda moze direktno pdm modulacija softverski da se odradi recimo neka pesma da se konvertuje u C, tako cu da probam, i da taj program pisan u C prosvira na ddpd direktno preko gpio. Ali nisam jos uvek probao barebone os na rpi, trebace malo vremena dok se ne pripremim za tako nesto. Ako proradi to ce biti senzacija i tek onda ulazim u druge stvari, da se proba CamilaDSP ... itd. Steta sto HQ nije open source, evo upravo slusam Karolinu preko streama u HQ pljeru koji mi konvertuje to u DSD64, da je open source imalo bi se sve zivo moguce u najboljem mogucem i bit perfekt formatu, od mnostva filtera koje ima u sebi, do upsampla, downsampla, konvertera....


RE: Class D Amplifier - High Quality Power Audio Amplifier - mikikg - 10-02-2022

Vidi, postoji problem sa GPIO upravljanjem na Linux a i na RTOS sistemima, pogledaj ovaj oscilogram iz Linux Ubuntu sa real-time (RT) patch-om i 1000_Hz opcijom za kernel gde sam iz programa samo toglovao jedan pin u petlji i to je vrteo sa nekih 2us, medjutim, tačno svakih 1ms se dešava kernel interupt koji preuzima kontrolu i radi neke bitne stvari za OS i koji BLOKIRA izvršavanje tog programa na nekih 10-12us i u tom periodu ne može ništa da se radi sa GPIO!!!

Jedina opcija da se program premesti u kernel-space i da se "umetne" pre ovih sistemskih interapta i da u tom momentu odradiš skup nekih operacija što brže moguće tako što će da napuni neke "streamin buffere" koji se preko internog HW modula serializovano šalju napolje na fizički I/O, na primer preko I2S modula/porta (tako nekako inače radi Audio sub-sistem, u tim interaptima se spremaju/obraduju bufferi).

[Image: attachment.php?aid=38520]


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-02-2022

Miki u barebone modu ne postoji linux kernel, barebone je to sto sam napises u C i to mu je onda kernel! U pravu si, i ja sam probao neke banalne stvari i nisam dobio ni blizu 300 nano sekundi, tu gde je kernel to je izgleda stvarno nemoguce, ali ovako je moguce, treba probati! Cim malo uhvatim vremena i za to moram to da probam. Imamo cak i dostupnu kompletnu dokumentaciju od BCM cpu-a za rpi4 sto je dodatno dobra stvar jer znamo sve registre i periferije za rpi4. Cim nabavim rpi4 koji mi je izgoreo, imacu onda slobodan pi zero za barebone probavanja, sada mi je pi zero u uredjaju a ne mogu bez muzike jer mi je on kontrolni u uredjaju pa ne mogu da se igram sa njim.

DMA programing -> https://iosoft.blog/2020/05/25/raspberry-pi-dma-programming/
SMI programing -> https://iosoft.blog/2020/07/16/raspberry-pi-smi/

Quote:Software
As the application has to drive the SMI interface and DMA controller, it is written in C, and must run with root privileges (using ‘sudo’). You can find detailed information on SMI here, and DMA here.

In contrast to my other DMA programs, driving WS2812 LEDs is relatively straightforward; it just requires a single block of data to be transmitted, and a single DMA descriptor to transmit it. There is no need for additional DMA pacing, as all the pulse timing is handled by SMI, to a really high accuracy (around 1 nanosecond, according to my measurements).

Pises sam svoj kernel na osnovu BCM dokumentacije a pola je vec uradjeno i ima dosta primera -> https://wiki.osdev.org/Raspberry_Pi_Bare_Bones , dobijes ustvari raspberry pi ne kao neku linux mashinu nego ga dobijes kao neki smart mikrokontroler!


RE: Class D Amplifier - High Quality Power Audio Amplifier - mikikg - 10-02-2022

Previše je to komplikovano i opet su upitni rezultati, cela je poenta da se ne oslanjaš na (tačno) CPU vreme instrukcija da bi kontrolisao GPIO kada postoje već "neki" interni HW moduli koji mogu da te rasterete tog zahtevnog procesiranja, iskreno pre ćeš poterati SPI modul da radi DSD64 modulaciju nego GPIO a tu je i I2S sa kojim može da se ekperimentiše, jedno od ta dva sigurno može da se iskoristi, možda uz dodatak neke logičke kapije ili shift registra ali definitivno je bolje od suve CPU bit-bang kontrole GPIO.


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-02-2022

Vidi ta dva dokumenta gore za DMA i SMI, ima sve vec na hardverskom nivou bez bitbanginga i nezavisno od cpu, BCM ima 32bit tajmer ako se ne varam ili cak 64bit pa dva puta 32bit nisam bas zapamtio, u bcm dokumentu ima kako se radi precizan tajming, samo treba povezati to sve u barebone i odrditi softver kako treba, nema tu puno stvari da se uradi pola je vec uradjeno i dokumentovano.


RE: Class D Amplifier - High Quality Power Audio Amplifier - mikikg - 10-02-2022

Sa DMA i SMI možda je moguce to odraditi, možda čak u user-space, ne mora da se ide na barebone bez kernela, ti moduli mogu da rasterete CPU i da se to nekako na kraju složi.


RE: Class D Amplifier - High Quality Power Audio Amplifier - mikikg - 10-02-2022

Probaću da napravim neke experimente sa DMA i SMI, probao bi jedan banal primer koji bi mnogo toga pokazao, da imam jedan segment memorije dužine 65535 reči (16bit - tolika je "širina" porta, ima 16 I/O linija) zatim da se popuni brojevima od 0 do 65535 i da se preko DMA uveže da čita te lokacije i izbacuje na fizički port.
Ako to radi "lepo i stabilno" onda ima šanse da se napravi direktan DSD64 a možda i DSD2048 izlaz! Smile


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-02-2022

Pokusao sam nesto preko DMA i system tajmera kroz userspace https://datasheets.raspberrypi.com/bcm2711/bcm2711-peripherals.pdf ali kao da mu kernel neda da to odradi, samo mi zaledi test program, verovatno je vec zauzet tajmer za nesto drugo vezano za kernel, ali probam cim oslobodim rpi zw pa cu to probati kroz barebone...

Code:
The System Timer peripheral provides four 32-bit timer channels and a single 64-bit free running counter. Each channel
has an output compare register, which is compared against the 32 least significant bits of the free running counter values.
When the two values match, the system timer peripheral generates a signal to indicate a match for the appropriate
channel. The match signal is then fed into the interrupt controller. The interrupt service routine then reads the output
compare register and adds the appropriate offset for the next timer tick. The free running counter is driven by the timer
clock and stopped whenever the processor is stopped in debug mode.

Sad taj interupt bi trebalo povezati nekako sa SMI i gpio


RE: Class D Amplifier - High Quality Power Audio Amplifier - Dragan100 - 10-02-2022

(10-02-2022, 09:03 AM)mikikg Wrote: BTW2: Ako dobro razumem koncept, u suštini na nosećoj frekvencij 2.8MHz dobiće se amplitudno modulisan signal (AM) i posledično je onda moguće primeniti i još neke izvedene anlogne ili digitalne modulacije signala, na primer DRM signal 10kHz (audio + malo data) 

DSD64 ima najvišu freq od tih 01 ili 10 bitova širine od 315nsec, što nam dodje cca 1590KHz i što mu je najviša freq tih DSD64!
DSD se onda formira u bezbroj kombinacija, 
recimo evo jedna duža promena iz {1-->0} : 100000000, okruglih 10Bit-ova što je širine 3,15usec (bit još uvijek od tih 315nsec širine)
i sad nam je freq 317.500Hz a PWM od cca 10% t_on

To sad mi pokušavamo ustanoviti kako se to čuje direktan DSD64 (ili viši) i kakav mu je THD+Noise 20....20KHz sinus OUT


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-02-2022

Cuje se vrhunski i na dsd256! Samo da jos izmerimo kada dodje Cosmos Smile Verujem da nije iznad -100db thd+n jer nebi se culo tako dobro i sa toliko detalja


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-02-2022

I sad zamisli da se uspe preko rpi da se dobije ajde ne mora u 1ns neka bude i preciznost u 10ns, zamisli sada ovaj most bez kapija direktno sa gpio u bufer pa na most!?

Pa moze i neka minijaturna plocica sa nekim GaN iz Epc serije umesto ovih kapija u mostu a da radi na +5V kao i ovaj koncept


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-02-2022

Kako funkcionise ADC triger ovde? https://www.infineon.com/dgdl/Infineon-AURIX_High_Speed_Pulse_Density_Modulation_Module_Quick-Training-v01_00-EN.pdf?fileId=5546d462766cbe860176900af897063c Mozda upotrebiti slicno nesto za FB? I ovo mi je zanimljivo isto https://www.embedded.com/bit-banging-pulse-density-modulation/


RE: Class D Amplifier - High Quality Power Audio Amplifier - mikikg - 10-02-2022

I2S modul na RPi je tu izgleda jedini pravi modul sa kojim može da se ovo odadi, na RPi postoji 19.2MHz kristal za te Audio potrebe, svi ostali clock/bit-rate koji se dobijaju celobrojnim vrednostima delitelja su izvodljivi i "korektni" (bez dodatnog Jitter-a), postoji clock, data, frame-select, dakle skoro sve isto samo su drugačije predstavljeni semplovi, kao DSD-over-PCM (DoP) samo da se izbegne tamo neki header i da se šalje lepo kontinualan stream nula/jedinica.


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-03-2022

Moram sesti i prouciti tu dokumentaciju pa videti dali ici sa i2s ili ipak ici sa gpio, ne znam dali taj interni njegov i2s moze da se podesi na nesto sto nije pcm, ako ne bude moglo preko i2s onda gledati nesto drugacije, uglavnom to ce da proradi ja to znam Smile


RE: Class D Amplifier - High Quality Power Audio Amplifier - yugaja - 10-03-2022

Kao sto je rekao Miki to prosto mora da ide na dedicated periferiju, pa čak i to nije dovoljno već ta periferija mora da direktno uzima data iz memorije znaci DMA. Ne treba imati ikakve iluzije da može drugačije, a i svakako ne želiš da zarobis MPU da ti toggluje pinove samo , čak i to neće moći da uradi kako treba. Znaci I2S, ili SAI kako ga ko zove, prouči šta može. STM32 sigurno može...


RE: Class D Amplifier - High Quality Power Audio Amplifier - mikikg - 10-03-2022

He he, kada su uspeli da naprave NTSC/PAL color video transmitter tako što su zakačili antenu na I2S-Data-Out + DMA i igrajući se sa modulacionim signalom odprilike "kako god su hteli" (da dobiju jake harmonike na RF da hvata analogni TV)) sigurno je onda izvodljiv i DSD Wink

https://hackaday.com/2016/03/01/color-tv-broadcasts-are-esp8266s-newest-trick/

Pravili su i FM 88-108MHz stereo RDS transmitter isto preko I2S-Data-Out, zakace antenu na pin i "čačkaju" modulaciju kako im je trebalo ...
https://github.com/ChristopheJacquet/PiFmRds

BTW: Kao što @yugaja kaže, neophodno je koristiti interni HW modul za takve stvari, zamisli na primer da moraš da se igraš sa MIPI i CSI/DSI protokolima gde je data rate odprilike 400-2000 MBit/s na pojedinim I/O, nema sporiji clock od nekih 200MHz, samo više od toga i naravno to radi fino preko internog CSI/DSI modula kada se fino izkonfiguriše, uvežu DMA kanali i popune bufferi sa potrebnim informacijama Wink
Pisao sam i kernel drajvere za neke custom ekrane:
https://forum.yu3ma.net/thread-2668.html


RE: Class D Amplifier - High Quality Power Audio Amplifier - savan - 10-03-2022

Pogledajte kako to funkcionise preko SMI https://iosoft.blog/2020/09/29/raspberry-pi-multi-channel-ws2812/ , imamo 18 kanala u prevodu 18 gpiosa koje mozes da kontrolises u isto vreme bez da opterecujes procesor! Ne verujem da njegov interni i2s radi imalo drugacije nego preko SMI samo sto mu je i2s tu interno resen a mi hocemo da to odradimo softverski da mu zadamo sta treba da uradi. I2s je isto nista drugo nego jedan od tih kanala samo sa vec definisanom funkcijom koju obavlja, nebi trebalo da bude ikakave razlike ako podesis SMI da ti odradi to sto hoces na nekom drugom kanalu koji nije definisan kao i2s. Mozda gresim ali pogledacu detaljno bcm dokumenat. Mislim da nece moci da se koristi PCM interface jer nama treba PDM

Quote:In contrast to my other DMA programs, driving WS2812 LEDs is relatively straightforward; it just requires a single block of data to be transmitted, and a single DMA descriptor to transmit it. There is no need for additional DMA pacing, as all the pulse timing is handled by SMI, to a really high accuracy (around 1 nanosecond, according to my measurements).