DIY Electronic projects

Full Version: Class D Amplifier - High Quality Power Audio Amplifier
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
(06-23-2022, 07:59 PM)savan Wrote: [ -> ]Malo sam se igrao i napravio sam program za konverziju iz DSD u binarni PDM, ovo je osnova, kasnije moze da se doradjuje za potrebe recimo da umesto sto salje bitove u dsd.log salje nesto drugo. Probacu sutra da emitiram PGM sa 8 samplova, da ih probam grupisati kao u onom dokumentu, a kasnije naravno i u 3 level modulaciju, uglavnom bitove smo dobili Smile

Recording_4_DSD64.dff = DSD64 muzicki fajl
dsd.c = source code
dsd.log = konverzija iz dsd u binarni pdm za oba kanala, trenutno printuje samo levi kanal

Fino si ovo napisao!

Izvini na pitanju, ali koliko godina programiraš u C/C++? Smile
Dugo, od 2010 poceo sa php pa godinama svega po malo, u elektronici od 2018, trudim se Smile Nego u ovo bi mogao i neki plot da se ugradi, recimo libgd pa da odstampa u png/jpg ! AKo bi neko pripomogao oko formule za xy polozaj na osnovu bitova onda bi ja to lako ugradio Smile
(06-24-2022, 11:15 AM)savan Wrote: [ -> ]Dugo, od 2010 poceo sa php pa godinama svega po malo, u elektronici od 2018, trudim se Smile Nego u ovo bi mogao i neki plot da se ugradi, recimo libgd pa da odstampa u png/jpg !

Cool.

Može da se iscrta, bilo bi jasnije šta radi, a može i da se generiše signal, trouglasti je najjesnostavniji i tu se vidi najbolje linearnost, može i sinus ...

PS: Umesto GDlib može da uzmeš RayLib ili OpenCV pa to sve može da iscrtavaš na ekranu interaktivno sa 50+FPS ...
Videcu to jos! Trenutno radim logiku za PGM pa odatle treba da odradim logiku za 3 level modulaciju, malo mi treba pomoci oko formule za izracunavanje procenta za 3LM. Znaci ako je DSD64 u pitanju, njegova frekvencija je 2.8MHz za svaki bit, ako uradim 4 sampla onda je ta frekvencija deli sa 4 to je onda oko ~700KHz, na toj frekvenciji bi se menjao duty cicle za 3LM ?

Recimo imam 4 sampla od 32bit i grupisao sam ih u PGM, moze se videti koliko ima nula a koliko jedinica:

Code:
11010110011010101011011011011010
10110110110101100110110101010110
10110101101011011011011010101011
01010101011101011011011001101101
total_zero: 51, total_one: 77

01011001110101010110111010101100
11100110101011011010101011010111
01101010110101010110100110110101
01011011011010111010101101010101
total_zero: 53, total_one: 75

10011010101101010101101110101101
10101011010101101010110011010110
10110101101101011011010101101101
01011001101101011010101011011011
total_zero: 52, total_one: 76

Kako glasi formula da ovo pretvorimo u procente, recimo 50% : 50% ? Cetiri sampla od 32bit = 4x32 = 128, znaci referenca za nule je pola = 64 i za jedinice pola = 64. Kako da izracunam procenatulano koliko ima jedinica a koliko nula, to bi onda bila 3LM instrukcija za pwm1 i pwm2 ?? Smile Kada je 64:64 onda je to pwm1:pwm2=50:50, kada je 53:75 = ?:? Ista ta formula bi onda bila i za plotovanje
Ustvari ja izgleda gresim, ako svaki bit radi na 2.8MHz onda bi svaki cetvrti bit bio na 2.8/4 MHz ?? Cini mi se da nece ovo biti tako jednostavno pretvoriti u 3LM jer onda moramo u racunicu da ukljucimo frekvenciju,referentni napon pa tako da se duty menja srazmerno na osnovu skupa od 4 bita da bi ovo radilo na 2.8/4 MHz? Recimo max pik je ref_max = +1V ili negativni pik_max = -1V, sad tu treba racunica vreme/frekvencija/napon, znam samo da kada je total_zero=128 pik je na -1V , ajmo matematicari pomazite Smile
Ako je 64 : 64=50% : 50%, koliko je:

53:75=pwm1:50
pwm1=(53x50)/75
pwm1=35.33%

53:75=50:pwm2
pwm2=(75x50)/53
pwm2=70.75%

Ne mogu da skontam formulu za izracunavanje nikako, zasto 35.33+70.75 nije jednako 100% ?
53 : 75 = (53/128) : (75/128) = 41,4% : 58,6%
Nisam siguran da ima smisla menjati duty cycle na 1/700khz necemu što ima osnovnu frekvenciju 300-400khz. Sta je tu modulacija, a sta nosilac?
Ne znam, D class radi sasvim ok sa analognim signalom - to D nema puno veze sa digital.
Hehe, naravno da ne može da se updejtuje brže nego nosilac, zato sam dao predlog da prekidačka frekvencija bude tačno 192kHz ili 384kHz i da se tom maksimalnom brzinom postavlja PWM, praktično od ciklusa do ciklusa, ono sve preko "normalnog" audio opsega će da se integrira u izlaznom filteru pa dokle filter pusti.
To što neće moći preko 16bit (tako fino) da se setuje PWM pri tim nosećim frekvencijama je drugi problem ...

Problematični su ti HR-PWM, on da bi imao 16bit rezoluciji pri 192kHz, MORA interno njegovi brojači da rade sa Clock-om od 192kHz * 16bit = 192kHz * 65536 = 12.58GHz!!! Da 12+GHz ... ajd nadji neki diskretan 16bit brojac za 12GHz pa možda nešto napravimo!? Smile

Onaj TI Piccolo (6.6GHz PWM clock) zbog toga podleže i nekim "export ograničenjima"!
(06-24-2022, 02:43 PM)Dragan100 Wrote: [ -> ]53 : 75 = (53/128) : (75/128) = 41,4% : 58,6%
Opet ne mogu da izracunam. Kako si dobio jedno a kako drugo? Ne radi mi mozak nesto kako treba Sad

Mikikg, znas sta mene zanima, koji je faildown i failup time na gpio? Dali bi moglo da se odradi zadrzavanje HIGH dok traje jedinica ili zadrzavanje LOW tok traje nula? Recimo da gpio povezem na gate od mosfeta i ne koristim pwm uopste i imam polumost. Bolje pitanje, na koliko Hz gpio moze nesmetano i precizno da otvara i zatvara?
Nisam siguran da sam shvatio šta pitaš. Mozda bi neka blok šema pomogla.
U svakom slučaju ne može mcu pin da vozi direktno mosfet, iz mnogo razloga, npr nema dovoljno strujnog kapaciteta, ne možeš dovoljno otvoriti gate sa 3.3v, na tim brzinama i energijama ne možeš ga ni pouzdano zatvoriti samo sa gpio, za high stranu ne vredi ni pisati.. Ukratko za bilo šta što ima smisla potreban je gate driver. I mislim da nije ograničenje za timmingu mcu nego dalje: u driverima, prekidačima i pcb-u.
(06-24-2022, 03:54 PM)savan Wrote: [ -> ]
(06-24-2022, 02:43 PM)Dragan100 Wrote: [ -> ]53 : 75 = (53/128) : (75/128) = 41,4% : 58,6%
Opet ne mogu da izracunam. Kako si dobio jedno a kako drugo? Ne radi mi mozak nesto kako treba Sad

Mikikg, znas sta mene zanima, koji je faildown i failup time na gpio? Dali bi moglo da se odradi zadrzavanje HIGH dok traje jedinica ili zadrzavanje LOW tok traje nula? Recimo da gpio povezem na gate od mosfeta i ne koristim pwm uopste i imam polumost. Bolje pitanje, na koliko Hz gpio moze nesmetano i precizno da otvara i zatvara?

Sa grupisanjem PGM 4x32bita dobivaš tih 128bita, onda razmerje grupe same imaš 53 nula i 75 jedinica.
To želiš da pretvoriš u procente, 
prije imaš osnovu od 128 koje hočeš pretvoriti u osnovu od 100 (per-cent):

53/128 *100% = tih 41,4% imaš prisutnost nula, dok za jedinice odradiš slično!
-------------------------------------------------------------------------------------------

Komplimentarno razdvajanje u Qhigh i Qlow sa brzim kapijama 74LVC1G99, Iso driverima(ovi mogu raditi i kao translatori 3,3V<-->5V) i modulima LMG3411xxx
mogu raditi na 1,4MHz pa bi bilo dovoljno da grupiraš dva 32bit stringa,
čak i direktni PCM @ 2,8MHz valjalo bi probati...
Mozda bi imalo smisla probati koncept prvo na slusalicama, tj na manjoj snazi sa jeftinim komponentama. Čak obični logic gates bi uradili posao. Desetine ampera i volti i megaherca nose svoje probleme..
Yugaja ja to pricam onako uprosceno i ne bukvalno, nemam to iskustvo niti znanje da bi mogao u detalj tacno i precizno da pitam/pisem nego ono vise onako neiskusno, bitno je da neko skonta o cemu razmisljam i da na osnovu toga isplivaju ideje! Hvala Dragane! Upravo to mi je u glavi! Mi vec imamo odradjen koncept (kapije, iso, mosfet driver, protekcije, ganFET, izolovano napajanje... itd), fali nam samo "to nesto" tj ulazni signal koji ce da prodje kroz komplementarno razdvajanje i fali nam fidbek. Malo ja jos uvek ne shvatam neke stvari ali nadam se da sam na dobrom putu? Voleo bi kada bi mi neko dao ideju ili bar da mi kaze dali ova moja ideja ima smisla. Kontam da razumete sta mi se mota po glavi i kako ja to zamisljam da uradim, mislim da sam dovoljno postavio i glupih pitanja a i kojekakvih drugih, nemam iskustva niti dovoljno znanja jer ovo pravim prvi put i prvi put se susrecem sa tim, takodje bi trebalo da razumete da mi treba malo vise vremena da bi shvatio i da mi skoro pa treba i nacrtati slikovito neke stvari da bi razumeo, tako da slobodno ako nesto lupim ili priupitam a nema veze sa vezom slobodno me ispravite necu se ja ljutiti! Smile Moje vijuge drugacije rade baz zato sto nemam iskustva ali morate priznati da i ovo sto sam neiskusno izneo ima nekog smisla i moglo bi da se uradi? Samo mi treba smernica. Imam nekog drugog iskustva ako nista drugo, pa mozemo iskombinovati! Eto napravio sam konverter za dsd to pdm citajuci onaj pdf fajl. I mogu se potruditi jos vise!

Znas sta me jos zanima? Dali bi mogli direktno sa PGM da poteramo te jedinice i nule preko recimo gpio direktno na ovo komplementaro razdvajanje? Zato sam ja i pitao koji je faildown i failup time na gpio, na primer ako je to reda u nano sekundama mozda bi onda mogli i tako bez potrebe za pwm
To jeste reda nanosekunda možes da toglujes pin u desetinama megaherca. Ali ostatak hardwera: h Bridge/ half Bridge šta god i ostalo to ne može da isprati, ili praktično ne može.
Mislim taj koncept power dsd dac-a je sasvim na mestu, ali je za nivo snage koji bi nam trebao za kućno slusanje praktično neizvodljiv sa sadašnjim stanjem tehnologije, ili neopravdano skup/komplikovan.
Msm to je moje mišljenje mozda grešim tj voleo bih da grešim.
(06-24-2022, 04:45 PM)yugaja Wrote: [ -> ]Mozda bi imalo smisla probati koncept prvo na slusalicama, tj na manjoj snazi sa jeftinim komponentama. Čak obični logic gates bi uradili posao. Desetine ampera i volti i megaherca nose svoje probleme..

To je vec uradjeno tj tako radi ovaj DSD dac iz atacmenta! Odatle je i potekla ova moja ideja ! Slicno tome umesto tih kapija i otpornika ovde bi bila ova komplementarna razdvajanja, ono sto je Dragan vec rekao. Samo ja jos to ne razumem bas najbolje taj deo gde je analogija tj taj H most. Recimo imamo dobijen PDM, pa verovatno moze lako i PGM, kao sto Dragan kaze trebalo bi dva sampla uraditi, ok, sta dalje? Meni nije problem da dodam po koju logiku u program samo treba neko da mi da ideju ili da mi da smernicu sta da uradim. Nama fakticki ne treba 3 level modulacija jer imamo ta komlementarna razdvajanja i ono sve ostalo? Znaci dovoljno bi bilo high i low preko gpio?? Mozda cak direktno sa PDM na gpio jer vec imamo 1=high, 0=low?
Ja na poslu negde imam evk za neki mastergan od ST. Mozda ovaj https://www.st.com/en/power-management/mastergan1.html
To bi trebao da je h Bridge sa 600v swichevima i drajverima integrisan u single package.
Nadam se da ću preko leta imati više vremena pa da probam nešto praktično.
Ovo sto smo Dragan i ja crtali tu su birane komponente ultra brze, ako ne gresim mislim da je sve skupa reda 50 nS ?? Dragan bi to mogao precizno da kaze
Pa po blok semi može i direktno. 😊 Ali o5 kažem praktično to neće raditi tj teško je napraviti. Evo npr izlazni filter bi morao da se bori sa velikom energijom na visokim frekvencijama. Ovo je sad glasno razmišljanje, ali ta povorka impulsa bi trebala da je rezultat noise sharpeninga, što će reći puno energije koju treba skloniti filterom na pogrešnom mestu (prvo sve pojačamo, pa onda treba da je uklonimo)
Plus ako taj postupak filtriranja posmatramo iz ugla rf-a, pošto na tim ucestanostima to i jeste RF, običan filter je reflektivnog tipa. Sve što ne propusti i neželjeno potroši u sebi, vraća ka izvoru remeteci oblike napona i struje.. Djavo je u detaljima, ne kažem da ne može, skro sve može, ali treba biti oprezan
Ne znam dali je od pomoci, taj dsd fajl sto sam okacio sa onim dsd2pdm konverterom je vec prosao kroz FIR i kroz noise shaping, ja sam samo pretvorio u taj binarni pdm. Ima i ovde grafova kako funkcionise taj wav to dsd konverter kojim sam konvertovao u dsd pre konvertovanja u pdm https://pcmdsd.com/Software/PCM-DSD_Converter_en.html , znaci taj pdm je vec prosao kroz FIR i kroz noise shaping. Ne znam i kako bi to bilo ako bi nam sigma delta modulator i konverter bio CT7302PL, on u sebi vec ima sve ovo i njegov thd+n=-179db i dinamic range 192db (post 161 slikovito)
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46