OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 21:11

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 16 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: SN76489AN - otázky k emulácii
PříspěvekNapsal: 21.03.2015, 23:15 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1403
Has thanked: 130 times
Been thanked: 71 times
Na toto by mi asi najlepšie vedel odpovedať Bohuš.

Ide o to, že nie je problém nasimulovať frekvenciu. Ono je to v podstate to isté ako pri 8253. Akurát, že je tu 16 úrovní hlasitosti, ktoré sa v určitých situáciách dajú využiť ako 4 bitový DA prevodník. Niekde som čítal, že po nastavení hlasitosti sa nastaví výstup na log. 1 a teda sa dá využiť ako DA prevodník. Lenže čo ak je zadaná frekvencia a práve v danej chvíli má byť log. 0? Má to byť teda tak, že po zadaní frekvencie sa začína počítať a výstup sa nastaví na log. 1 a po zmene hlasitosti teda tá log. 1 ostane? Iba treba raz za čas nastaviť frekvenciu?

Mám datasheet, ale musím uznať, že zatiaľ zo všetkých obvodov, ktoré som už začal emulovať, je tento datasheet najslabší. Práve preto mám tieto otázky.

Ďakujem za prípadnú pomoc.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 22.03.2015, 12:50 
Offline
Radil

Registrován: 08.10.2013, 18:00
Příspěvky: 296
Has thanked: 12 times
Been thanked: 228 times
Milsa píše:
Na toto by mi asi najlepšie vedel odpovedať Bohuš.
No tak napiš rovnou mně 8-)

Pro použití jako DA převodník je dobré nastavit dělicí parametr pro frekvenci na 1. Teoreticky by to mělo začít oscilovat na cca 110kHz, tato vysoká frekvence se odstraní na dolní propusti za obvodem, zůstane jen střední hodnota úměrná nastavené hlasitosti. Pak už se mění jenom hlasitost kanálu a tím výstupní napětí. Celkem takto máme 3 kanály (čtvrtý šumový nelze takto snadno použít) na výstupu paralelně, což umožní ještě zvýšit počet možných hodnot. A je to sakra potřeba, hlasitost se nastavuje v logaritmické škále (po 2dB), dát z toho jakous-takous lineární funkci chce trošku počítání a vytvořit si pro použití v programu přepočítavací tabulku.

Vstupem DA převodníku jsou pak 3x4bity, tedy hlasitosti A,B,C v hodnotách 0 až 15, výstup je
U[V]=0,34*( (10^(-A/10)) + (10^(-B/10)) + (10^(-C/10)) )
kde ^ je mocnina a místo hodnoty 15 je potřeba patřičný člen vypustit


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 22.03.2015, 14:17 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1403
Has thanked: 130 times
Been thanked: 71 times
nobomi píše:
Milsa píše:
Na toto by mi asi najlepšie vedel odpovedať Bohuš.
No tak napiš rovnou mně 8-)

Dá sa to aj tak, ale je lepšie, keď si to tu potom môže prečítať každý, kto tieto informácie bude hľadať.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 22.03.2015, 16:40 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1403
Has thanked: 130 times
Been thanked: 71 times
Takže ďakujem za osvetlenie.

Nemáš v tom vzorci náhodou chybu? Nemá tam byť pri každom písmene ešte 2*?

A ešte by som sa chcel spýtať, že ako naemulovať dolnú priepusť? Je mi jasné, že nemôžem si len tak zvoliť frekvenciu, po ktorú dám strednú hodnotu a potom už H, L, lebo dolná priepusť sa správa inak, pri určitej frekvencii sa začne ukazovať malá amplitúda, ktorá klesajúcou frekvenciou stúpa.

Teoreticky by som to tak mohol naemulovať, ale nenaruším tak iné "skryté" vlastnosti?

No a ešte jedna otázka: Biely šum je celé spektrum frekvencií. Ako sa môže hovoriť pri tomto obvode o bielom šume s určitou frekvenciou? Ako tento šum emulovať?

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 22.03.2015, 19:32 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
nobomi píše:
...A je to sakra potřeba, hlasitost se nastavuje v logaritmické škále (po 2dB), dát z toho jakous-takous lineární funkci chce trošku počítání a vytvořit si pro použití v programu přepočítavací tabulku.


No tu logaritmicku zavyslost by som bral skor az vyhodu. Ludsky sluch tiez pracuje logaritmicky.

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 22.03.2015, 19:46 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Milsa píše:
A ešte by som sa chcel spýtať, že ako naemulovať dolnú priepusť? Je mi jasné, že nemôžem si len tak zvoliť frekvenciu, po ktorú dám strednú hodnotu a potom už H, L, lebo dolná priepusť sa správa inak, pri určitej frekvencii sa začne ukazovať malá amplitúda, ktorá klesajúcou frekvenciou stúpa.


no naemulovat to mozes cez nejake FIR/IIR atmel ma na to aj appnote. Ale potrebujes vediet aj strmost filtra. (vecsinou to byva nasobok 3db) a cut-off frekvencie je ta ktora je na vystupe filtra znizana o 3db (50%)

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 22.03.2015, 23:53 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1403
Has thanked: 130 times
Been thanked: 71 times
Takže naemuloval som zatiaľ bez podpory dolnej priepuste. Zvuk je otrasný, ešte si to pýta vyladiť, ale ide to. Paráda.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 23.03.2015, 08:09 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
zz_indigo píše:
nobomi píše:
...A je to sakra potřeba, hlasitost se nastavuje v logaritmické škále (po 2dB), dát z toho jakous-takous lineární funkci chce trošku počítání a vytvořit si pro použití v programu přepočítavací tabulku.
No tu logaritmicku zavyslost by som bral skor az vyhodu. Ludsky sluch tiez pracuje logaritmicky.
Evidentne si nepochopil o com je toto vlakno ... :poke: :bang:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 23.03.2015, 10:57 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Busy píše:
zz_indigo píše:
nobomi píše:
...A je to sakra potřeba, hlasitost se nastavuje v logaritmické škále (po 2dB), dát z toho jakous-takous lineární funkci chce trošku počítání a vytvořit si pro použití v programu přepočítavací tabulku.
No tu logaritmicku zavyslost by som bral skor az vyhodu. Ludsky sluch tiez pracuje logaritmicky.
Evidentne si nepochopil o com je toto vlakno ... :poke: :bang:


Ale pochopil. To bolo len konstatovanie. Len som zabudol spomenut ze preto bi asi by bolo dobre skusit to napisat cele v logaritmickou matematikou.

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 23.03.2015, 14:32 
Offline
Radil

Registrován: 08.10.2013, 18:00
Příspěvky: 296
Has thanked: 12 times
Been thanked: 228 times
zz_indigo> bohužel to takhle použít nejde, je to sice logaritmická škála, ale jen s jedním znaménkem, komplech chybí záporné hodnoty, není to symetrické :(

A teď zpět k emulaci analogové části. Na výstupu MZ800 je RC článek, který tvoří dolní propust prvního řádu s dělící frekvencí někde kolem 400 až 700Hz (záleží na poloze potenciometru). Vzhledem k použitému reproduktoru, který je spíš výškový, zdůrazňuje výšky a tak realná dělící frekvence je poslechově vyšší, dejme tomu 1000Hz, aby to v emulaci znělo podobně.

Já používám v emulaci nejjednodušší IIR filtr prvního řádu, přepis, kde IN[i] je původní výstup, OUT[i] filtrovaný:
OUT[i+1]=OUT[i]+(IN[i+1]-OUT[i])/x
kde x = vzorkovací_frekvence/(2*pi*dělící_frekvence)

Pokud to i tak zní divně, můžou za to zrcadlové frekvence vyšších harmonických, pak bude potřeba přikročit k dalším opatřením jako oversampling, decimace, FIR či IIR vyšších řádů, daly by se o tom (a mnozí už začali) psát mnohasetstránková skripta. Já používám v emulaci oversampling na cca 221kHz (synchronně se vstupem SN76489), pak IIR dolní propust prvního řádu volitelně 500-2000Hz, pak horní propust cca 50Hz, pak osmipólový IIR antialiasing filtr, nakonec downsampling decimací a interpolací na 44100Hz nebo dithering do 10bitů při emulaci na ARMovi, aby to znělo v rámci možností dobře a věrně vedle originálu. Většina emulátorů to nedělá a hlavně na vyšších tónech je to bolestně poznat.

A ještě k dotazům, chyba ve vzorci není, už jsem to rovnou pokrátil ( -A/10 je -2*A/20 ). A "bílý šum" je teoretické zbožné přání, je to jinak MLS (maximum length sequence) tedy posloupnost pseudonáhodných bitů, které musejí mít nějaké ty hodiny, které určují kdy se vygeneruje další bit, odtud "frekvence bílého šumu", je to frekvence hodin na vstupu generátoru. Pěkný popis generování šumu je například zde, ale bacha třeba v popisu použití jako DA jsou chyby v návodu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 23.03.2015, 20:52 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1403
Has thanked: 130 times
Been thanked: 71 times
Prejdem na body:
1. Vzorcu už konečne asi začínam rozumieť. Ak správne rozumiem, tak i+1 je nasledujúca vzorka, keďže sa pracuje s frekvenciou a jedným vstupom a výstupom by sme nevystačili.
2. Ak teda nie je chyba vo vzorci, tak útlm na 1/10 je o 20 dB, nie o 10 dB ako to je zvyčajne (nie vždy). Správne?

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 23.03.2015, 21:23 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Milsa píše:
1. Vzorcu už konečne asi začínam rozumieť. Ak správne rozumiem, tak i+1 je nasledujúca vzorka, keďže sa pracuje s frekvenciou a jedným vstupom a výstupom by sme nevystačili.


Ano. A cim ma byt filter vyssieho radu tym treba vediet viac hodnot. (Iked ja si ten vzorec pamatam z predchadzajucou vzorkou predsalen vies co uz si dostal ale nie co dostanes ;-) )

Milsa píše:
2. Ak teda nie je chyba vo vzorci, tak útlm na 1/10 je o 20 dB, nie o 10 dB ako to je zvyčajne (nie vždy). Správne?


1/10 v pripade napetia/prudu je to 20db v pripade vykonu 10db. napr tu: http://elnika.sweb.cz/mereni/decibely.htm

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 23.03.2015, 21:41 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1403
Has thanked: 130 times
Been thanked: 71 times
S tou predchádzajúcou vzorkou máš pravdu, ale pochopili sme sa.

A tých 20 dB máš tiež pravdu. Kde sú tie časy, keď som ešte z rádia na kazety nahrával. Vtedy som si pamätal aj to, že 6 dB bolo 0,5. Predvčerom som si túto vedomosť oprášil.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 23.03.2015, 22:09 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 09.10.2013, 19:04
Příspěvky: 1403
Has thanked: 130 times
Been thanked: 71 times
V emulácii mám akýsi brum. Počuť to ale iba v BASICu, čo to môže spôsobovať? Odhadujem frekvenciu okolo 30-40 Hz.

Doplnené: Zatiaľ sa jedná samozrejme iba o čistú emuláciu bez úprav cez rôzne filtre.

_________________
Sharp MZ-821
Milsa MZ-841


Nahoru
 Profil  
 
 Předmět příspěvku: Re: SN76489AN - otázky k emulácii
PříspěvekNapsal: 24.03.2015, 08:09 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 13.05.2013, 10:52
Příspěvky: 1669
Bydliště: Mliecna draha
Has thanked: 19 times
Been thanked: 124 times
Milsa píše:
S tou predchádzajúcou vzorkou máš pravdu, ale pochopili sme sa.

A tých 20 dB máš tiež pravdu. Kde sú tie časy, keď som ešte z rádia na kazety nahrával. Vtedy som si pamätal aj to, že 6 dB bolo 0,5. Predvčerom som si túto vedomosť oprášil.


:-D tak toto nepocujem ani v tedy ked sa nieco po par neuspesnich pokusoch konecne spravy po mojom

_________________
Amiga 600 + a602, Amiga 600 PCB only, Commodore 64+ZZ-RAM V1.0 512k+C1541(18k RAM)+sd2iec +9.600 Rs232, Commodore 116 + 64k upgrade, ZX 81 ISSUE1 + ZX81XRAM

http://zz-indigo.mavipet.sk/


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 16 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 3 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz