Instrumentul general AY-3-8910

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Cip DIP 40 tip AY-3-8910
Exemplu de ieșire ( fișier info )

Instrumentul general AY-3-8910 este un generator de sunet programabil cu 3 voci, sau „PSG” (de la Generator de sunet programabil ) proiectat de General Instrument . De asemenea, a fost produs sub licență de la Yamaha (cu modificări minore, cum ar fi pinul pentru a selecta divizorul de frecvență sau o masă de plic de volum cu rezoluție dublă, dar cu frecvență dublă) sub numele YM2149F .

fundal

După separarea din 1987 a tehnologiei Microchip de General Instrument , cipul a fost produs timp de câțiva ani sub noua marcă „Microchip”.

Până în prezent aceste cipuri nu mai sunt produse, dar un stoc redus este încă disponibil pentru repararea mașinilor de epocă. O descriere echivalentă a fost scrisă și în VHDL , care poate fi utilizată într-un FPGA pentru recreerea mașinilor arcade și a celorlalte menționate mai sus. Codul sursă VHDL este disponibil pe Internet și compilat umple aproximativ 10% dintr-un Xilinx XC2S300 FPGA.

Descriere

Inițial a fost destinat să fie utilizat cu microprocesorul lor CP1610 pe 16 biți sau cu unul dintre microprocesoarele de 8 biți din seria PIC1650. AY-3-8910 și variantele sale au devenit cipuri populare în mai multe jocuri video arcade și au fost folosite de consolele de jocuri Intellivision și Vectrex și computerele de casă MSX , Atari ST , Amstrad CPC , Oric 1 , Color Genie , printre altele., Elektor TV Games Computer și Sinclair ZX Spectrum 128 / + 2 / + 3 , precum și placa de sunet Mockingboard pentru familia Apple II .

AY-3-8910 era în esență o mașină de stat , unde starea era înregistrată într-o serie de paisprezece registre pe 8 biți . Acestea au fost programate cu o magistrală de 8 biți care a fost utilizată atât pentru adresare, cât și pentru date, selectând unul dintre cele două moduri prin schimbarea valorii pe unul dintre pinii externi. De exemplu, un ciclu de configurare tipic ar pune mai întâi magistrala în „modul adresă” pentru a selecta un registru și apoi în „modul de date” pentru a seta conținutul acelui registru.

Șase registre controlează tonurile produse în cele trei canale principale. Lungimea de undă care trebuie generată este setată în două registre de opt biți dedicate fiecărui canal, chiar dacă valoarea este limitată la 12 biți din alte motive, pentru un total de 4096 tonuri diferite. Un alt registru controlează perioada unui generator de zgomot pseudorandom, în timp ce un alt registru controlează amestecarea acestui zgomot în cele trei canale principale. Trei registre suplimentare au controlat volumul celor trei canale și au permis activarea sau dezactivarea controlului opțional al plicului pe canale. Ultimele trei registre controlează temporizarea controlerului plicului ADSR , stabilind durata pentru fiecare etapă a ciclului ADSR. Spre deosebire de majoritatea sistemelor, 8910 folosește timpi stabiliți pentru faza de susținere și eliberare, precum și un model repetabil de atac și descompunere. De exemplu, sistemul poate repeta ciclul AD al sunetului de mai multe ori sau îl poate inversa, pornind de la volumul maxim și reducându-l la nivelul de susținere fără nicio fază de atac.

Există încă două registre care nu alcătuiesc mașina de stare a cipului și care servesc drept registre pentru stocarea datelor ale căror valori sunt transmise pe cele două porturi I / O fiecare cu 8 biți. Utilizarea acestor două registre pentru transferul de date I / O nu are niciun efect asupra generării sunetului. Aceste două porturi nu sunt disponibile pe toate modelele de cipuri. Cipul produce un rezultat foarte similar cu cel al Texas Instruments SN76489 , aflat pe piață în aceeași perioadă.


Versiuni

Cip AY-3-8912, pachet DIP cu 28 de pini

Cipul de siliciu 8910 a fost vândut în trei pachete diferite.

Cip YM2149, pachet DIP cu 40 de pini

AY-3-8910 are două porturi I / O paralele de 8 biți, A și B, și acestea sunt disponibile în pachetul cu 40 de pini cu același nume.

AY-3-8912 este același cip într-un pachet cu 28 de pini, portul paralel B pur și simplu nu este conectat la pinii cipului. Pachetele mai mici economisesc costuri și spațiu la bord. Din acest motiv, modelul 8912 a fost de departe cea mai populară versiune.

AY-3-8913 este același cip într-un pachet cu 24 de pini, cu ambele porturi paralele neconectate. Reducerea mică a numărului total de pini comparativ cu 8912 îl face mai puțin interesant.

Cipul Yamaha YM2149F SSG (de la "Generator de sunet controlat de software") are același pinout ca AY-3-8910, cu excepția faptului că pinul 26 poate reduce frecvența principală a ceasului la jumătate dacă este împământat. Dacă este lăsat neconectat, ceea ce se întâmplă atunci când este utilizat pentru a înlocui un cip AY-3-8910, un rezistor intern are grijă să mențină semnalul pe pinul înalt, astfel încât semnalul principal al ceasului să nu fie tăiat în jumătate.

Yamaha Y3439-F .

AY-3-8914 are același pachet pinout și 40 pini ca AY-3-8910 , cu excepția faptului că registrele de control de pe cip sunt mixte, iar intrarea așteptată pe pinul A9 poate fi diferită. Cu excepția acestuia, este exact identic cu AY-3-8910 . A fost folosit pe Intellivision de la Mattel .

AY-3-8930 din DIP40 , cunoscut și sub numele de AY8930 , este o versiune avansată, dar în mare parte compatibilă înapoi cu AY-3-8910 . Funcția pinului BC2 a fost modificată (este ignorată și se presupune că starea pinului este 0), altfel funcția asociată pinilor ar fi aceeași cu AY-3-8910 . Această variantă a cipului adaugă o anumită cantitate de îmbunătățiri, cum ar fi plicuri separate pentru cele trei canale (spre deosebire de plicul partajat), cicluri de funcționare variabile, mai mulți biți de precizie pentru frecvența notelor, volumul și frecvența plicului și un generator de zgomot mult mai configurabil. A fost folosit pe placa de sunet pentru IBM-PC Covox Sound Master. O mică parte din jocuri a profitat de procesor dincolo de caracteristicile normale ale AY-3-8910 . Acest cip a fost probabil produs doar de Microchip Technology .

Utilizări

Deși cipul nu a fost conceput pentru a gestiona datele brute în format PCM ( sunet digital ), efectul poate fi simulat. Cipul a folosit o funcție simplă de amestecare de tip OR pentru a combina generarea de zgomot și ton a celor trei canale ale sale și ar putea fi forțat să producă o undă de nivel constant (non-zero). Prin modificarea volumului, acest nivel de undă ar putea fi modelat pentru a obține forma de undă dorită. Evident, aceasta a însemnat mai multă utilizare a CPU decât utilizarea cipurilor concepute special în acest scop (cum ar fi tehnologia MOS 8364 „Paula” folosită în Commodore Amiga ); cu toate acestea, această tehnică a fost utilizată pe scară largă pe platforme precum Atari ST pentru a reda muzică eșantionată, și pe Amstrad CPC sau ZX Spectrum pentru a reda mici eșantioane audio în unele jocuri.

Făcând același lucru, dar de mai puține ori pe secundă (de ordinul a o sută de ori pe secundă) puteți înlocui funcționalitatea limitată de gestionare a plicurilor (obținând orice plic la care vă puteți gândi) și, nu în ultimul rând, pentru acest lucru mai puțin important cu cele trei canale independent. Această operație folosește o putere neglijabilă a procesorului (aceasta în cazul în care există o întrerupere a temporizatorului sau există o întrerupere goală verticală) și, prin urmare, poate fi utilizată în jocuri.

La rândul său, funcționalitatea anvelopei este inutilă și poate fi ajustată la frecvențe foarte mari, generând de fapt o formă de undă care nu este unda pătrată obișnuită. Granularitatea cu care este posibilă setarea acestor frecvențe înalte este totuși grosieră, astfel încât muzica compusă pentru cip folosește în general această tehnică doar pentru o linie de bas (percuție, bas electric etc.).

O altă metodă constă în setarea permanentă a unui canal la un nivel ridicat și apoi utilizarea controlului volumului ca un convertor logaritmic digital-analogic simplu pe 4 biți. Acest lucru a avut ca rezultat o calitate audio slabă, deoarece avea doar 16 niveluri de ieșire și acestea erau spațiate logaritmic.

O metodă mai sofisticată a fost utilizarea tuturor celor trei canale legate între ele și exploatarea neliniarității mixului pentru a produce mai multe niveluri intermediare de ieșire. După modelarea neliniarității celor trei canale, dezvoltatorii trebuie să găsească valori adecvate printr-o căutare exhaustivă. După realizare, trebuie să producă un tabel de căutare pe 8 biți (valoarea eșantionului audio) pentru a obține 3x4 biți (3 canale x 4 biți volum). Acest lucru a permis ca eșantioanele audio să fie reproduse într-un mod rezonabil, deși nu la fel de optim pe cât se poate obține de la un convertor D / A real pe 8 biți. Problema cu această tehnică era că în timpul redării nu puteai schimba valoarea celor trei volume într-o singură operație. Acest lucru implica niveluri de producție nedorite între două eșantioane succesive.

În 2006, doi dezvoltatori MSX au creat un codificator avansat (codificator) care a convertit un fișier de undă în codificarea optimă a tranzacțiilor canalului PSG folosind algoritmul Viterbi . Au redat un fișier de undă de 44,1 kHz pe un MSX în vârstă de 23 de ani, cu un raport semnal / zgomot chiar mai bun decât un convertor DAC pe 8 biți. Căutarea conform algoritmului Viterbi este mai degrabă intensivă în procesor (necesită multă putere de calcul) și, prin urmare, chiar dacă teoretic era posibilă utilizarea acestei metode deja în anii 80, încă nu exista un computer suficient de puternic pentru a efectua analiza necesar.

Vocea principală: Chiptune

Cipul AY a fost utilizat de mai multe grupuri muzicale, cum ar fi AY Riders (vezi referința externă de mai jos). Unele dintre lucrările acestor grupuri sunt în stil cu muzica jocurilor pe computer ale vremii; altele sunt compoziții muzicale în sine.

Unele programe specifice au fost scrise pentru a scrie muzică pentru cipul AY, cum ar fi Vortex Tracker .

Cipuri conexe

Yamaha a folosit nucleul YM2149F pentru a produce o întreagă familie de cipuri de sunet care au fost utilizate în telefoanele mobile, computerele de acasă, sistemele de jocuri video de acasă și arcade etc. De exemplu, YM-2203 (cunoscut și sub numele de OPN) este un YM2149F plus o sinteză FM . Acest lucru se întâmplă și la cei mai avansați succesori ai acestui cip: YM2608 (cunoscut și sub numele de OPNA), care a păstrat neschimbate toate caracteristicile anterioare și s-a dezvoltat pe larg din acestea; YM2612 (cunoscut sub numele de OPN2), care a fost o versiune redusă a YM2608 din care au fost eliminate multe caracteristici, inclusiv canalele de sunet și porturile I / O ale YM2149F; YM2610 (OPNB) care a adăugat alte caracteristici și a păstrat sunetul YM2149F, dar nu și porturile I / O.

Alte proiecte

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT