Blog:MIF 85

Z PMD 85 Infoserver

(Rozdiel medzi revíziami)
Djb (Diskusia | príspevky)
D (Blog:MIF85 premiestnená na Blog:MIF 85: chybajuca medzera)
Aktuálna verzia (18:42, 23. august 2023) (upraviť) (vrátiť)
Djb (Diskusia | príspevky)
(presun blogu na stranku)
 
15 medziľahlých revízií nie je zobrazených.
Riadok 1: Riadok 1:
-
{{VelkyNadpis|MIF 85 - Music interface pre PMD 85}}
+
#redirect [[MIF 85]]
-
 
+
-
__TOC__
+
-
 
+
-
[[Obrázok:MIF85-prototype.jpg|thumb|Prototyp MIF 85]]
+
-
 
+
-
'''MIF 85''' je hudobný či zvukový interface postavený na obvode '''SAA 1099P'''. Tento obvod, ktorý bol použitý napríklad aj v počítači SAM Coupé, poskytuje:
+
-
* 6 frekvenčných generátorov - 8 oktáv na každý generátor
+
-
* 2 šumové generátory
+
-
* oddelené riadenie hlasitosti pre ľavý a pravý kanál, pre každý generátor - 16 úrovní
+
-
* 2 generátory hlasitostnej obálky
+
-
* mixér šumu a tónov
+
-
 
+
-
O prototype MIF 85 pojednáva [http://blog.borik.net/2012/04/mif-85-prototyp.html tento článok]
+
-
 
+
-
== Zapojenie MIF 85 ==
+
-
 
+
-
[[Obrázok:Mif-85-sch.png|thumb|Schéma MIF 85]]
+
-
 
+
-
MIF 85 sa pripája na aplikačný konektor [[PMD 85]], na ktorom sa nachádzajú všetky potrebné signály.
+
-
+
-
Obvodové zapojenie srdca MIF 85, teda samotného <code>SAA1099P</code> (U1), vychádza z katalógového zapojenia, ale v podstate bolo prevzaté zo schémy počítača SAM Coupé. Hodinový vstup <code>SAA1099P</code> je budený oscilátorom, ktorý je tvorený obvyklým zapojením pomocou <code>74LS00</code> (U3) a kryštálom 8 MHz.
+
-
 
+
-
Referencia pre analógové výstupy je vytvorená LC filtrom z napájacieho napätia. Analógové výstupy ľavého a pravého kanála sú cez jednoduchý filter vyvedené na 3,5 mm stereo jack.
+
-
 
+
-
Keďže <code>SAA1099P</code> nemá vlastný resetovací vstup, napájanie <code>SAA1099P</code> je zámerne cez tranzistor <code>BC557B</code> (T2), aby bolo možné <code>SAA1099P</code> "umlčať" resetom počítača.
+
-
 
+
-
Pôvodný návrh obsahoval niekoľko TTL obvodov, ale nakoniec bolo v záujme zjednodušenia zapojenia rozhodnuté, že sa použije hradlové pole GAL16V8 (U2). To rieši niekoľko vecí:
+
-
* dekodér portov
+
-
* tvorba signálov <code>-CS</code> a <code>-WR</code> pre <code>SAA1099P</code>
+
-
* tvorba signálu pre pripojenie/odpojenie napájania <code>SAA1099P</code> podľa stavu signálu <code>-RES</code>
+
-
* register pre povolenie/zakázanie prerušenia od časovača
+
-
* tvorba signálu prerušenia
+
-
 
+
-
Signál <code>-Fi2TTL</code> z aplikačného konektora je privedený na hodinový vstup časovača 0 <code>CLK0</code>. Časovač 0 a teda jeho výstup <code>OUT0</code> je použitý pre tvorbu prerušovacieho sidnálu <code>-INT</code>. Ten je vyvedený cez <code>BC547B</code> (T1) ako otvorený kolektor. Pull-up odpor je súčasťou počítača.
+
-
 
+
-
== Rovnice pre GAL16V8 ==
+
-
 
+
-
Ako bolo spomenuté vyššie, použitie GALu ušetrilo niekoľko TTL obvodov. Nasledujúce rovnice sú jednoduché a myslím, že aj zrozumiteľné a s uvedenými komentármi už nepotrebujú ďalšie vysvetlenie.
+
-
 
+
-
CHIP MIF85 GAL16V8
+
-
+
-
; MIF85 - Music InterFace for PMD 85
+
-
; Dekodér adries portov SAA1099P a registra pre povolenie/zakázanie prerušenia.
+
-
; Riadenie napájania SAA1099P
+
-
+
-
; Port 0EFh je použitý pre výber registra SAA1099P.
+
-
; Port 0EEh je použitý pre zápis dát do vybraného registra.
+
-
; Bit D0 portu 0ECh je použitý pre povolenie/zakázanie prerušenia od časovača 0
+
-
; z i8253 umiestneného na interfejsovej doske PMD 85.
+
-
; Všetky porty sú iba pre zápis.
+
-
+
-
; 01 02 03 04 05 06 07 08 09 10
+
-
CLK A0 A1 A4 A5 A6 D0 IOW /OUT0 GND
+
-
; 11 12 13 14 15 16 17 18 19 20
+
-
NC NC /PWR /RES ID /WR /CS INT ICLK VCC
+
-
+
-
EQUATIONS
+
-
+
-
; povolenie napájania SAA1099P
+
-
PWR = /RES
+
-
+
-
; signál -WR (Write) pre SAA1099P
+
-
WR = IOW
+
-
+
-
; signál -CS (Chip Select) pre SAA1099P
+
-
CS = A6 * A5 * /A4 * A1 ; 0EEh, 0EFh
+
-
+
-
; hodinový signál pre zápis do registra povolenia prerušenia od časovača 0
+
-
ICLK = A6 * A5 * /A4 * /A1 * /A0 * IOW ; 0ECh
+
-
| RES
+
-
+
-
; register Interrupt Disable
+
-
ID := /D0
+
-
| RES
+
-
ID.c = CLK
+
-
ID.oe = VCC
+
-
+
-
; signál prerušenia
+
-
INT = OUT0 * /ID
+
-
 
+
-
== Popis portov a ovládania ==
+
-
 
+
-
MIF 85 využíva 3 výstupné porty: 0ECh, 0EEh a 0EFh. Adresy týchto portov sú vyberané adresnými bitmi A6, A5, A4, A1 a A0. Adresné bity A7, A3 a A2 nie sú súčasťou adresného dekodéra, ale musia byť v jednotke, čím je podmienené otvorenie budiča, ktorý je súčasťou aplikačného konektora.
+
-
 
+
-
SAA1099P sa ovláda dvoma portami:
+
-
* 0EFh - výber registra 0 až 31
+
-
* 0EEh - zápis hodnoty do zvoleného registra
+
-
 
+
-
; napríklad
+
-
MVI A,8 ; výber registra 8 - frekvencia tónu 0
+
-
OUT 0EFh
+
-
MVI A,0E3h ; zápis do registra 8 - tón A
+
-
OUT 0EEh
+
-
 
+
-
Port 0ECh slúži pre povolenie prerušenia od časovača 0. Po zapnutí počítača alebo po resete je prerušenie od časovača 0 zakázané. Pred povolením prerušenia je potrebné ešte inicalizovať samotný časovač. A samozrejme, musí byť pripravená rutina obsluhy prerušenia od adresy 0038h.
+
-
 
+
-
DI ; zákaz prerušenia procesora
+
-
+
-
XRA A ; zákaz prerušenia od časovača 0
+
-
OUT 0ECh
+
-
+
-
MVI A,24h ; inicializuj časovač 0
+
-
OUT 5Fh
+
-
MVI A,0A0h ; 50x za sekundu
+
-
OUT 5Ch
+
-
+
-
MVI A,0C9h ; inicializuj vektor prerušenia
+
-
STA 0038h ; - iba navrat
+
-
+
-
MVI A,1 ; povolenie prerušenia od časovača 0
+
-
OUT 0ECh
+
-
+
-
EI ; povol prerušenie procesora
+
-
HLT ; počkaj si na prerušenie
+
-
+
-
...
+
-
 
+
-
== Na stiahnutie ==
+
-
* [http://pmd85.djb-studios.com/?module=download&did=78 súbory pre GAL16V8]
+
-
* [http://pmd85.djb-studios.com/?module=download&did=79 datasheet SAA1099]
+
[[Kategória:Blog| 010]]
[[Kategória:Blog| 010]]

Aktuálna verzia

  1. redirect MIF 85