Blame | Last modification | View Log | Download | RSS feed | ?url?
Ãðóïïà NedoPC ðàäà ïðåäñòàâèòü âàøåìó âíèìàíèþ òðàëÿëÿ ÂÏÈÑÀÒÜ ÐÅÊËÀÌÓ! :).
NeoGS (NGS)
old general sound (ogs)
Êðàòêèå òåõíè÷åñêèå õàðàêòåðèñòèêè:
- ïîëíàÿ ïðîãðàììíàÿ ñîâìåñòèìîñòü ñ ogs
- ãèáêàÿ àðõèòåêòóðà, îñíîâàííàÿ íà fpga
- 2 ìåãàáàéòà RAM
- 512 êèëîáàéò flash-ROM
- ðàñøèðåííûå ñïîñîáû àäðåñàöèè ïàìÿòè: 2 îêíà ïðîåöèðîâàíèÿ, ïîëíîå èñêëþ÷åíèå ROM èç àäðåñíîãî ïðîñòðàíñòâà
- Z80 ñ ïåðåêëþ÷àåìîé ÷àñòîòîé (10, 12, 20 è 'òóðáî'-24 ÌÃö)
- 8 àïïàðàòíûõ çâóêîâûõ êàíàëîâ ñ ãðîìêîñòÿìè (â 2 ðàçà áîëüøå, ÷åì ó ogs)
- mp3-äåêîäåð (àíàëîã vs1001) ñ àïïàðàòíûì SPI äëÿ ïåðåñûëêè äàííûõ
- èíòåðôåéñ SD-card ñ àïïàðàòíûì SPI äëÿ ïåðåñûëêè äàííûõ.
- DMA-äîñòóï ñïåêòðóìà â ïàìÿòü NGS (ïåðåñûëêà äàííûõ ìåæäó ñïåêòðóìîì è NGS êîìàíäàìè LDI, LDIR è ïîäîáíûìè)
- âîçìîæíîñòü ïîëíîñòüþ àâòîíîìíîé ðàáîòû (ïðîèãðûâàíèå ìîäóëåé è mp3-ôàéëîâ ñ SD-êàðòî÷êè ïî ïëåéëèñòó, ïðè ýòîì
ñáðîñ ñïåêòðóìà íå âëèÿåò íà NGS)
Çâóêîâûå âîçìîæíîñòè ïî ñðàâíåíèþ ñ ogs çíà÷èòåëüíî óâåëè÷åíû: òåïåðü ïðàêòè÷åñêè ëþáîé ñóùåñòâóþùèé 4-êàíàëüíûé
ìîäóëü ïîìåñòèòñÿ â ïàìÿòè NGS. Ðàñøèðåííîå ÷èñëî àïïàðàòíûõ êàíàëîâ è óâåëè÷åííàÿ ÷àñòîòà Z80 ïîçâîëÿþò ïðîèãðûâàòü êàê 8-êàíàëüíûå
ìîäóëè, òàê è îäíîâðåìåííî ìóçûêó è çâóêîâûå ýôôåêòû áåç îòêëþ÷åíèÿ êàíàëîâ ìóçûêè. mp3-äåêîäåð âìåñòå ñ íîñèòåëåì
SD-card ïîçâîëÿò âûâåñòè îçâó÷êó íà êà÷åñòâåííî íîâûé óðîâåíü. Íàêîíåö, NGS äåéñòâèòåëüíî (â îòëè÷èå îò ogs)
ìîæåò ðàáîòàòü êàê âûñîêîïðîèçâîäèòåëüíûé àêñåëåðàòîð, èìåþùèé øèðîêèé DMA-êàíàë îáìåíà äàííûìè ñî ñïåêòðóìîì.
Êðîìå òîãî, DMA-êàíàë ïîçâîëÿåò çíà÷èòåëüíî ñîêðàòèòü âðåìåíà çàãðóçêè çâóêîâûõ äàííûõ â NGS.
Íèæå ïðèâîäèòñÿ êðàòêîå îïèñàíèå äîïîëíèòåëüíûõ âîçìîæíîñòåé NGS ñ òî÷êè çðåíèÿ ïðîãðàììèñòà. Ïðè ýòîì
ïðåäïîëàãàåòñÿ, ÷òî ÷èòàòåëü èìååò ÿñíîå ïðåäñòàâëåíèå î àðõèòåêòóðå ogs.
Äåøèôðàöèÿ ïîðòîâ ñî ñòîðîíû ñïåêòðóìà, â îòëè÷èå îò ogs, âûïîëíåíà ïî ïîëíîìó ìëàäøåìó áàéòó àäðåñà, ïðè ýòîì
ñèãíàë IORQGE, îïÿòü æå â îòëè÷èå îò ogs, âûäà¸òñÿ ÒÎËÜÊÎ íà îñíîâå àäðåñà è àêòèâåí êàê ïðè çàïèñè â ïîðòû, òàê
è ïðè ÷òåíèè èç íèõ.
Ïîðòû $B3 è $BB ïîâòîðÿþò ôóíêöèîíàëüíîñòü ogs.
 êàðòó ïîðòîâ äîáàâëåí ïîðò $33 ñ ôóíêöèåé ñáðîñà NGS è âûäà÷è ïðîöåññîðó NGS íåìàñêèðóåìîãî ïðåðûâàíèÿ:
ïðè âûâîäå â íåãî ÷èñëà $80 ïðîèñõîäèò ñáðîñ NGS. Ïðè âûâîäå $40 - ïðîöåññîðó NGS âûäà¸òñÿ NMI.
Âíóòðåííèå ïîðòû NGS (ïåðå÷èñëåíû òîëüêî îòëè÷àþùèåñÿ îò ïîðòîâ ogs ïî ôóíêöèîíàëüíîñòè, ëèáî âíîâü äîáàâëåííûå):
$40-$FF - ïîðòû, èñïîëüçóþùèåñÿ ïðè íà÷àëüíîé êîíôèãóðàöèè FPGA, íå äîëæíû èñïîëüçîâàòüñÿ ïðè íîðìàëüíîé ðàáîòå ïðîãðàìì NGS.
ïîðò $00, çàïèñü - àäðåñàöèÿ ðàñøèðåíà äî 2 ìåãàáàéò (áèòû 5..0: 64 ñòðàíèöû ïî 32 êèëîáàéòà)
ïîðò $0F, çàïèñü è ÷òåíèå (òîãî, ÷òî çàïèñàíî).
bit 0 - NO ROM bit: 1 - ïîäêëþ÷åíà òîëüêî RÀÌ,
0 - $4000-$7fff RÀÌ, îñòàëüíîå FLASH ñî ñòðàíèöàìè òàêèìè æå êàê RAM.
bit 1 - RAM RO bit: 1 - ñòðàíèöà 0 RAM (àáñîëþòíûå àäðåñà 0..32767) çàùèùåíà îò çàïèñè (ýìóëÿöèÿ ROM ogs)
0 - íå çàùèùåíà îò çàïèñè.
bit 2 - 8 channels bit: 1 - 8 çâóêîâûõ êàíàëîâ
0 - 4 êàíàëà (êàê â ogs).
bit 3 - extended paging mode bit: 1 - ðàñøèðåííûé ðåæèì ñòðàíèö (ñì. íèæå)
0 - ïàìÿòü ïåðåêëþ÷àåòñÿ êàê â ogs
bit 4,5 - z80 overclocking bits: 00 - Z80 ðàáîòàåò íà ÷àñòîòå 24ÌÃö
01 - Z80 ðàáîòàåò íà ÷àñòîòå 12ÌÃö
10 - Z80 ðàáîòàåò íà ÷àñòîòå 20ÌÃö
11 - Z80 ðàáîòàåò íà ÷àñòîòå 10ÌÃö
bits 6,7 - íåèñïîëüçóåìûå: íå îïðåäåëåíû ïðè ÷òåíèè, äîëæíû óñòàíàâëèâàòüñÿ â íîëü ïðè çàïèñè
ïîðò $10, çàïèñü. Ðàñøèðåííûé ïîðò ñòðàíèö, èñïîëüçóåòñÿ, êîãäà extended paging mode bit = 1
Ìîäåëü ñòðàíèö â ðàñøèðåííîì ðåæèìå òàêîâà:
ïîðò $00 - ñòðàíèöà (16ê êóñîê), âêëþ÷åííàÿ ïî àäðåñàì $8000-$bfff
ïîðò $10 - ñòðàíèöà (16ê êóñîê), âêëþ÷åííàÿ ïî àäðåñàì $c000-$ffff
Äëÿ 2 ìåãàáàéò ïàìÿòè ñóùåñòâóåò âñåãî 128 ñòðàíèö ïî 16 êèëîáàéò, ïðîíóìåðîâàííûõ ÷èñëàìè îò 0 äî 127.
Èìåÿ íîìåð òàêîé ñòðàíèöû â A, äåëàåì RRCA è âûâîäèì ðåçóëüòàò â ïîðò $00 èëè $10, âêëþ÷àÿ ñòðàíèöó ñ çàäàííûì íîìåðîì
â ñîîòâåòñòâóþùåå îêíî ïðîåöèðîâàíèÿ.
ïîðòû $16-$19, çàïèñü. Óñòàíîâêà ãðîìêîñòè â êàíàëàõ 5-8
Ýòè êàíàëû ñóùåñòâóþò òîëüêî â ðåæèìå, êîãäà 8 channels bit = 1. Â ðåæèìå 4 êàíàëîâ
ïðè çàïèñè äàííûõ â êàíàëû 1-4 ýòè äàííûå àâòîìàòè÷åñêè êîïèðóþòñÿ â êàíàëû 5-8, ò.î. ãðîìêîñòü êàíàëà
â 4-êàíàëüíîì ðåæèìå áîëüøå, ÷åì â 8-êàíàëüíîì.
Êàê èçâåñòíî, â ogs çàïèñü îòñ÷¸òà â ÖÀÏ êàíàëà ïðîèñõîäèò ÷òåíèåì ýòîãî îòñ÷¸òà èç ïàìÿòè:
Ïðè ÷òåíèè ñ àäðåñîâ $6000-$60FF ñ÷èòàííûé áàéò èä¸ò â ÖÀÏ 1îãî êàíàëà.
Ïðè ÷òåíèè ñ àäðåñîâ $6100-$61FF - â ÖÀÏ 2îãî êàíàëà
$6200-$62FF - 3åãî êàíàëà
$6300-$63FF - 4îãî êàíàëà
$6400-$64FF - ñíîâà 1îãî êàíàëà è òàê äàëåå äî $7F00-$7FFF - èä¸ò â 4ûé êàíàë.
 8-êàíàëüíîì ðåæèìå ýòà ñõåìà ìîäèôèöèðóåòñÿ î÷åâèäíûì îáðàçîì:
$60xx - 1ûé
$61xx - 2îé
$62xx - 3
$63xx - 4
$64xx - 5
$65xx - 6
$66xx - 7
$67xx - 8
$68xx - 1
è òàê äàëåå äî $7Fxx.
Ðàñïðåäåëåíèå êàíàëîâ ïî ñòåðåîïàíîðàìå:
êàíàëû 1,2,5,6 - ëåâûå
êàíàëû 3,4,7,8 - ïðàâûå
MP3 è SD-card
Äëÿ ñâÿçè ñ MP3-äåêîäåðîì (ma8201, àíàëîã vs1001) èñïîëüçóåòñÿ
2 êàíàëà spi. Ïåðâûé ðàáîòàåò òîëüêî íà ïåðåäà÷ó, ïåðåäà¸ò
íåïîñðåäñòâåííî mp3-äàííûå. Âòîðîé - óïðàâëÿþùèé, äâóíàïðàâëåííûé.
Äëÿ ñâÿçè ñ SD-êàðòî÷êîé èñïîëüçóåòñÿ 1 spi-êàíàë.
Ïåðåäà÷à áàéòà îñóùåñòâëÿåòñÿ ïóò¸ì åãî çàïèñè â ñïåöèàëüíûé ïîðò ïåðåäà÷è, àññîöèèðîâàííûé
ñ äàííûì SPI-êàíàëîì, ÷òî èíèöèèðóåò öèêë îáìåíà. Ïðèíÿòûé â ýòîì îáìåíå áàéò (äëÿ äâóíàïðàâëåííîãî
êàíàëà SPI) äîñòóïåí â ïîðòå ÷òåíèÿ. Êðîìå òîãî, âîçìîæíî ÷òåíèå ñ ïåðåçàïóñêîì îáìåíà (ïðè¸ì ñåêòîðà èç
SD-êàðòî÷êè áóäåò âûãëÿäåòü êàê INIR:INIR, ïåðåäà÷à - OTIR:OTIR).
DMA
Ñî ñòîðîíû ñïåêòðóìà DMA-êàíàë ñ NGS âûãëÿäèò êàê êóñîê ïàìÿòè, ïîäñòàâëÿåìûé NGS âìåñòî ÏÇÓ ñïåêòðóìà ïðè
÷òåíèè èëè çàïèñè äàííûõ ïî àäðåñàì $0000-$3FFF ïðè âêëþ÷¸ííîì ÏÇÓ (àêòèâåí ñèãíàë /CSROM íà zx-bus).
Îáìåí ïðîèñõîäèò ñëåäóþùèì îáðàçîì:
Íà áîðòó NGS åñòü àäðåñíûé óêàçàòåëü, ðåãèñòð ÷òåíèÿ è ðåãèñòð çàïèñè.
Åñëè ïðè âêëþ÷åííîì ðåæèìå DMA ñïåêòðóì ÷èòàåò èç îáëàñòè $0000-$3FFF
(êîíêðåòíûé àäðåñ â ýòèõ ïðåäåëàõ íå èìååò çíà÷åíèÿ) ïðè âêëþ÷åííîì ÏÇÓ, òî ïðîèñõîäèò ñëåäóþùåå:
1. ÏÇÓ áëîêèðóåòñÿ ñèãíàëîì RDROM zx-bus.
2. NGS âûäà¸ò íà ØÄ ñïåêòðóìà ñîäåðæèìîå ðåãèñòðà ÷òåíèÿ
3. NGS èíèöèèðóåò öèêë DMA â ñîáñòâåííóþ ïàìÿòü âûäà÷åé /BUSRQ íà ïðîöåññîð NGS; ïîñëå ïîëó÷åíèÿ /BUSAK íà ØÀ NGS âûñòàâëÿåòñÿ
ñîäåðæèìîå àäðåñíîãî óêàçàòåëÿ è ïðîèñõîäèò ÷òåíèå ýòîãî àäðåñà, ïðî÷èòàííûé áàéò ñîõðàíÿåòñÿ â ðåãèñòðå ÷òåíèÿ, à àäðåñíûé
óêàçàòåëü èíêðåìåíòèðóåòñÿ.
ïðîöåññû 1-2 è 3 èäóò ïàðàëëåëüíî òàêèì îáðàçîì, ÷òî ñïåêòðóì ïðèíèìàåò áàéò, ñ÷èòàííûé NGS èç ñâîåé ïàìÿòè â ïðåäûäóùèé öèêë.
Îäíàêî åñëè â ìîìåíò ÷òåíèÿ ñïåêòðóìîì áàéòà NGS åù¸ íå óñïåë åãî ïðî÷èòàòü èç ñîáñòâåííîé ïàìÿòè, òî ñïåêòðóìó âûñòàâëÿåòñÿ /WAIT.
Ïðè çàïèñè ñïåêòðóìîì â àäðåñà $0000-$3FFF ïðîèñõîäèò ñëåäóþùåå:
1. Çàïèñûâàåìûé áàéò ñîõðàíÿåòñÿ â ðåãèñòðå çàïèñè.
2. èíèöèèðóåòñÿ öèêë DMA, â êîòîðîì ïî àäðåñó óêàçàòåëÿ çàïèñûâàåòñÿ ïðèíÿòûé ñî ñïåêòðóìà áàéò.
/WAIT àíàëîãè÷íî âûäà¸òñÿ ñïåêòðóìó, åñëè ïðåäûäóùåå çíà÷åíèå ðåãèñòðà çàïèñè åù¸ íå ñîõðàíåíî â ïàìÿòè NGS.
Ïðè ðàáîòå Z80 ñïåêòðóìà íà ÷àñòîòå 3.5ÌÃö, à NGS - íà ÷àñòîòå 20 ÌÃö /WAIT'û âûäàâàòüñÿ, êàê ïðàâèëî, íå áóäóò
ïðè ëþáîé ïîñëåäîâàòåëüíîñòè ÷òåíèÿ èëè çàïèñè (â òîì ÷èñëå ÷åðåç ñòåê).
ÎÒÌÀÇÊÀ (disclaimer ïî-àíãëèéñêè êîòîðûé):
Âñÿ ïðèâåä¸ííàÿ èíôîðìàöèÿ ÿâëÿåòñÿ ïðåäâàðèòåëüíîé è ìîæåò áûòü èçìåíåíà áåç ïðåäóïðåæäåíèÿ.
Êîíå÷íûå ñïåöèôèêàöèè áóäóò äîñòóïíû â êîìïëåêòå äîêóìåíòàöèè, ïîñòàâëÿåìîé ñ ãîòîâûìè óñòðîéñòâàìè NGS.
(c) 2008 NedoPC
Ïî âñåì âîïðîñàì, ñâÿçàííûì ñ àðõèòåêòóðîé NGS, ïèøèòå íà lvd.mhm@gmail.com èëè lvd@dgap.mipt.ru