Rev 476 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?
ôîðìàò è àäðåñà ðåãèñòðîâ íà spi-øèíå avr<>fpga.
íàïîìèíàþ, óñòàíîâêà íîìåðà - ïðè spics_n=1, äàëåå â 0 è øë¸ì áàéò (1 èëè
íåñêîëüêî).
Ñòàòóñ ïîäãîòàâëèâàåòñÿ ê âûäà÷å (ëî÷èòñÿ) â ìîìåíò spics_n 0->1.
Còàòóñ: (ñ÷èòûâàåòñÿ ïðè spics_n=1 â ìîìåíò çàïèñè íîìåðà):
bit.7 - Read-Not-Write (rnw): =1 - ñïåêòðóì çàâàèòèëñÿ íà ÷òåíèè, =0 - íà çàïèñè.
\bits.6..0 - êàêîé äåâàéñ çàâàèòèë, åñëè =1. Ïîêà åñòü
bit.0 - åñëè 1, çàâàèòèëè ãëþê-÷àñû.
bit.1 - 1 åñëè çàâàèòèë ìîäåì ïî êîíäðàøêèíó
×òîáû òîëüêî ñ÷èòàòü ñòàòóñ - íàäî ñãåíåðèðîâàòü ôðîíò spics_n 0->1.
Åñëè spics_n áûë â 1 - íàäî åãî ïåðåä¸ðíóòü.
ïîñëå ïåðåäåðãà spics_n 0->1 íîìåð çàíîâî íàäî ñòàâèòü.
ðåãèñòð $00 - äåôîëòíûé íîìåð, â íåãî ìîæíî ïèñàòü, ýòî ïîéä¸ò â
èãíîð. Óñòàíàâëèâàåòñÿ àâòîìàòè÷åñêè â ìîìåíò spics_n 0->1
ðåãèñòð $10 - äàííûå äëÿ êëàâèàòóðû (40 áèò ñäâèãîâûé ðåã), çàïîìèíàþòñÿ
ïîñëåäíèå 40 âäâèíóòûõ áèòîâ. Ïðîöåññ âäâèãà áèò ìîæíî ïðîâîäèòü èëè ñðàçó
ïîêà spics_n=0, èëè ñ ïåðåðûâàìè, êàæäûé ðàç óñòàíàâëèâàÿ íîìåð ýòîãî
ðåãèñòðà.
ðåãèñòð $11 - â ìîìåíò spics_n 0->1 ñ ýòèì óñòàíîâëåííûì ðåãèñòðîì
óõîäÿò äàííûå â ðàáî÷èé ðåãèñòð êëàâèàòóðû (òî, ÷òî çàïèñàíî áûëî â $10).
ðåãèñòð $20 - X coord ìûøè
$21 - Y coord ìûøè
$22 - êíîïêè ìûøè
$23 - êåìñòîí æîéñòèê
êàæäûé èç ðåãèñòðîâ óõîäèò â ñïåêòðóì ïî ôàêòó spics_n 0->1
ðåãèñòð $30 - ðåãèñòð ñáðîñà - çàäàåò ñàì ôàêò ñáðîñà Z80. Ôàêò
ñáðîñà - spics_n 0->1. âäâèãàòü äàííûå íå îáÿçàòåëüíî (îíè â èãíîð).
÷àñèêè è ïðî÷èå âàèò-ïîðòû:
$40 - ðåãèñòð ÷òåíèÿ-çàïèñè äàííûõ, êîòîðûå îæèäàåò ñïåêòðóì â âàèòå. Òî, ÷òî
â íåãî ïèøåòñÿ - èä¸ò â ñïåêòðóì, åñëè òîò âàèòèòñÿ íà ÷òåíèè, èëè æå èç ýòîãî
ðåãèñòðà ñ÷èòûâàåòñÿ òî, ÷òî ñïåêòðóìîì çàïèñàíî, åñëè òîò âàèòèòñÿ íà çàïèñè.
Ïîñëå îáìåíà, â ìîìåíò spics_n 0->1 ñïåêòðóì ðàçâàèòèâàåòñÿ, ïðåðûâàíèå íà
àâðêó ñíèìàåòñÿ, èç ñòàòóñà áèòèê îáíóëÿåòñÿ.
ðåãèñòð $40 îáùèé äëÿ âñåõ âàèò-ïîðòîâ
$41 [7:0] - ðåãèñòð ÷òåíèÿ àäðåñà, êîòîðûé áûë óñòàíîâëåí ñïåêòðóìîì äëÿ ãëþêî÷àñîâ.
$42 [2:0] - ðåãèñòð, â êîòîðîì àäðåñà ØÀ Z80 A[10:8] â ìîìåíò ÷òåíèÿ èëè çàïèñè â
êîìïîðòû ($F8EF..$FFEF). Ïîçâîëÿåò, ñîáñòâåííî, ðàçëè÷àòü ýòè ñàìûå $F8..$FF.
Êîíôèã - ðåãèñòðû:
config0: $50 - òîëüêî íà çàïèñü:
áèò 0 - âêëþ÷åíèå ÂÃÀ (=1) ðåãèñòð àêòóàëèçèðóåòñÿ ïîñëå çàïèñè äàííûõ ïî ôðîíòó spics_n 0->1.
áèò 1 - ïîäà÷à íìè. ïåðåõîä èç 1 â 0 âûçûâàåò nmi íà z80
áèò 2 - òðàíñëèðóåòñÿ íà $FE.D6 (÷òåíèå ñïåêîì ñ ìàôîíà).
áèò 3 - åñëè 1, òî âûâîäèòñÿ tape-out, èíà÷å - beeper
Äîñòóï ê SD-êàðòå:
Ðåãèñòð äàííûõ - $60,
ðåãèñòð óïðàâëåíèÿ - $61:
bit 7 - lock (R/W), 0 ïîñëå ñáðîñà.
bit 0 - CS_n íà êàðòó (W/O), 1 ïîñëå ñáðîñà.
Ïîëó÷åíèå äîñòóïà:
1. çàïèñàòü â $61 CS_n=1, lock=1
2. Ñ÷èòûâàÿ $61, äîæäàòüñÿ lock=1. Ýòî ïðîèçîéä¸ò, êîãäà Z80 óñòàíîâèò CS_n â 1 èëè æå ñðàçó,
åñëè Z80 CS_n ñòîÿëî â 1. Ïîêà lock=1, Z80 íå âèäèò SD-êàðòó, äîñòóï ó ÀÂÐêè, ïîêà îíà
íå îòäàñò äîñòóï îáðàòíî Z80.
Ðàáîòà ñ SD-êàðòîé:
1. Óäåðæèâàÿ lock=1, óïðàâëÿòü CS_n.
2. Ñ÷èòàííîå èç $60 çíà÷åíèå - ïîñëåäíèé ïðèøåäøèé áàéò èç SD-êàðòû, îòïðàâëåííîå â $60
çíà÷åíèå - îòïðàâëÿåòñÿ â SD-êàðòó. Îáìåí ñ SD-êàðòîé èíèöèèðóåòñÿ ñðàçó æå ïîñëå
spics_n 0->1, ïîòîìó ïåðåä ñ÷èòûâàíèåì ïðèíÿòîãî â ïðîöåññå ýòîãî îáìåíà áàéòà
íåîáõîäèìà ïàóçà. Òàêîé ïàóçîé ñëóæèò óñòàíîâêà àäðåñà ðåãèñòðà ïðè spi_cs_n=1.
Âíèìàíèå: ïåðâîå ñ÷èòàííîå èç $60 çíà÷åíèå ïîñëå óñòàíîâêè lock 0->1 - ñëó÷àéíîå.
Îòïóñêàíèå SD-êàðòû:
1. Óäåðæèâàÿ lock=1, óñòàíîâèòü CS_n=1.
2. Óñòàíîâèòü lock=0, CS_n=1.