Subversion Repositories ngs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 lvd 1
  ╧юЁЄ√ єяЁртыхэш  яюёыхфютрЄхы№э√ьш шэЄхЁЇхщёрьш.
2
 
3
 ┬ NeoGS ёє∙хёЄтєхЄ ЄЁш яюёыхфютрЄхы№э√ї SPI-шэЄхЁЇхщёр фы  ЁрсюЄ√ ё SD-ърЁЄющ,
4
фы  єяЁртыхэш  MP3-фхъюфхЁюь ш фы  т√фрўш фрээ√ї т фхъюфхЁ. ╩рцф√щ шэЄхЁЇхщё
5
юсырфрхЄ ётюшьш ётющёЄтрьш, ъЁюьх Єюую, фы  єяЁртыхэш  MP3-фхъюфхЁюь
6
шёяюы№чє■Єё  фюяюыэшЄхы№э√х (яю юЄэю°хэш■ ъ SPI-шэЄхЁЇхщёрь) ёшуэры√.
7
─юяюыэшЄхы№э√х ёшуэры√, Ёртэю ъръ ш эхъюЄюЁ√х ётющёЄтр шэЄхЁЇхщёют
8
ъюэЄЁюышЁє■Єё  ўхЁхч фтр яюЁЄр: SSTAT ш SCTRL.
9
 
10
 ╧юЁЄ SSTAT (Єюы№ъю ўЄхэшх) ёыєцшЄ фы  ўЄхэш  ёюёЄю эш  эхъюЄюЁ√ї ёшуэрыют,
11
шьх■∙шї юЄэю°хэшх ъ єёЄЁющёЄтрь ш SPI-шэЄхЁЇхщёрь ш ёюфхЁцшЄ т ёхсх сшЄ√
12
B_MDDRQ, B_SDDET, B_SDWP ш B_MCRDY. ╫Єхэшх яюЁЄр тючтЁр∙рхЄ Єхъє∙хх
13
ёюёЄю эшх сшЄют.
14
 
15
 ╧юЁЄ SCTRL (ўЄхэшх шыш чряшё№) ёыєцшЄ фы  єяЁртыхэш  эхъюЄюЁ√ьш ёшуэрырьш,
16
шьх■∙шьш юЄэю°хэшх ъ єёЄЁющёЄтрь ш SPI-шэЄхЁЇхщёрь ш ёюфхЁцшЄ т ёхсх сшЄ√
17
B_SDNCS, B_MCNCS, B_MPXRS, B_MCSPD0, B_MCSPD1 ш B_MDHLF. ╫Єхэшх ¤Єюую яюЁЄр
18
тючтЁр∙рхЄ Єхъє∙хх ёюёЄю эшх сшЄют. ─ы  шчьхэхэш  цх ёюёЄю эш  сшЄют
19
шёяюы№чєхЄё  ёыхфє■∙р  яЁюЎхфєЁр.
20
 
21
 ─ы  єёЄрэютъш ъръюую-ышсю юЄфхы№эюую сшЄр т 1 т яюЁЄ SCTRL чряшё√трхЄё 
22
ўшёыю (1<<B_SETNCLR) + (1<<B_bit), уфх B_bit - юфшэ шч т√°хяхЁхўшёыхээ√ї сшЄют
23
яюЁЄр SCTRL, р B_SETNCLR - ёыєцхсэ√щ сшЄ ¤Єюую яюЁЄр.
24
 
25
 ─ы  єёЄртъш юЄфхы№эюую сшЄр т 0 т яюЁЄ чряшё√трхЄё  ўшёыю
26
(0<<B_SETNCLR) + (1<<B_bit).
27
 
28
 ╬фэютЁхьхээю яхЁхтхёЄш т 1 ышсю т 0 ьюцэю эхёъюы№ъю сшЄ, фы  ўхую ёыхфєхЄ эрсЁрЄ№
29
шї ьрёъє т чряшё√трхьюь ўшёых (ёь. яЁшьхЁ√).
30
 
31
 ╥ръшь юсЁрчюь, ёюёЄю эшх сшЄр B_SETNCLR т чряшё√трхьюь ўшёых юяЁхфхы хЄ, т ъръюх
32
ёюёЄю эшх (0 шыш 1) єёЄрэртыштрхЄё  ЄюЄ шыш шэющ сшЄ, т Єю тЁхь  ъръ юёЄры№э√х
33
сшЄ√ чряшё√трхьюую ўшёыр т√сшЁр■Є сшЄ√ яюЁЄр, ъюЄюЁ√х ш ЄЁхсєхЄё  єёЄрэютшЄ№
34
т 0 ышсю т 1.
35
 
36
╧ЁшьхЁ√:
37
 
38
   ld   A,(0<<B_SETNCLR) + (1<<B_MPXRS) ;єёЄрэютшЄ№ B_MPXRS т эюы№
39
   out  (SCTRL),A
40
 
41
   ld   A,(1<<B_SETNCLR) + (1<<B_MDHLF) ;єёЄрэютшЄ№ B_MDHLF т хфшэшЎє
42
   out  (SCTRL),A
43
 
44
   ld   A,(1<<B_SETNCLR) + (1<<B_SDNCS) + (1<<B_MCNCS) ;єёЄрэютшЄ№ B_SDNCS ш B_MCNCS т хфшэшЎє
45
   out  (SCTRL),A
46
 
47
   ld   A,(0<<B_SETNCLR) + (1<<B_MCSPD1) + (1<<B_MCSPD0) ;ёэрўрыр юўшёЄшЄ№ сшЄ√ B_MCSPD1 ш B_MCSPD1
48
   out  (SCTRL),A
49
   ld   A,(1<<B_SETNCLR) + (1<<B_MCSPD1) + (0<<B_MCSPD0) ;чрЄхь єёЄрэютшЄ№ шї т ёюёЄю эшх {B_MCSPD1,B_MCSPD0}={1,0}
50
   out  (SCTRL),A
51
 
52
 ─рээр  ёїхьр єяЁртыхэш  сшЄрьш яючтюы хЄ єяЁрты Є№ Ёрчышўэ√ьш сшЄрьш шч Ёрчышўэ√ї чрфрў:
53
эряЁшьхЁ юёэютэющ ъюф ьюцхЄ єяЁрты Є№ сшЄюь B_MCNCS, т Єю тЁхь  ъръ ъюф т яЁхЁ√трэшш ьюцхЄ
54
єяЁрты Є№ сшЄюь B_SDNCS. ╥ръ ъръ ърцфюх юЄфхы№эюх шчьхэхэшх сшЄют т яюЁЄє  ты хЄё  рЄюьрЁэ√ь
55
ш эх тыш хЄ эр фЁєушх сшЄ√ яюЁЄр, эх ЄЁхсєхЄё  чряЁх∙рЄ№ яЁхЁ√трэш  эр ьюьхэЄ√ шчьхэхэш  сшЄют,
56
ўЄю яюЄЁхсютрыюё№ с√ яЁш ЄЁрфшЎшюээюь яюфїюфх (di:in A,(port):and MASK:or BITS:out (port),A:ei).
57
 
58
 ╩юэъЁхЄэюх эрчэрўхэшх сшЄют т яюЁЄрї SCTRL ш SSTAT юяшёрэю эшцх т уыртрї *SPI-шэЄхЁЇхщё√*,
59
*╨рсюЄр ё SD-ърЁЄющ* ш *╨рсюЄр ё MP3-фхъюфхЁюь*.
60
 
61
 
62
  SPI-шэЄхЁЇхщё√.
63
 
64
SPI-шэЄхЁЇхщё√ шёяюы№чє■Єё  фы  єяЁртыхэш  ш юсьхэр фрээ√ьш ё SD-ърЁЄющ ш MP3-фхъюфхЁюь.
65
SPI-ьрёЄхЁ (ёїхьр, юёє∙хёЄты ■∙р  ЄръЄшЁютрэшх эр SPI-°шэх) эрїюфшЄё  т FPGA ш єяЁрты хЄё 
66
яЁюЎхёёюЁюь Z80, SPI-ёыхщт (ёїхьр, ЄръЄшЁєхьр  ьрёЄхЁюь) эрїюфшЄё  т Єюь шыш шэюь єёЄЁющёЄтх.
67
 
68
 ─рыхх яЁштюфшЄё  юсюс∙╕ээюх юяшёрэшх SPI-шэЄхЁЇхщёр ё Єюўъш чЁхэш  яЁюуЁрььшёЄр. ┬ NeoGS шёяюы№чєхЄё 
69
ЄЁш ёяхЎшрышчшЁютрээ√ї SPI-шэЄхЁЇхщёр, юфшэ шч ъюЄюЁ√ї юсьхэштрхЄё  фрээ√ьш ё SD-ърЁЄющ, фЁєующ -
70
ё єяЁрты ■∙шь ърэрыюь MP3-фхъюфхЁр, р яюёыхфэшщ - яюё√ырхЄ MP3-фрээ√х т фхъюфхЁ. ╩рцф√щ
71
шч эшї ьюцхЄ эх яюффхЁцштрЄ№ яюыэ√щ эрсюЁ ётющёЄт, яЁштхф╕ээ√ї т юсюс∙╕ээюь юяшёрэшш.
72
 
73
 ╬сьхэ фрээ√ьш ўхЁхч SPI-шэЄхЁЇхщё яЁюшчтюфшЄё  яюсрщЄэю. ┬ яЁюЎхёёх ърцфюую юсьхэр
74
ряярЁрЄэю яЁюшчтюфшЄё  яхЁхфрўр срщЄр юЄ FPGA ъ єёЄЁющёЄтє ш юфэютЁхьхээю яЁш╕ь срщЄр
75
юЄ єёЄЁющёЄтр яю фтєэряЁртыхээющ яюёыхфютрЄхы№эющ SPI-°шэх. ▌Єр °шэр ёюёЄюшЄ шч ёшуэрыют
76
MOSI (т√їюф SPI-ьрёЄхЁр ш тїюф SPI-ёыхщтр, яюёыхфютрЄхы№эр  яхЁхфрўр фрээ√ї юЄ ьрёЄхЁр ёыхщтє),
77
MISO (тїюф SPI-ьрёЄхЁр ш т√їюф SPI-ёыхщтр, яюёыхфютрЄхы№эр  яхЁхфрўр фрээ√ї юЄ ёыхщтр ьрёЄхЁє) ш
78
SCK (т√їюф SPI-ьрёЄхЁр ш тїюф SPI-ёыхщтр, ёшуэры ёшэїЁюэшчрЎшш яхЁхфрўш). ╙яЁртыхэшх
79
т√°хюяшёрээ√ьш ёшуэрырьш юёє∙хёЄты хЄё  яюыэюёЄ№■ ряярЁрЄэю, схч єўрёЄш  яЁюЎхёёюЁр Z80.
80
 
81
 ┬ чртшёшьюёЄш юЄ шёяюы№чєхьюую яЁюЄюъюыр ЁрсюЄ√ ё єёЄЁющёЄтюь,
82
чэрўхэшх ьюуєЄ шьхЄ№ юср срщЄр, яхЁхфрээ√ї т Ёрчэ√ї эряЁртыхэш ї, юфшэ шч эшї шыш
83
эш юфэюую (чэрўхэшх шьххЄ Єюы№ъю ёрь ЇръЄ юсьхэр).
84
 
85
 SPI-шэЄхЁЇхщё ёюфхЁцшЄ Єръцх ёшуэры т√сюЁъш NCS. ╧ЁюЎхёё юсьхэр, ъръ яЁртшыю, т√уы фшЄ
86
ёыхфє■∙шь юсЁрчюь: яЁюЎхёёюЁ Z80 яхЁхтюфшЄ ёшуэры NCS шч эхръЄштэюую (=1) т ръЄштэюх (=0)
87
ёюёЄю эшх, фрыхх ёыхфєхЄ ёхЁш  юсьхэют срщЄрьш, яюёых юъюэўрэш  ъюЄюЁющ яЁюЎхёёюЁ
88
тючтЁр∙рхЄ ёшуэры NCS т эхръЄштэюх ёюёЄю эшх (=1). ┬ эхъюЄюЁ√ї ёыєўр ї ЄЁхсєхЄё 
89
эрўшэрЄ№ юсьхэ яЁш эхръЄштэюь ёюёЄю эшш NCS, яЁш ¤Єюь, ъръ яЁртшыю, шьххЄ чэрўхэшх
90
ёрь ЇръЄ юсьхэр (эрышўшх ЄръЄшЁютрэш  ёшуэрыюь SCK эр SPI-°шэх), т Єю тЁхь  ъръ яхЁхфртрхь√х фрээ√х
91
шуэюЁшЁє■Єё  юсюшьш єўрёЄэшърьш юсьхэр (ьрёЄхЁюь ш ёыхщтюь).
92
 
93
 ╧ЁюЎхёё юсьхэр срщЄрьш яю SPI-°шэх шэшЎшшЁєхЄё  яЁюЎхёёюЁюь Z80 яєЄ╕ь чряшёш срщЄр т яюЁЄ
94
_SEND. ╟ряшёрээ√щ срщЄ яхЁхфр╕Єё  єёЄЁющёЄтє, т Єю тЁхь  ъръ яЁшэ Є√щ т юсьхэх срщЄ ёюїЁрэ хЄё 
95
т тЁхьхээюь ЁхушёЄЁх SPI-шэЄхЁЇхщёр. ╧юёых юъюэўрэш  юсьхэр яЁшэ Є√щ срщЄ шч тЁхьхээюую ЁхушёЄЁр
96
ьюцэю ёўшЄрЄ№ шч яюЁЄр _READ. ╚ч яюЁЄр _RSTR ёўшЄ√трхЄё  ЄюЄ цх срщЄ шч тЁхьхээюую ЁхушёЄЁр,
97
юфэръю ЇръЄ ўЄхэш  ¤Єюую яюЁЄр Єръцх чряєёърхЄ юсьхэ яю SPI-°шэх ё яхЁхфртрхь√ь срщЄюь 0xFF.
98
╥ръшь юсЁрчюь, ъюьрэф√
99
   in   A,(_RSTR)
100
   ld   B,A
101
¤ътштрыхэЄэ√ ё Єюўъш чЁхэш  яхЁхфртрхь√ї яю SPI-°шэх фрээ√ї ъюьрэфрь
102
   in   A,(_READ)
103
   ld   B,A
104
   ld   A,0xFF
105
   out  (_SEND),A
106
 
107
 ╧ЁюЎхёё срщЄютюую юсьхэр, шэшЎшшЁютрээ√щ чряшё№■ т яюЁЄ _SEND шыш ўЄхэшхь шч яюЁЄр _RSTR, чрэшьрхЄ
108
ъюэхўэюх тЁхь . SPI-шэЄхЁЇхщё√ ЄръЄшЁє■Єё  ўрёЄюЄющ яЁюЎхёёюЁр Z80 Fcpu. ╬фэръю ёшуэры SCK,  ты  ё№ т√їюфюь
109
ёшэїЁюээющ ёїхь√ SPI-шэЄхЁЇхщёр, ьюцхЄ шьхЄ№ ўрёЄюЄ√ Fcpu/2, Fcpu/4, Fcpu/8 шыш Fcpu/16. ┬ NeoGS
110
эх яЁхфєёьюЄЁхэ ёшуэры /WAIT фы  яЁюЎхёёюЁр Z80, ёыхфютрЄхы№эю ьхцфє яюёыхфютрЄхы№э√ьш шэшЎшшЁютрэш ьш
111
юсьхэр (чряшё№ т _SEND шыш ўЄхэшх _RSTR) фюыцэр яЁюуЁрььэю ЇюЁьшЁютрЄ№ё  ярєчр т юяЁхфхы╕ээюх ўшёыю
112
ЄръЄют яЁюЎхёёюЁр Z80. ╩Ёюьх Єюую, ярєчр фюыцэр ёюсы■фрЄ№ё  ьхцфє шэшЎшшЁютрэшхь юсьхэр ш ўЄхэшхь яЁшэ Єюую
113
срщЄр (ўЄхэшх _READ шыш _RSTR), р Єръцх ьхцфє шэшЎшшЁютрэшхь юсьхэр ш єёЄрэютъющ NCS т эхръЄштэюх ёюёЄю эшх.
114
┬ SPI-шэЄхЁЇхщёх яЁхфєёьюЄЁхэ Єръцх сшЄ уюЄютэюёЄш RDY, ъюЄюЁ√щ єёЄрэртыштрхЄё  т 0 ёЁрчє цх яюёых
115
шэшЎшшЁютрэш  юсьхэр ш тючтЁр∙рхЄё  т 1, ъръ Єюы№ъю юсьхэ чръюэўшыё . ─рээ√щ сшЄ шёяюы№чєхЄё , ъръ яЁртшыю,
116
т ёыєўрх эшчъшї ўрёЄюЄ ёшуэрыр SCK (эряЁшьхЁ, Fcpu/8 ш эшцх) фы  єяЁю∙хэш  яЁюЎхфєЁ юсьхэр.
117
 
118
-------------+------------------------------------+-----------------------------------
119
 ╫рёЄюЄр SCK,| ╧рєчр ьхцфє шэшЎшшЁютрэш ьш юсьхэр | ╧рєчр ьхцфє шэшЎшшЁютрэшхь юсьхэр
120
    Fsck     | шыш ьхцфє шэшЎшшЁютрэшхь юсьхэр ш  | ш ёэ Єшхь ръЄштэюую єЁютэ  NCS,
121
             | ўЄхэшхь яЁшэ Єюую срщЄр, ЄръЄ√ Z80 | ЄръЄ√ Z80
122
-------------+------------------------------------+-----------------------------------
123
     Fcpu/2  | 16 (шёяюы№чютрЄ№ RDY эх¤ЇЇхъЄштэю) | 18 (шёяюы№чютрЄ№ RDY эх¤ЇЇхъЄштэю)
124
     Fcpu/4  | 34 шыш шёяюы№чєщЄх сшЄ RDY         | 34 шыш шёяюы№чєщЄх сшЄ RDY
125
     Fcpu/8  | шёяюы№чєщЄх сшЄ RDY                | шёяюы№чєщЄх сшЄ RDY
126
     Fcpu/16 | шёяюы№чєщЄх сшЄ RDY                | шёяюы№чєщЄх сшЄ RDY
127
-------------+------------------------------------+-----------------------------------
128
 
129
╧юф ёыютрьш "ярєчр ьхцфє шэшЎшшЁютрэшхь юсьхэр ш ўхь-ышсю" яюфЁрчєьхтрхЄё  ъюышўхёЄтю
130
ЄръЄют Z80 ьхцфє эрўрыюь Ўшъыют ттюфр-т√тюфр, юёє∙хёЄты ■∙шї юяшёрээ√х фхщёЄтш . ╧ЁшьхЁ√:
131
 
132
   ld   C,_SEND
133
   out  (C),D
134
   nop
135
   out  (C),E ; т√фхЁцрэр ярєчр 16 ЄръЄют, шёяюы№чєщЄх фы  ЁрсюЄ√ эр Fsck=Fcpu/2
136
 
137
   ld   C,_READ
138
   out  (_SEND),A
139
   nop
140
   in   A,(C) ; т√фхЁцрэр ярєчр 16 ЄръЄют, шёяюы№чєщЄх фы  ЁрсюЄ√ эр Fsck=Fcpu/2
141
 
142
   ld   C,_SEND
143
   ld   HL,buffer
144
   outi
145
   outi ; т√фхЁцрэр ярєчр 16 ЄръЄют, шёяюы№чєщЄх фы  ЁрсюЄ√ эр Fsck=Fcpu/2
146
 
147
   ld   C,_RSTR
148
   ld   HL,buffer
149
   ini
150
   ini ; т√фхЁцрэр ярєчр 16 ЄръЄют, шёяюы№чєщЄх фы  ЁрсюЄ√ эр Fsck=Fcpu/2
151
 
152
   ld   C,_SEND
153
   out  (C),A
154
   nop
155
   in   A,(_READ) ; ═┼┬┼╨═╬!!!! ярєчр ьхцфє Ўшъырьш ттюфр-т√тюфр ёюёЄрты хЄ 15 ЄръЄют!!!!!!
156
 
157
 ╨рчышўэ√х SPI-шэЄхЁЇхщё√  ты ■Єё  яюыэюёЄ№■ эхчртшёшь√ьш, ёюсы■фхэшх ярєч юЄэюёшЄё  ъ яюёыхфютрЄхы№э√ь
158
юсЁр∙хэш ь ъ юфэюьє ш Єюьє цх шэЄхЁЇхщёє, эряЁшьхЁ:
159
 
160
   ld   C,SD_RSTR   ;ўЄхэшх фрээ√ї ё SD-ърЁЄ√ ш эхьхфыхээр  яхЁхё√ыър шї т MP3-фхъюфхЁ
161
   in   A,(C)       ;яЁхфяюырурхЄё , ўЄю юср шэЄхЁЇхщёр ЁрсюЄр■Є эр Fsck=Fcpu/2
162
   out  (MD_SEND),A ;шэЄхЁЇхщё√ эхчртшёшь√, эхьхфыхээр  яхЁхё√ыър срщЄр
163
   in   A,(C)       ;ьхцфє шэшЎшшЁютрэш ьш юсьхэр эр SPI-шэЄхЁЇхщёх SD-ърЁЄ√ ярєчр ёюёЄрты хЄ 23 ЄръЄр
164
   out  (MD_SEND),A ;ьхцфє шэшЎшшЁютрэш ьш юсьхэр эр SPI-шэЄхЁЇхщёх MP3-фхъюфхЁр ярєчр ёюёЄрты хЄ 23 ЄръЄр
165
 
166
 
167
  SPI-шэЄхЁЇхщё SD-ърЁЄ√.
168
 
169
 ╩ръ єяюьшэрыюё№ т√°х, ъюэъЁхЄэр  ЁхрышчрЎш  SPI-шэЄхЁЇхщёр эх юсырфрхЄ тёхьш ётющёЄтрьш юсюс∙╕ээюую юяшёрэш .
170
SPI-шэЄхЁЇхщё, шёяюы№чєхь√щ фы  юсьхэр ё SD-ърЁЄющ, юсырфрхЄ ыш°№ ёыхфє■∙шьш ётющёЄтрьш.
171
 
172
 ╧юЁЄ яюё√ыъш срщЄр ш шэшЎшшЁютрэш  юсьхэр: SD_SEND
173
 ╧юЁЄ ўЄхэш  яЁшэ Єюую срщЄр: SD_READ
174
 ╧юЁЄ ўЄхэш  яЁшэ Єюую срщЄр ш шэшЎшшЁютрэш  ёыхфє■∙хую юсьхэр ё яюё√ырхь√ь срщЄюь 0xFF: SD_RSTR
175
 ┴шЄ єяЁртыхэш  ёшуэрыюь NCS фы  SD-ърЁЄ√, эрїюф ∙шщё  т яюЁЄє SCTRL: B_SDNCS
176
 
177
 ╫рёЄюЄр SCK ЇшъёшЁютрэр ш ёюёЄрты хЄ Fsck=Fcpu/2, сшЄ RDY юЄёєЄёЄтєхЄ, ёыхфютрЄхы№эю
178
 ЄЁхсєхЄё  яЁюуЁрььэюх ёюсы■фхэшх ярєч 16 шыш 18 ЄръЄют.
179
 
180
 
181
  ╙яЁрты ■∙шщ SPI-шэЄхЁЇхщё MP3-фхъюфхЁр.
182
 
183
 ▌ЄюЄ шэЄхЁЇхщё юсырфрхЄ ёыхфє■∙шьш ётющёЄтрьш.
184
 
185
 ╧юЁЄ яюё√ыъш срщЄр ш шэшЎшшЁютрэш  юсьхэр: MC_SEND
186
 ╧юЁЄ ўЄхэш  яЁшэ Єюую срщЄр: MC_READ
187
 ╧юЁЄ ўЄхэш  ш шэшЎшшЁютрэш  юсьхэр юЄёєЄёЄтєхЄ.
188
 
189
 ┴шЄ єяЁртыхэш  ёшуэрыюь NCS фы  MP3-фхъюфхЁр, эрїюф ∙шщё  т яюЁЄє SCTRL: B_MCNCS
190
 ┴шЄ уюЄютэюёЄш SPI-шэЄхЁЇхщёр т яюЁЄє SSTAT: B_MCRDY
191
 
192
┬═╚╠└═╚┼! ╤ыхфєхЄ ў╕Єъю ЁрчышўрЄ№ сшЄ√ B_MCRDY ш B_MDDRQ т яюЁЄє SSTAT.
193
 
194
┴шЄ B_MCRDY юЄэюёшЄё  ъ єяЁрты ■∙хьє SPI-шэЄхЁЇхщёє MP3-фхъюфхЁр, юЄЁрцрхЄ ёюёЄю эшх
195
уюЄютэюёЄш шэЄхЁЇхщёр ш ухэхЁшЁєхЄё  ёїхьющ ¤Єюую SPI-шэЄхЁЇхщёр т FPGA.
196
 
197
┴шЄ B_MDDRQ юЄэюёшЄё  ъ SPI-шэЄхЁЇхщёє MP3-фрээ√ї фхъюфхЁр, ш юЄЁрцрхЄ уюЄютэюёЄ№
198
фхъюфхЁр яЁшэ Є№ юўхЁхфэющ сыюъ фрээ√ї яю ¤Єюьє шэЄхЁЇхщёє. ╤шуэры ухэхЁшЁєхЄё  фхъюфхЁюь
199
ш яЁюёЄю ЄЁрэёышЁєхЄё  FPGA ё т√їюфр фхъюфхЁр т сшЄ яюЁЄр SSTAT.
200
 
201
 ┴шЄ√ єёЄрэютъш ўрёЄюЄ√ Fsck єяЁрты ■∙хую шэЄхЁЇхщёр MP3-фхъюфхЁр B_MCSPD0 ш B_MCSPD1 т яюЁЄє SCTRL.
202
 
203
---------------------+---------
204
 {B_MCSPD1,B_MCSPD0} | Fsck
205
---------------------+---------
206
               {0,0} | Fcpu/2
207
               {0,1} | Fcpu/4
208
               {1,0} | Fcpu/8
209
               {1,1} | Fcpu/16
210
---------------------+---------
211
 
212
 
213
  SPI-шэЄхЁЇхщё MP3-фрээ√ї фхъюфхЁр.
214
 
215
 ╧юЁЄ яюё√ыъш срщЄр ш шэшЎшшЁютрэш  юсьхэр MD_SEND
216
 ╧юЁЄ ўЄхэш  яЁшэ Єюую срщЄр - юЄёєЄёЄтєхЄ.
217
 ╧юЁЄ ўЄхэш  ш шэшЎшшЁютрэш  - юЄёєЄёЄтєхЄ.
218
 
219
 ёшуэры NCS ш єяЁртыхэшх шь - юЄёєёЄтєхЄ.
220
 ┴шЄ уюЄютэюёЄш шэЄхЁЇхщёр - юЄёєЄёЄтєхЄ (ёыхфєхЄ ёюсы■фрЄ№ ярєч√ яЁюуЁрььэю).
221
 
222
 ┴шЄ єёЄрэютъш ўрёЄюЄ√ Fsck шэЄхЁЇхщёр фрээ√ї B_MDHLF т яюЁЄє SCTRL:
223
 
224
---------+--------
225
 B_MDHLF | Fsck
226
---------+--------
227
 
228
       1 | Fcpu/4
229
---------+--------
230
 
231
╫рёЄюЄ√ Fcpu/8 ш Fcpu/16 эх яюффхЁцштр■Єё .
232
 
233
 
234
  ╨рсюЄр ё SD-ърЁЄющ.
235
 
236
 ─ы  ЁрсюЄ√ ё SD-ърЁЄющ шёяюы№чєхЄё  ряярЁрЄэ√щ SPI-шэЄхЁЇхщё, юяшёрэшх ъюЄюЁюую эрїюфшЄё  т уыртх *SPI-шэЄхЁЇхщё√*
237
 
238
 ╩Ёюьх фрээюую шэЄхЁЇхщёр яЁхфєёьюЄЁхэ√ Єръцх сшЄ√ B_SDDET ш B_SDWP т яюЁЄє SSTAT.
239
 B_SDDET Ёртхэ эєы■ (???) яЁш эрышўшш ърЁЄ√ т ёыюЄх, шэрўх хфшэшЎр
240
 B_SDWP Ёртхэ эєы■ (???) яЁш єёЄрэютыхээющ эр ърЁЄх чр∙шЄх чряшёш (яЁш яюью∙ш Їырцър эр ъюЁяєёх ърЁЄ√), шэрўх хфшэшЎр.
241
 
242
┬═╚╠└═╚┼! юср ёшуэрыр ухэхЁ Єё  ьхїрэшўхёъшьш ъюэЄръЄрьш т ёыюЄх SD-ърЁЄ√, ёыхфютрЄхы№эю шьх■Є фЁхсхчу.
243
╩юэЄръЄ√ Єръцх ьюуєЄ эрЁє°рЄ№ё  (эряЁшьхЁ, хёыш ьхёЄю ъюэЄръЄр чруЁ чэхэю), ш ъръ ёыхфёЄтшх, ьюуєЄ
244
т√фртрЄ№ ыюцэ√х яюърчрэш  (хфшэшЎр, ъюуфр фюыцхэ с√Є№ эєы№).
245
╘ырцюъ чр∙шЄ√ юЄ чряшёш эшъръ эх ёт чрэ ¤ыхъЄЁшўхёъш ё ¤ыхъЄЁюэшъющ SD-ърЁЄ√, ёыхфютрЄхы№эю чряшё√трЄ№ эр
246
ърЁЄє ьюцэю ш яЁш ёюёЄю эшш ёшуэрыр B_SDWP=0. └эрыюушхщ  ты хЄё  Їырцюъ чр∙шЄ√ юЄ чряшёш эр ушсъшї ьруэшЄэ√ї
247
фшёърї - юфэръю юэ, т юЄышўшх юЄ B_SDWP шёяюы№чєхЄё  ряярЁрЄэю т ъюэЄЁюыыхЁх фшёъютюфр ш ёрьюь фшёъютюфх.
248
╩Ёюьх Єюую, эр яырЄрї NeoGS rev.A ёшуэры B_SDDET яютЄюЁ хЄ ёюёЄю эшх ётхЄюфшюфр (уюЁшЄ - 0, эх уюЁшЄ - 1).
249
═р яырЄрї NeoGS rev.B юэ юяЁхфхы хЄё  ъюэЄръЄрьш эр ёыюЄх SD-ърЁЄ√.
250
 
251
═х ЁхъюьхэфєхЄё  шёяюы№чютрЄ№ фрээ√х ёшуэры√ т яЁюуЁрььрї. ═рышўшх т ёыюЄх SD-ърЁЄ√ ёыхфєхЄ юяЁхфхы Є№
252
яЁюуЁрььэю (єфр╕Єё  ыш яЁютхёЄш шэшЎшрышчрЎш■ ърЁЄ√ чр ъюэхўэюх тЁхь ).
253
 
254
 ╧ЁюЄюъюы√ яЁюуЁрььэюую юсьхэр ё ърЁЄющ ёыхфєхЄ шёърЄ№ т ёЄрэфрЁЄрї эр SD-ърЁЄ√.
255
 
256
 ╫рёЄюЄр яЁюЎхёёюЁр т NeoGS трЁ№шЁєхЄё  юЄ 10 фю 24 ╠├Ў, ёыхфютрЄхы№эю, ўрёЄюЄр Fsck шчьхэ хЄё 
257
юЄ 5 фю 12 ╠├Ў, ўЄю ыхцшЄ т яЁхфхырї ёяхЎшЇшърЎшщ SD-ърЁЄ эр ¤Єє ўрёЄюЄє (эх сюыхх 25 ╠├Ў).
258
 
259
 ╧юЁЄ SD_RSTR, ъюЄюЁ√щ т√фр╕Є яЁхф√фє∙шщ яЁшэ Є√щ срщЄ ш шэшЎшшЁєхЄ юсьхэ ё яхЁхфртрхь√ь срщЄюь 0xFF,
260
ьюцхЄ шёяюы№чютрЄ№ё  фы  тёхї ёЎхэрЁшхт юсьхэр фрээ√ьш ш ъюьрэфрьш ё SD-ърЁЄющ яю рэрыюушш ЁрсюЄ√ ё
261
шэЄхЁЇхщёюь SD-ърЁЄ√ т Z-controller'х, ёыхфєхЄ ыш°№ яюьэшЄ№ яЁю яЁюуЁрььэ√х ярєч√ 16 шыш 18 ЄръЄют.
262
 
263
 
264
  ╨рсюЄр ё MP3-фхъюфхЁюь.
265
 
266
 ╧юьшью фтєї SPI-шэЄхЁЇхщёют (ёь. уыртє *SPI-шэЄхЁЇхщё√*), фы  єяЁртыхэш  фхъюфхЁюь шёяюы№чє■Єё 
267
ёыхфє■∙шх ёшуэры√:
268
 
269
 ёшуэры т фхъюфхЁ, єяЁрты хь√щ сшЄюь B_MPXRS т яюЁЄє SCTRL - ряярЁрЄэ√щ ёсЁюё фхъюфхЁр ъюуфр сшЄ т эєых,
270
 эюЁьры№эр  ЁрсюЄр ъюуфр сшЄ т хфшэшЎх.
271
 
272
 ёшуэры ё фхъюфхЁр, ёюёЄю эшх ъюЄюЁюую юЄЁрцрхЄё  т сшЄх B_MDDRQ яюЁЄр SSTAT - уюЄютэюёЄ№ яЁш╕ьр яюЁЎшш
273
 MP3-фрээ√ї ўхЁхч ёююЄтхЄёЄтє■∙шщ SPI-шэЄхЁЇхщё (MD_SEND).
274
 
275
 ┬ NeoGS шёяюы№чє■Єё  MP3-фхъюфхЁ√ фтєї Єшяют: MA8201 ш MA8201A, ъюЄюЁ√х  ты ■Єё  рэрыюурьш, ёююЄтхЄёЄтхээю,
276
фхъюфхЁют VS1001 ш VS1011 ЇшЁь√ VLSI Solutions Oy (http://www.vlsi.fi). ╧юфЁюсэ√х юяшёрэш  ш яЁшэЎшя√ ЁрсюЄ√
277
ёыхфєхЄ шёърЄ№ т фрЄр°шЄрї (datasheets) ш ряяэюЄрї (application notes) эр ьшъЁюёїхь√ ЇшЁь√ VLSI Solutions Oy
278
эр шї шэЄхЁэхЄ-ёрщЄх. ─ры№эхщ°хх юсёєцфхэшх MP3-фхъюфхЁют т фрээюь ЁєъютюфёЄтх яюфЁрчєьхтрхЄ яЁхфтрЁшЄхы№эюх
279
ючэръюьыхэшх ўшЄрЄхы  ё єърчрээ√ьш фюъєьхэЄрьш.
280
 
281
 ╟фхё№ яЁштхфхэ√ ыш°№ юёюсю ёє∙хёЄтхээ√х чрьхўрэш .
282
 
283
 1. ─хъюфхЁ√ ЄръЄшЁє■Єё  ътрЁЎхт√ь ЁхчюэрЄюЁюь 14 ╠├Ў, ўЄю  ты хЄё  эхсюы№°шь яЁхт√°хэшхь
284
    юЇшЎшры№эющ ьръёшьры№эющ ўрёЄюЄ√ ёюуырёэю фрЄр°шЄрь. ─ы  эюЁьры№эющ ЁрсюЄ√ (фхъюфшЁютрэшх
285
    MP3-Їрщыют ё ы■с√ь сшЄЁхщЄюь) ёыхфєхЄ ╬┴▀╟└╥┼╦▄═╬ шёяюы№чютрЄ№ тэєЄЁхээхх єфтюхэшх ЄръЄютющ
286
    ўрёЄюЄ√, яЁхфєёьюЄЁхээюх т фхъюфхЁрї (Ёрсюўр  ўрёЄюЄр 28 ╠├Ў).
287
 
288
 2. ╠ръёшьры№э√х ўрёЄюЄ√ Fsck фы  юсюшї SPI-шэЄхЁЇхщёют фхъюфхЁр юуЁрэшўхэ√ ёыхфє■∙шьш тхышўшэрьш.
289
    ╧Ёш яхЁхфрўх срщЄют яю єяЁрты ■∙хьє шэЄхЁЇхщёє (ёюфхЁцшьюх MC_READ эх шёяюы№чєхЄё ),
290
    Ёртэю ъръ ш яю шэЄхЁЇхщёє MP3-фрээ√ї ўрёЄюЄр ёшуэрыр SCK ёююЄтхЄётє■°хую шэЄхЁЇхщёр Fsck < Fdec/4,
291
    уфх Fdec - ўрёЄюЄр, эр ъюЄюЁющ ЁрсюЄрхЄ фхъюфхЁ (Fdec=14 ╠├Ў, хёыш тэєЄЁхээхх єфтюхэшх т√ъы■ўхэю,
292
    шыш Fdec=28 ╠├Ў т яЁюЄштэюь ёыєўрх).
293
 
294
    ╧Ёш яЁш╕ьх срщЄют яю єяЁрты ■∙хьє шэЄхЁЇхщёє (ёюфхЁцшьюх MC_READ шёяюы№чєхЄё ) Fsck < Fdec/6.
295
 
296
    ┬ юсюшї ёыєўр ї ёыхфєхЄ єўшЄ√трЄ№ Єхъє∙є■ ўрёЄюЄє яЁюЎхёёюЁр Z80, ёюёЄю эшх сшЄют, чрфр■∙шї
297
    Fsck ърцфюую шэЄхЁЇхщёр (B_MCSPD1,B_MCSPD0,B_MDHLF) ш Єю, тъы■ўхэю ыш тэєЄЁхээхх єфтюхэшх
298
    ЄръЄютющ ўрёЄюЄ√ фхъюфхЁр шыш т√ъы■ўхэю.
299
 
300
 3. ╧юёых ряярЁрЄэюую шыш яЁюуЁрььэюую ёсЁюёр тэєЄЁхээхх єфтюхэшх юърч√трхЄё  т√ъы■ўхээ√ь.
301
    ╤ыхфєхЄ хую тъы■ўшЄ№, яЁюЎхфєЁр тъы■ўхэш  юЄышўрхЄё  фы  Ёрчэ√ї (VS1001 ш VS1011) фхъюфхЁют.
302
    ┬ ёыєўрх VS1001 яюёых єёЄрэютъш ЁхушёЄЁр CLOCKF ёыхфєхЄ чряшёрЄ№ ъюэёЄрэЄє 0x8008 т эхфюъєьхэЄшЁютрээ√щ
303
    ЁхушёЄЁ INT_FCNTLH (ёь. ряяэюЄ vs10XXan.pdf). ┬ ёыєўрх VS1011 эр ьхёЄх ЁхушёЄЁр INT_FCNTLH юърч√трхЄё 
304
    фЁєующ яю ЇєэъЎшш ЁхушёЄЁ ш чряшё№ т эхую яЁюшчтюфшЄ№ эх ЄЁхсєхЄё , р фы  тъы■ўхэш  єфтюшЄхы  ЄЁхсєхЄё 
305
    чряшёрЄ№ чэрўхэшх ўрёЄюЄ√ фшёъЁхЄшчрЎшш (ы■сюх яЁшьхэшьюх) т ЁхушёЄЁ AUDATA (ёь. ряяэюЄ vs10XXan.pdf).
306
    ┬ фры№эхщ°хь ръЄєры№эюх чэрўхэшх ўрёЄюЄ√ фшёъЁхЄшчрЎшш єёЄрэютшЄё  ртЄюьрЄшўхёъш. ┬ юсюшї ёыєўр ї ъюэёЄрэЄр,
307
    чряшё√трхьр  т ЁхушёЄЁ CLOCKF, юёЄр╕Єё  эхшчьхээющ (0x9B58).
308
 
309
 4. фы  юяЁхфхыхэш  Єшяр фхъюфхЁр (VS1001 шыш VS1011) ёыхфєхЄ яЁюўшЄрЄ№ ЁхушёЄЁ STATUS ш чруы эєЄ№
310
    т сшЄ√ 7:4 ¤Єюую ЁхушёЄЁр. ╥ръ ъръ юяЁхфхы Є№ Єшя фхъюфхЁр ЄЁхсєхЄё  фю тъы■ўхэш  єфтюшЄхы  (яєэъЄ 3),
311
    ёыхфєхЄ юёюсю тэшьрЄхы№эю юЄэхёЄшё№ ъ яєэъЄє 2: Fdec/6 т ¤Єюь ёыєўрх ёюёЄртшЄ 2.3 ╠├Ў, ш Fsck
312
    фы  ъюЁЁхъЄэюую ўЄхэш  эх фюыцэр с√Є№ сюыхх ¤Єюую чэрўхэш  (ёь. уыртє *SPI-шэЄхЁЇхщё√*).
313
 
314
 5. ╧Ёш яЁюшуЁ√трэшш эхъюЁЁхъЄэюую шыш шёяюЁўхээюую MP3-Їрщыр, тёыхфёЄтшх ¤ыхъЄЁюьруэшЄэ√ї яюьхї ш Є.ф.
315
    фхъюфхЁ ьюцхЄ чртшёэєЄ№: яЁш ¤Єюь, ъръ яЁртшыю, яЁюшуЁ√трэшх чтєър яЁхъЁр∙рхЄё , р ёў╕Єўшъ тЁхьхэш
316
    яЁюшуЁ√трэш  (ЁхушёЄЁ DECODE_TIME) эх шэъЁхьхэЄшЁєхЄё . ╥ръцх яЁшчэръюь чртшёрэш   ты хЄё  ўхЁхёўєЁ
317
    эшчър  шыш ўхЁхcўєЁ т√ёюър  ёъюЁюёЄ№ яюЄЁхсыхэш  фхъюфхЁюь MP3-фрээ√ї (ёь. ряяэюЄ vs10XXan.pdf).
318
    ╧Ёш юсэрЁєцхэшш чртшёрэш  эхюсїюфшью т√яюыэшЄ№ яЁюуЁрььэ√щ ёсЁюё, яютЄюЁшЄ№ яЁюЎхфєЁє шэшЎшрышчрЎшш
319
    ш тэют№ юсЁрЄшЄ№ тэшьрэшх эр яЁшчэръш чртшёрэш . ┬ ёыєўрх, хёыш фхъюфхЁ эх 'юЄтшё', эхюсїюфшью
320
    яЁютхёЄш ряярЄрЄэ√щ ёсЁюё (сшЄ B_MPXRS т яюЁЄє SCTRL).
321
 
322
    ├Ёєс√щ чрьхЁ ёъюЁюёЄш яюЄЁхсыхэш  фхъюфхЁюь MP3-фрээ√ї ьюцэю яЁютхёЄш, шёяюы№чє  ъръ ЁхяхЁ
323
    чтєъют√х яЁхЁ√трэш  NeoGS, ёыхфє■∙шх ё ўрёЄюЄющ 37500 ├Ў эхчртшёшью юЄ ўрёЄюЄ√ яЁюЎхёёюЁр Z80.
324
 
325
 6. ╧юёых юъюэўрэш  фрээ√ї т MP3-Їрщых ЁхъюьхэфєхЄё  т√фрЄ№ т фхъюфхЁ 2048 срщЄ эєыхщ (B_MDDRQ, MD_SEND),
326
    яюёых ўхую фы  эрўрыр фхъюфшЁютрэш  ёыхфє■∙хую Їрщыр эхюсїюфшью яЁютхёЄш яЁюуЁрььэ√щ ёсЁюё.
327
    ╧Ёшьхэ Є№ тьхёЄю эхую ряярЁрЄэ√щ ёсЁюё эх ЁхъюьхэфєхЄё , Єръ ъръ яЁш ¤Єюь тючэшър■Є ∙хыўъш
328
    т чтєъютюь ЄЁръЄх фхъюфхЁр.
329
 
330
 7. ╤ыхфєхЄ юЄьхЄшЄ№, ўЄю єяЁртыхэшх Ёхцшьрьш bass/treble ш surround т юсюшї Єшярї фхъюфхЁют
331
    ёє∙хёЄтхээю ЁрчышўрхЄё .
332
 
333
 8. ┬ фхъюфхЁх VS1011 яЁхфєёьюЄЁхэю эхёъюы№ъю Ёхцшьют яюё√ыъш MP3-фрээ√ї. ╤ыхфєхЄ шёяюы№чютрЄ№ ыш°№
334
    єёЄрэютыхээ√щ яю єьюыўрэш■ яюёых ёсЁюёр Ёхцшь ёютьхёЄшьюёЄш ё фхъюфхЁюь VS1001 ё єўрёЄшхь ёшуэрыр
335
    сшЄютющ ёшэїЁюэшчрЎшш BSYNC. ╤шуэры BSYNC ухэхЁшЁєхЄё  ряярЁрЄэю ёїхьющ SPI-шэЄхЁЇхщёр фы 
336
    MP3-фрээ√ї т FPGA ш тэшьрэш  ъ ёхсх ёю ёЄюЁюэ√ яЁюуЁрьь√ Z80 эх ЄЁхсєхЄ.
337