AY-3-8910

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 16 martie 2021; verificările necesită 6 modificări .

AY-3-8910  este un microcircuit care este un generator de sunet cu trei canale ( PSG , Generator de sunet programabil în terminologia producătorului ). Dezvoltat de General Instrument (actualul Microcip ), destinat inițial pentru utilizare cu procesorul CP1610 pe 16 biți (o versiune simplificată a CP1600 ) al aceleiași companii și cu microcontrolere pe 8 biți din seria PIC1650. AY-3-8910 și variantele sale au fost utilizate pe scară largă în multe mașini arcade , console de jocuri și computere de acasă . În plus față de General Instrument, acest microcircuit a fost fabricat sub o licență de dezvoltator de către Microchip (la acea vreme - un producător terț de cristale), Micrel (sub numele original) și alții (sub diferite nume), precum și de către Yamaha . (sub numele - SSG,YM2149F Generator de sunet controlat de software conform terminologiei producătorului ) .

Una dintre primele utilizări ale AY-3-8910 datează din 1980, în slotul Sega Carnival și mai târziu pe platforma MSX . Chipurile compatibile cu AY-3-8910 sunt încă folosite astăzi. Producția lor a încetat, totuși, s-a păstrat un stoc de microcircuite produse anterior, iar acestea continuă să fie vândute, de exemplu, pentru repararea vechilor sisteme informatice. Există o implementare VHDL a cipului pentru utilizare în replici FPGA ale aparatelor de slot și altor sisteme computerizate retro. Codul sursă VHDL este disponibil gratuit pe Internet, în formă compilată ocupă aproximativ 10 la sută din volumul FPGA Xilinx XC2S300.

Se crede că AY-3-8910 are capacități de generare a sunetului similare cu cipul Texas Instruments SN76489 (construit și vândut în aceeași perioadă de timp). Cu toate acestea, deși caracteristicile lor generale sunt similare, aceste cipuri au capacități destul de diferite. Utilizarea creativă a AY-3-8910 vă permite să obțineți un sunet mult mai complex decât SN76489, datorită prezenței în AY-3-8910 a așa-numitului plic , care poate fi programat la un non-standard ( audio) frecvență.

Faima în Rusia

În Rusia, cipul AY-3-8910 a câștigat faimă datorită utilizării sale în computerul ZX Spectrum 128 și, în consecință, în numeroasele sale clone . În timpul popularității ZX Spectrum în Rusia, au fost mai mult de o mie de oameni care au scris muzică pentru AY-3-8910. În total, pentru cip au fost scrise peste 25.000 de melodii. [1] Acest microcircuit și-a creat propria subcultură în rândul muzicienilor ruși de computer de la începutul anilor 1990, similar cu cel creat de microcircuitul SID al computerului Commodore 64 în alte țări. În prezent, există câțiva entuziaști care continuă să scrie muzică pentru AY-3-8910. Ca parte a diferitelor festivaluri de artă computerizată, cum ar fi Chaos Constructions , DiHalt , ASCiI , ArtField și altele, există și competiții pentru scrierea muzicii pentru acest cip.

Radioamatorii au conectat AY-3-8910 la multe computere casnice, în special la Vector-06Ts , Orion -128 , BK-0011 și IBM PC , precum și la telefoane cu ID-ul apelantului Rus „Sonata”.

Descriere

AY-3-8910 are următoarele caracteristici:

AY-3-8910 este o mașină de stări a cărei stare este setată folosind șaisprezece registre de 8 biți. Ele sunt programate printr-o magistrală externă de 8 biți, care este utilizată atât pentru transferul de date, cât și pentru setarea adresei de registru - modul este comutat prin schimbarea nivelului pe un pin special al microcircuitului. Ciclu tipic de transfer al valorii: magistrala comută în modul de adresă, adresa este transferată, magistrala comută în modul de transfer de date, datele sunt transferate. Această magistrală a fost implementată inițial pe procesoarele proprii ale GI, dar a trebuit să fie recreată cu o logică sau un adaptor de interfață suplimentar, cum ar fi MOS Technology 6522, totuși cipul a fost folosit cu mult mai comună tehnologie MOS 6502 sau Zilog Z80.

Cele șase registre R0..R5 controlează frecvența sunetului generată de cele trei canale principale prin setarea valorii divizorului de ceas de intrare. Divizorul este stocat în două registre de 8 biți pentru fiecare dintre canale, dar capacitatea reală a contorului divizorului este de 12 biți, ceea ce oferă 4095 de valori ale frecvenței sunetului (0 și 1 sunt echivalente).

Registrul R6 setează valoarea perioadei de 5 biți pentru generatorul de zgomot pseudo-aleatoriu.

Registrul R7 este un mixer logic care conține doi biți pentru fiecare canal, în funcție de care semnalul generatorului de zgomot sau al generatorului de anvelope este amestecat în canale. De asemenea, în registrul R7 sunt doi biți de control al portului I/O de uz general.

Trei registre R8..R10 controlează volumul celor trei canale principale (16 nivele) și au, de asemenea, un pic pentru a permite utilizarea plicului.

Cele trei registre R11..R13 controlează frecvența (două registre, valoare de 16 biți) și forma de undă (un registru, 16 opțiuni) a semnalului generator de anvelope asemănător ADSR . Spre deosebire de majoritatea sistemelor, 8910 folosește timpi fixați pentru fazele de platou și dezintegrare și o secvență repetată de faze de atac și dezintegrare . De exemplu, generatorul poate repeta constant ciclul atac-cadere, sau invers, incepand de la nivelul maxim, coborand-o treptat, fara o faza de atac.

Registrele R14 și R15 controlează starea liniilor de intrare/ieșire ale porturilor I/O de uz general.

Versiuni

Cristalul original 8910 avea trei versiuni.

AY-3-8910 avea două porturi I/O de uz general de opt biți paralele - A și B. Fabricat într-un pachet cu 40 de pini (DIP40).

AY-3-8912 este realizat într-un pachet cu 28 de pini (DIP28). Semnalele portului B nu sunt direcționate către pinii externi. Acest design a redus costul microcircuitului și dimensiunile acestuia, ceea ce a făcut ca acest design să fie cel mai popular.

AY-3-8913 este realizat într-un pachet cu 24 de pini (DIP24). Semnalele portului A și B nu sunt scoase. Față de 8912, dimensiunile au scăzut nesemnificativ, iar funcționalitatea a scăzut, așa că această versiune a primit cea mai mică distribuție.

Atribuirea pinului YM2149F este aceeași cu AY-3-8910, cu excepția pinului 26, care pornește divizorul intern de frecvență de intrare la jumătate atunci când este condus la nivel scăzut. Dacă acest pin nu este conectat nicăieri, microcircuitul funcționează în același mod ca AY-3-8910. În plus față de divizorul de frecvență de intrare încorporat, YM2149 are o diferență în adâncimea de biți a anvelopei DAC - 5 biți în loc de 4 (cu o scară logaritmică). De asemenea, doar cele inferioare sunt folosite pentru ton. (liniștit) 4 biți. Acest lucru creează o diferență în timbrul sunetului învelișului, făcându-l mai luminos, dar permițând mai multă flexibilitate a basului.

YMZ284-D este realizat într-un pachet cu 16 pini (DIP16). YMZ284-M este realizat într-un pachet cu 16 pini (SOIC16). Funcțional și software-ul este pe deplin compatibil cu AY-3-8910, AY-3-8912 și AY-3-8913. O caracteristică distinctivă este un număr mic de pini, o interfață simplificată, o ieșire audio mono.

Microcipul AY38910A este realizat într-un pachet cu 40 de pini (DIP40). Complet compatibil cu YAMAHA YM2149f .

Microcip AY8930 . Compatibil cu Microcip AY38910A . Poate fi comutat în modul extins: nu perioadă de ton de 4 până la 8 biți, nu perioadă de zgomot de 5 până la 8 biți, zgomotul nu este generat de mecanismul hard LFSR, ci cu măști suplimentare programabile și SAU.

Circuitele integrate Winbond WF19054 , China JFC95101 , WB5300 și Jile KC89C72 sunt, de asemenea, clone AY-3-8910.

Utilizare creativă

Deși microcircuitul nu are capacități speciale pentru redarea sunetelor digitizate, acesta poate fi implementat în software folosind un DAC pe 4 biți de unul sau mai multe canale cu generarea de ton și zgomot interzisă de mixerul logic. Această abordare necesită mai mult timp CPU decât utilizarea cipurilor special concepute pentru redarea audio digitală (cum ar fi cipul Paula din computerul Commodore Amiga ). Dar a fost totuși utilizat pe scară largă pe platforme precum computerul Atari ST pentru redarea muzicii digitale și pe Amstrad CPC pentru redarea de efecte sonore scurte în unele jocuri.

Folosind aceeași tehnică, dar fără a dezactiva generarea de tonuri, este posibilă extinderea posibilităților de a genera diverse timbre . În acest caz, modificarea nivelului de ieșire DAC al canalului este utilizată pentru a modula înălțimea cu o frecvență diferită. În acest fel, puteți obține, de exemplu, trei plicuri independente de amplitudine de orice formă sau timbre care seamănă cu sunetul unui cip SID . Pentru a implementa eficient această metodă, sistemul trebuie să poată întrerupe procesorul la o frecvență suficient de mare - de exemplu, pe computerul Atari ST, unde această tehnică a fost folosită cel mai activ, a fost folosită o întrerupere la începutul liniei raster. Pe sistemele care nu au astfel de capabilități hardware, aproape tot timpul procesorului va fi necesar pentru a implementa un astfel de efect. Există o demonstrație Digisid care rulează efectul pe un computer ZX Spectrum care nu are capabilități hardware asemănătoare Atari ST.

În 2006, doi dezvoltatori de software de calculator MSX au creat un codificator avansat care convertește fișierele wave în cele mai potrivite date pentru canalele AY folosind algoritmul de căutare Viterbi . Acest lucru a făcut posibilă redarea unui fișier unde de 44.100 de herți pe un computer MSX vechi de 23 de ani , cu un raport semnal-zgomot mai mare decât cel al unui DAC pe 8 biți. Algoritmul Viterbi consumă foarte mult resurse, nu putea fi folosit în anii 80, deoarece la acea vreme nu existau computere suficient de puternice pentru a realiza o astfel de transformare.

Unii oameni, în special utilizatorii computerului ZX Spectrum, folosesc cipul AY pentru a crea muzică, inclusiv pentru spectacole de concert. .

Lista sistemelor

Lista parțială a sistemelor care au folosit 8910 sau variante. Nu include diverse aparate de slot, al căror număr depășește o mie.

Console de jocuri:

Calculatoare de acasă. Multe dintre ele au multe modele de la diferiți producători:

Editori muzicali

Pentru computerele care au folosit cipul AY-3-8910, au fost create un număr mare de editori muzicali folosind capacitățile sale de generare a sunetului. Majoritatea aveau o interfață de urmărire . Adesea au o asemănare puternică cu primele trackere care au apărut pe computerul Amiga  - de exemplu, The Ultimate Soundtracker (1987), NoiseTracker (1989), ProTracker (1991). De asemenea, nume similare sau complet identice au fost folosite ca nume ale unor astfel de programe. Din acest motiv, numele diferitelor programe de la diferiți autori pe platforme diferite și chiar în cadrul aceleiași platforme au coincis adesea.

Următoarea este o listă parțială a editorilor muzicali pentru AY-3-8910. Nu include editori orientați spre mostre (așa-numitele editori de muzică digitală). Unii dintre editori au fost lansati doar în versiuni demo. Lista include doar acele versiuni demo care aveau funcționalitatea de bază, adică îți permiteau să editezi muzica.

Pe lângă editorii de muzică, există programe mai înalt specializate concepute pentru a crea efecte sonore (de exemplu, pentru utilizare în jocuri).

Dezvoltare ulterioară

Yamaha a folosit nucleul YM2149F într-o întreagă familie de cipuri muzicale care au fost folosite în telefoane mobile, jocuri video etc. De exemplu, cip-ul YM2203 (cunoscut și ca OPN), pe lângă propriul sintetizator cu modulație de frecvență (FM), conține un analog cu drepturi depline al YM2149F, pe deplin compatibil în ceea ce privește numerele și scopul registrelor (cu toate acestea, următorul cip din serie, YM2612 , conține doar partea FM 2203).

Multe computere MSX2 și unele computere MSX1 folosesc LSI -uri „chipset” specializate de la diferite companii. Acestea sunt, de exemplu, microcircuite Yamaha S1985 , S3527 , Toshiba T7775 , T7937 , T9769 . Pe lângă o mare parte a circuitului computerului, ele conțin și un analog cu drepturi depline al YM2149F.

Philips a dezvoltat cipul SAA1099 (utilizat în computerul SAM Coupé și plăcile de sunet de la începuturile Creative Labs pentru PC-ul IBM ). Capacitățile sale sunt similare cu cele două AY-3-8910 (6 canale, 2 plicuri, 2 generatoare de zgomot), cu unele completări. Cu toate acestea, compatibilitatea software și hardware lipsește.

Emulare

Pe lângă implementarea emulării cipului în emulatoarele diferitelor sisteme care o folosesc, există emulatoare cip separate. Acestea vă permit să redați muzică scrisă pentru diferite sisteme și salvată în formatele lor speciale pe un computer obișnuit. Ca și în cazul altor cipuri similare generatoare de sunet, emularea software are unele diferențe de sunet față de cip real și poate chiar o diferență în bine (sunet mai clar, fără distorsiuni, făcând sunetul oarecum diferit de cel original). Dacă în cazul altor microcircuite, mai complexe, aceste diferențe apar din cauza emulării inexacte a logicii microcircuitelor, atunci în cazul AY-3-8910 și microcircuitelor compatibile, toate subtilitățile și diferențele în activitatea lor sunt pe deplin studiate. , iar problema supraeșantionării devine principala sursă de diferențe.( reeșantionarea ) a semnalului (cipul vă permite să generați sunet cu frecvențe de până la câteva sute de kiloherți).

Note

  1. Statistici de colecție ZX TUNES . Preluat la 22 mai 2009. Arhivat din original la 23 august 2021.
  2. [chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/ http://map.grauw.nl/resources/sound/generalinstrument_ay-3-8910.pdf datasheet] .

Link -uri