Philips SAA 1099
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/96/SAA1099_pinout.png/220px-SAA1099_pinout.png)
Philips SAA 1099 je zvukový generátor vyvinutý firmou Philips. Obvod se používal v prvních verzích zvukové karty Sound Blaster a jejích předchůdcích. Je také použit v počítači SAM Coupé. Zvukový generátor Philips SAA 1099 umožňuje generovat šestikanálový stereo zvuk.
Popis obvodu
Generovaný zvuk je programován pomocí 32 registrů, některé z registrů jsou ale nepoužité.
registr | význam |
0 | hlasitost (amplituda tónu) kanálu 0 |
1 | hlasitost (amplituda tónu) kanálu 1 |
2 | hlasitost (amplituda tónu) kanálu 2 |
3 | hlasitost (amplituda tónu) kanálu 3 |
4 | hlasitost (amplituda tónu) kanálu 4 |
5 | hlasitost (amplituda tónu) kanálu 5 |
6 | rezervováno - nevyužito |
7 | rezervováno - nevyužito |
8 | číslo tónu v kanálu 0 |
9 | číslo tónu v kanálu 1 |
10 | číslo tónu v kanálu 2 |
11 | číslo tónu v kanálu 3 |
12 | číslo tónu v kanálu 4 |
13 | číslo tónu v kanálu 5 |
14 | rezervováno - nevyužito |
15 | rezervováno - nevyužito |
16 | číslo oktávy, ve které se nachází přehrávaný tón v kanálech 0 a 1 |
17 | číslo oktávy, ve které se nachází přehrávaný tón v kanálech 2 a 3 |
18 | číslo oktávy, ve které se nachází přehrávaný tón v kanálech 4 a 5 |
19 | rezervováno - nevyužito |
20 | nastavení, ve kterých kanálech je přehráván tón |
21 | nastavení, ve kterých kanálech je přehráván šum |
22 | nastavení frekvence generátoru šumu |
23 | rezervováno - nevyužito |
24 | nastavení průběhu obálky amplitudy tónu v kanálu 2 |
25 | nastavení průběhu obálky amplitudy tónu v kanálu 5 |
26 | rezervováno - nevyužito |
27 | rezervováno - nevyužito |
28 | hlavní reset a povolení přehrávání |
29 | rezervováno - nevyužito |
30 | rezervováno - nevyužito |
31 | rezervováno - nevyužito |
Registry 0 - 5 slouží k nastavení amplitudy (hlasitosti) tónu na příslušném kanále. Nezávisle na sobě se nastavuje amplituda pro levou a pravou část jednotlivých kanálů.
registr | 0 (1, 2, 3, 4, 5) | |||||||
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
amplituda pravé části kanálu | amplituda levé části kanálu |
Registry 8 - 13 společně s registry 16 - 18 slouží k nastavení generované frekvence tónu v jednotlivých kanálech. Do registrů 8 - 13 se zapisují čísla tónů, registry 16 - 18 určují, ve kterých oktávách se tyto tóny nachází.
registr | 8 (9, 10, 11, 12, 13) | |||||||
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
číslo tónu |
registr | 16 (17, 18) | |||||||
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
oktáva kanálu 1 (3, 5) | oktáva kanálu 0 (2, 4) |
Registr 20 určuje, ve kterých kanálech je přehráván tón.
registr | 20 | |||||||
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
tón v kanálu 5 | tón v kanálu 4 | tón v kanálu 3 | tón v kanálu 2 | tón v kanálu 1 | tón v kanálu 0 |
Stejným způsobem registr 21 určuje, ve kterých kanálech je přehráván šum.
registr | 21 | |||||||
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
šum v kanálu 5 | šum v kanálu 4 | šum v kanálu 3 | šum v kanálu 2 | šum v kanálu 1 | šum v kanálu 0 |
Registr 22 určuje frekvenci generátoru šumu. Generátory šumu jsou v obvodu dva, jeden pro kanály 0, 1 a 2, druhý pro kanály 3, 4 a 5.
registr | 22 | |||||||
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
frekvence generátoru šumu pro kanály 0, 1 a 2 | frekvence generátoru šumu pro kanály 3, 4 a 5 |
Fekvence generátoru šumu je určena kombinací bitů:
- 00 - 31,25 kHz,
- 01 - 15,6 kHz,
- 10 - 7,8 kHz,
- 11 - frekvence je odvozena od frekvence generátoru tónu v kanálu 0 pro šum v kanálech 0, 1 a 2, resp. od frekvence generátoru tónu v kanálu 3 pro šum v kanálech 3, 4 a 5, a může být v rozsahu od 61 Hz do 15,6 kHz.
V kanálech 2 a 5 může být obálka amplitudy tónu nejenom konstantní, ale také proměnná. Průběh obálky se pak nastavuje pomocí registrů 24 a 25.
registr | 24 (25) | |||||||
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
zapnutí proměnné obálky | 0 .. pro generování průběhu obálky bude použito vnitřní časování, 1 .. pro generování průběhu obálky bude použito vnější časování | 0 .. čtyřbitové rozlišení průběhu obálky, 1 .. tříbitové rozlišení průběhu obálky | průběh obálky amplitudy | 0 .. v levé i pravé části kanálu je průběh obálky totožný 1 .. v pravé části kanálu je průběh obálky inverzní |
V případě vnitřního časování je průběh obálky amplitudy kanálu 2 odvozen od frekvence generátoru tónu v kanálu 1, průběh obálky amplitudy kanálu 5 odvozen od frekvence generátoru tónu v kanálu 4. V režimu vnějšího časování slouží jako zdroj hodinového signálu vstup A0, který jinak funguje jako přepínač mezi vybíráním registrů a zápisem hodnot do zvoleného registru.
Generované obálky amplitudy mají následující průběhy:
000 ________ 001 ¨¨¨¨¨¨¨¨ 010 \_______ 011 \\\\\\\\ 100 /\______ 101 /\/\/\/\ 110 /_______ 111 ////////
Registr 28 slouží k zapnutí a vypnutí obvodu jako celku a k resetu a opětné synchronizaci všech generátorů v obvodu.
registr | 28 | |||||||
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
reset generátorů | zapnutí obvodu jako celku |
Využití obvodu
Sound Blaster
Obvod byl použit ve zvukovývch kartách C/MS a v jejich nástupcích, kartách Sound Blaster, ve kterých byly použity dva tyto obvody pro generování 12kanálového zvuku. Pozdější verze karet Sound Blaster až do verze 2.0 sice vlastní obvod již neobsahovaly, nicméně podpůrná elektronika a patice pro oba obvody byly přítomné, takže obvod Philips SAA 1099 bylo možné do těchto karet doplnit.
SAM Coupé
Philips SAA 1099 je použit v počítači SAM Coupé. Je připojen na portech 255 (zápis do zvoleného registru) a 511 (výběr registru) obvodu SAA 1099.
Sinclair ZX Spectrum
Protože počítač SAM Coupé je kompatibilní s počítači Sinclair ZX Spectrum, vznikly interfacy Turbo Sound Easy, ZXM-SoundCard a TwinSound pro počítače ZX Spectrum, ve kterých je obvod Philips SAA 1099 zapojen stejně jako u počítače SAM Coupé.[1][2] Takto zapojený obvod využívá k přehrávání hudby hra Krunel. Na ZX Spectrum byly ruskými kodery převedeny téměř všechny hudby z programů pro SAM Coupé a jsou dostupné jak v prostých TAP souborech, tak v nových demokolekcích původně vytvořených pro ZXM-Soundcard.
SGI
Obvod Philips SAA 1099 je součástí profesionální série IRIS (4D/50-85) a Power Series (4D/xxx) počítačů SGI, informace o přítomnosti těchto obvodů se ale nedostala do dokumentace k těmto počítačům.[3] Obvod je součástí desek IO2 a IO3.
PMD 85
Na základě obvodu Philips SAA 1099 byl vytvořen hudební interface MIF 85 pro počítače PMD 85.[4] Philips SAA 1099 je připojen na porty EF (výběr registru) a EE (zápis do vybraného registru), interface používá ještě port EC pro řízení přerušení od časovače.
Reference
Externí odkazy
- Philips SAA 1099 - dokumentace k obvodu
- SAA 1099 emulator pro Windows a několik ukázkových skladeb
- SAASound, knihovna pro emulaci obvodu SAA 1099 od Davea Hoopera
- Philips SAA-1099 Sound Chip sample pack na flstudiomusic.com - volně dostupná sada samplů vytvořená pomocí obvodu Philips SAA 1099
- Philips SAA 1099 na SpeccyWiki
- LnxTracker - hudební editor typu ProTracker, pro Windows, podporujicí zvukové čipy AY 3-891x a SAA1099