Blame | Last modification | View Log | Download | RSS feed | ?url?
╧юЁЄ√ єяЁртыхэш яюёыхфютрЄхы№э√ьш шэЄхЁЇхщёрьш.
┬ NeoGS ёє∙хёЄтєхЄ ЄЁш яюёыхфютрЄхы№э√ї SPI-шэЄхЁЇхщёр фы ЁрсюЄ√ ё SD-ърЁЄющ,
фы єяЁртыхэш MP3-фхъюфхЁюь ш фы т√фрўш фрээ√ї т фхъюфхЁ. ╩рцф√щ шэЄхЁЇхщё
юсырфрхЄ ётюшьш ётющёЄтрьш, ъЁюьх Єюую, фы єяЁртыхэш MP3-фхъюфхЁюь
шёяюы№чє■Єё фюяюыэшЄхы№э√х (яю юЄэю°хэш■ ъ SPI-шэЄхЁЇхщёрь) ёшуэры√.
─юяюыэшЄхы№э√х ёшуэры√, Ёртэю ъръ ш эхъюЄюЁ√х ётющёЄтр шэЄхЁЇхщёют
ъюэЄЁюышЁє■Єё ўхЁхч фтр яюЁЄр: SSTAT ш SCTRL.
╧юЁЄ SSTAT (Єюы№ъю ўЄхэшх) ёыєцшЄ фы ўЄхэш ёюёЄю эш эхъюЄюЁ√ї ёшуэрыют,
шьх■∙шї юЄэю°хэшх ъ єёЄЁющёЄтрь ш SPI-шэЄхЁЇхщёрь ш ёюфхЁцшЄ т ёхсх сшЄ√
B_MDDRQ, B_SDDET, B_SDWP ш B_MCRDY. ╫Єхэшх яюЁЄр тючтЁр∙рхЄ Єхъє∙хх
ёюёЄю эшх сшЄют.
╧юЁЄ SCTRL (ўЄхэшх шыш чряшё№) ёыєцшЄ фы єяЁртыхэш эхъюЄюЁ√ьш ёшуэрырьш,
шьх■∙шьш юЄэю°хэшх ъ єёЄЁющёЄтрь ш SPI-шэЄхЁЇхщёрь ш ёюфхЁцшЄ т ёхсх сшЄ√
B_SDNCS, B_MCNCS, B_MPXRS, B_MCSPD0, B_MCSPD1 ш B_MDHLF. ╫Єхэшх ¤Єюую яюЁЄр
тючтЁр∙рхЄ Єхъє∙хх ёюёЄю эшх сшЄют. ─ы шчьхэхэш цх ёюёЄю эш сшЄют
шёяюы№чєхЄё ёыхфє■∙р яЁюЎхфєЁр.
─ы єёЄрэютъш ъръюую-ышсю юЄфхы№эюую сшЄр т 1 т яюЁЄ SCTRL чряшё√трхЄё
ўшёыю (1<<B_SETNCLR) + (1<<B_bit), уфх B_bit - юфшэ шч т√°хяхЁхўшёыхээ√ї сшЄют
яюЁЄр SCTRL, р B_SETNCLR - ёыєцхсэ√щ сшЄ ¤Єюую яюЁЄр.
─ы єёЄртъш юЄфхы№эюую сшЄр т 0 т яюЁЄ чряшё√трхЄё ўшёыю
(0<<B_SETNCLR) + (1<<B_bit).
╬фэютЁхьхээю яхЁхтхёЄш т 1 ышсю т 0 ьюцэю эхёъюы№ъю сшЄ, фы ўхую ёыхфєхЄ эрсЁрЄ№
шї ьрёъє т чряшё√трхьюь ўшёых (ёь. яЁшьхЁ√).
╥ръшь юсЁрчюь, ёюёЄю эшх сшЄр B_SETNCLR т чряшё√трхьюь ўшёых юяЁхфхы хЄ, т ъръюх
ёюёЄю эшх (0 шыш 1) єёЄрэртыштрхЄё ЄюЄ шыш шэющ сшЄ, т Єю тЁхь ъръ юёЄры№э√х
сшЄ√ чряшё√трхьюую ўшёыр т√сшЁр■Є сшЄ√ яюЁЄр, ъюЄюЁ√х ш ЄЁхсєхЄё єёЄрэютшЄ№
т 0 ышсю т 1.
╧ЁшьхЁ√:
ld A,(0<<B_SETNCLR) + (1<<B_MPXRS) ;єёЄрэютшЄ№ B_MPXRS т эюы№
out (SCTRL),A
ld A,(1<<B_SETNCLR) + (1<<B_MDHLF) ;єёЄрэютшЄ№ B_MDHLF т хфшэшЎє
out (SCTRL),A
ld A,(1<<B_SETNCLR) + (1<<B_SDNCS) + (1<<B_MCNCS) ;єёЄрэютшЄ№ B_SDNCS ш B_MCNCS т хфшэшЎє
out (SCTRL),A
ld A,(0<<B_SETNCLR) + (1<<B_MCSPD1) + (1<<B_MCSPD0) ;ёэрўрыр юўшёЄшЄ№ сшЄ√ B_MCSPD1 ш B_MCSPD1
out (SCTRL),A
ld A,(1<<B_SETNCLR) + (1<<B_MCSPD1) + (0<<B_MCSPD0) ;чрЄхь єёЄрэютшЄ№ шї т ёюёЄю эшх {B_MCSPD1,B_MCSPD0}={1,0}
out (SCTRL),A
─рээр ёїхьр єяЁртыхэш сшЄрьш яючтюы хЄ єяЁрты Є№ Ёрчышўэ√ьш сшЄрьш шч Ёрчышўэ√ї чрфрў:
эряЁшьхЁ юёэютэющ ъюф ьюцхЄ єяЁрты Є№ сшЄюь B_MCNCS, т Єю тЁхь ъръ ъюф т яЁхЁ√трэшш ьюцхЄ
єяЁрты Є№ сшЄюь B_SDNCS. ╥ръ ъръ ърцфюх юЄфхы№эюх шчьхэхэшх сшЄют т яюЁЄє ты хЄё рЄюьрЁэ√ь
ш эх тыш хЄ эр фЁєушх сшЄ√ яюЁЄр, эх ЄЁхсєхЄё чряЁх∙рЄ№ яЁхЁ√трэш эр ьюьхэЄ√ шчьхэхэш сшЄют,
ўЄю яюЄЁхсютрыюё№ с√ яЁш ЄЁрфшЎшюээюь яюфїюфх (di:in A,(port):and MASK:or BITS:out (port),A:ei).
╩юэъЁхЄэюх эрчэрўхэшх сшЄют т яюЁЄрї SCTRL ш SSTAT юяшёрэю эшцх т уыртрї *SPI-шэЄхЁЇхщё√*,
*╨рсюЄр ё SD-ърЁЄющ* ш *╨рсюЄр ё MP3-фхъюфхЁюь*.
SPI-шэЄхЁЇхщё√.
SPI-шэЄхЁЇхщё√ шёяюы№чє■Єё фы єяЁртыхэш ш юсьхэр фрээ√ьш ё SD-ърЁЄющ ш MP3-фхъюфхЁюь.
SPI-ьрёЄхЁ (ёїхьр, юёє∙хёЄты ■∙р ЄръЄшЁютрэшх эр SPI-°шэх) эрїюфшЄё т FPGA ш єяЁрты хЄё
яЁюЎхёёюЁюь Z80, SPI-ёыхщт (ёїхьр, ЄръЄшЁєхьр ьрёЄхЁюь) эрїюфшЄё т Єюь шыш шэюь єёЄЁющёЄтх.
─рыхх яЁштюфшЄё юсюс∙╕ээюх юяшёрэшх SPI-шэЄхЁЇхщёр ё Єюўъш чЁхэш яЁюуЁрььшёЄр. ┬ NeoGS шёяюы№чєхЄё
ЄЁш ёяхЎшрышчшЁютрээ√ї SPI-шэЄхЁЇхщёр, юфшэ шч ъюЄюЁ√ї юсьхэштрхЄё фрээ√ьш ё SD-ърЁЄющ, фЁєующ -
ё єяЁрты ■∙шь ърэрыюь MP3-фхъюфхЁр, р яюёыхфэшщ - яюё√ырхЄ MP3-фрээ√х т фхъюфхЁ. ╩рцф√щ
шч эшї ьюцхЄ эх яюффхЁцштрЄ№ яюыэ√щ эрсюЁ ётющёЄт, яЁштхф╕ээ√ї т юсюс∙╕ээюь юяшёрэшш.
╬сьхэ фрээ√ьш ўхЁхч SPI-шэЄхЁЇхщё яЁюшчтюфшЄё яюсрщЄэю. ┬ яЁюЎхёёх ърцфюую юсьхэр
ряярЁрЄэю яЁюшчтюфшЄё яхЁхфрўр срщЄр юЄ FPGA ъ єёЄЁющёЄтє ш юфэютЁхьхээю яЁш╕ь срщЄр
юЄ єёЄЁющёЄтр яю фтєэряЁртыхээющ яюёыхфютрЄхы№эющ SPI-°шэх. ▌Єр °шэр ёюёЄюшЄ шч ёшуэрыют
MOSI (т√їюф SPI-ьрёЄхЁр ш тїюф SPI-ёыхщтр, яюёыхфютрЄхы№эр яхЁхфрўр фрээ√ї юЄ ьрёЄхЁр ёыхщтє),
MISO (тїюф SPI-ьрёЄхЁр ш т√їюф SPI-ёыхщтр, яюёыхфютрЄхы№эр яхЁхфрўр фрээ√ї юЄ ёыхщтр ьрёЄхЁє) ш
SCK (т√їюф SPI-ьрёЄхЁр ш тїюф SPI-ёыхщтр, ёшуэры ёшэїЁюэшчрЎшш яхЁхфрўш). ╙яЁртыхэшх
т√°хюяшёрээ√ьш ёшуэрырьш юёє∙хёЄты хЄё яюыэюёЄ№■ ряярЁрЄэю, схч єўрёЄш яЁюЎхёёюЁр Z80.
┬ чртшёшьюёЄш юЄ шёяюы№чєхьюую яЁюЄюъюыр ЁрсюЄ√ ё єёЄЁющёЄтюь,
чэрўхэшх ьюуєЄ шьхЄ№ юср срщЄр, яхЁхфрээ√ї т Ёрчэ√ї эряЁртыхэш ї, юфшэ шч эшї шыш
эш юфэюую (чэрўхэшх шьххЄ Єюы№ъю ёрь ЇръЄ юсьхэр).
SPI-шэЄхЁЇхщё ёюфхЁцшЄ Єръцх ёшуэры т√сюЁъш NCS. ╧ЁюЎхёё юсьхэр, ъръ яЁртшыю, т√уы фшЄ
ёыхфє■∙шь юсЁрчюь: яЁюЎхёёюЁ Z80 яхЁхтюфшЄ ёшуэры NCS шч эхръЄштэюую (=1) т ръЄштэюх (=0)
ёюёЄю эшх, фрыхх ёыхфєхЄ ёхЁш юсьхэют срщЄрьш, яюёых юъюэўрэш ъюЄюЁющ яЁюЎхёёюЁ
тючтЁр∙рхЄ ёшуэры NCS т эхръЄштэюх ёюёЄю эшх (=1). ┬ эхъюЄюЁ√ї ёыєўр ї ЄЁхсєхЄё
эрўшэрЄ№ юсьхэ яЁш эхръЄштэюь ёюёЄю эшш NCS, яЁш ¤Єюь, ъръ яЁртшыю, шьххЄ чэрўхэшх
ёрь ЇръЄ юсьхэр (эрышўшх ЄръЄшЁютрэш ёшуэрыюь SCK эр SPI-°шэх), т Єю тЁхь ъръ яхЁхфртрхь√х фрээ√х
шуэюЁшЁє■Єё юсюшьш єўрёЄэшърьш юсьхэр (ьрёЄхЁюь ш ёыхщтюь).
╧ЁюЎхёё юсьхэр срщЄрьш яю SPI-°шэх шэшЎшшЁєхЄё яЁюЎхёёюЁюь Z80 яєЄ╕ь чряшёш срщЄр т яюЁЄ
_SEND. ╟ряшёрээ√щ срщЄ яхЁхфр╕Єё єёЄЁющёЄтє, т Єю тЁхь ъръ яЁшэ Є√щ т юсьхэх срщЄ ёюїЁрэ хЄё
т тЁхьхээюь ЁхушёЄЁх SPI-шэЄхЁЇхщёр. ╧юёых юъюэўрэш юсьхэр яЁшэ Є√щ срщЄ шч тЁхьхээюую ЁхушёЄЁр
ьюцэю ёўшЄрЄ№ шч яюЁЄр _READ. ╚ч яюЁЄр _RSTR ёўшЄ√трхЄё ЄюЄ цх срщЄ шч тЁхьхээюую ЁхушёЄЁр,
юфэръю ЇръЄ ўЄхэш ¤Єюую яюЁЄр Єръцх чряєёърхЄ юсьхэ яю SPI-°шэх ё яхЁхфртрхь√ь срщЄюь 0xFF.
╥ръшь юсЁрчюь, ъюьрэф√
in A,(_RSTR)
ld B,A
¤ътштрыхэЄэ√ ё Єюўъш чЁхэш яхЁхфртрхь√ї яю SPI-°шэх фрээ√ї ъюьрэфрь
in A,(_READ)
ld B,A
ld A,0xFF
out (_SEND),A
╧ЁюЎхёё срщЄютюую юсьхэр, шэшЎшшЁютрээ√щ чряшё№■ т яюЁЄ _SEND шыш ўЄхэшхь шч яюЁЄр _RSTR, чрэшьрхЄ
ъюэхўэюх тЁхь . SPI-шэЄхЁЇхщё√ ЄръЄшЁє■Єё ўрёЄюЄющ яЁюЎхёёюЁр Z80 Fcpu. ╬фэръю ёшуэры SCK, ты ё№ т√їюфюь
ёшэїЁюээющ ёїхь√ SPI-шэЄхЁЇхщёр, ьюцхЄ шьхЄ№ ўрёЄюЄ√ Fcpu/2, Fcpu/4, Fcpu/8 шыш Fcpu/16. ┬ NeoGS
эх яЁхфєёьюЄЁхэ ёшуэры /WAIT фы яЁюЎхёёюЁр Z80, ёыхфютрЄхы№эю ьхцфє яюёыхфютрЄхы№э√ьш шэшЎшшЁютрэш ьш
юсьхэр (чряшё№ т _SEND шыш ўЄхэшх _RSTR) фюыцэр яЁюуЁрььэю ЇюЁьшЁютрЄ№ё ярєчр т юяЁхфхы╕ээюх ўшёыю
ЄръЄют яЁюЎхёёюЁр Z80. ╩Ёюьх Єюую, ярєчр фюыцэр ёюсы■фрЄ№ё ьхцфє шэшЎшшЁютрэшхь юсьхэр ш ўЄхэшхь яЁшэ Єюую
срщЄр (ўЄхэшх _READ шыш _RSTR), р Єръцх ьхцфє шэшЎшшЁютрэшхь юсьхэр ш єёЄрэютъющ NCS т эхръЄштэюх ёюёЄю эшх.
┬ SPI-шэЄхЁЇхщёх яЁхфєёьюЄЁхэ Єръцх сшЄ уюЄютэюёЄш RDY, ъюЄюЁ√щ єёЄрэртыштрхЄё т 0 ёЁрчє цх яюёых
шэшЎшшЁютрэш юсьхэр ш тючтЁр∙рхЄё т 1, ъръ Єюы№ъю юсьхэ чръюэўшыё . ─рээ√щ сшЄ шёяюы№чєхЄё , ъръ яЁртшыю,
т ёыєўрх эшчъшї ўрёЄюЄ ёшуэрыр SCK (эряЁшьхЁ, Fcpu/8 ш эшцх) фы єяЁю∙хэш яЁюЎхфєЁ юсьхэр.
-------------+------------------------------------+-----------------------------------
╫рёЄюЄр SCK,| ╧рєчр ьхцфє шэшЎшшЁютрэш ьш юсьхэр | ╧рєчр ьхцфє шэшЎшшЁютрэшхь юсьхэр
Fsck | шыш ьхцфє шэшЎшшЁютрэшхь юсьхэр ш | ш ёэ Єшхь ръЄштэюую єЁютэ NCS,
| ўЄхэшхь яЁшэ Єюую срщЄр, ЄръЄ√ Z80 | ЄръЄ√ Z80
-------------+------------------------------------+-----------------------------------
Fcpu/2 | 16 (шёяюы№чютрЄ№ RDY эх¤ЇЇхъЄштэю) | 18 (шёяюы№чютрЄ№ RDY эх¤ЇЇхъЄштэю)
Fcpu/4 | 34 шыш шёяюы№чєщЄх сшЄ RDY | 34 шыш шёяюы№чєщЄх сшЄ RDY
Fcpu/8 | шёяюы№чєщЄх сшЄ RDY | шёяюы№чєщЄх сшЄ RDY
Fcpu/16 | шёяюы№чєщЄх сшЄ RDY | шёяюы№чєщЄх сшЄ RDY
-------------+------------------------------------+-----------------------------------
╧юф ёыютрьш "ярєчр ьхцфє шэшЎшшЁютрэшхь юсьхэр ш ўхь-ышсю" яюфЁрчєьхтрхЄё ъюышўхёЄтю
ЄръЄют Z80 ьхцфє эрўрыюь Ўшъыют ттюфр-т√тюфр, юёє∙хёЄты ■∙шї юяшёрээ√х фхщёЄтш . ╧ЁшьхЁ√:
ld C,_SEND
out (C),D
nop
out (C),E ; т√фхЁцрэр ярєчр 16 ЄръЄют, шёяюы№чєщЄх фы ЁрсюЄ√ эр Fsck=Fcpu/2
ld C,_READ
out (_SEND),A
nop
in A,(C) ; т√фхЁцрэр ярєчр 16 ЄръЄют, шёяюы№чєщЄх фы ЁрсюЄ√ эр Fsck=Fcpu/2
ld C,_SEND
ld HL,buffer
outi
outi ; т√фхЁцрэр ярєчр 16 ЄръЄют, шёяюы№чєщЄх фы ЁрсюЄ√ эр Fsck=Fcpu/2
ld C,_RSTR
ld HL,buffer
ini
ini ; т√фхЁцрэр ярєчр 16 ЄръЄют, шёяюы№чєщЄх фы ЁрсюЄ√ эр Fsck=Fcpu/2
ld C,_SEND
out (C),A
nop
in A,(_READ) ; ═┼┬┼╨═╬!!!! ярєчр ьхцфє Ўшъырьш ттюфр-т√тюфр ёюёЄрты хЄ 15 ЄръЄют!!!!!!
╨рчышўэ√х SPI-шэЄхЁЇхщё√ ты ■Єё яюыэюёЄ№■ эхчртшёшь√ьш, ёюсы■фхэшх ярєч юЄэюёшЄё ъ яюёыхфютрЄхы№э√ь
юсЁр∙хэш ь ъ юфэюьє ш Єюьє цх шэЄхЁЇхщёє, эряЁшьхЁ:
ld C,SD_RSTR ;ўЄхэшх фрээ√ї ё SD-ърЁЄ√ ш эхьхфыхээр яхЁхё√ыър шї т MP3-фхъюфхЁ
in A,(C) ;яЁхфяюырурхЄё , ўЄю юср шэЄхЁЇхщёр ЁрсюЄр■Є эр Fsck=Fcpu/2
out (MD_SEND),A ;шэЄхЁЇхщё√ эхчртшёшь√, эхьхфыхээр яхЁхё√ыър срщЄр
in A,(C) ;ьхцфє шэшЎшшЁютрэш ьш юсьхэр эр SPI-шэЄхЁЇхщёх SD-ърЁЄ√ ярєчр ёюёЄрты хЄ 23 ЄръЄр
out (MD_SEND),A ;ьхцфє шэшЎшшЁютрэш ьш юсьхэр эр SPI-шэЄхЁЇхщёх MP3-фхъюфхЁр ярєчр ёюёЄрты хЄ 23 ЄръЄр
SPI-шэЄхЁЇхщё SD-ърЁЄ√.
╩ръ єяюьшэрыюё№ т√°х, ъюэъЁхЄэр ЁхрышчрЎш SPI-шэЄхЁЇхщёр эх юсырфрхЄ тёхьш ётющёЄтрьш юсюс∙╕ээюую юяшёрэш .
SPI-шэЄхЁЇхщё, шёяюы№чєхь√щ фы юсьхэр ё SD-ърЁЄющ, юсырфрхЄ ыш°№ ёыхфє■∙шьш ётющёЄтрьш.
╧юЁЄ яюё√ыъш срщЄр ш шэшЎшшЁютрэш юсьхэр: SD_SEND
╧юЁЄ ўЄхэш яЁшэ Єюую срщЄр: SD_READ
╧юЁЄ ўЄхэш яЁшэ Єюую срщЄр ш шэшЎшшЁютрэш ёыхфє■∙хую юсьхэр ё яюё√ырхь√ь срщЄюь 0xFF: SD_RSTR
┴шЄ єяЁртыхэш ёшуэрыюь NCS фы SD-ърЁЄ√, эрїюф ∙шщё т яюЁЄє SCTRL: B_SDNCS
╫рёЄюЄр SCK ЇшъёшЁютрэр ш ёюёЄрты хЄ Fsck=Fcpu/2, сшЄ RDY юЄёєЄёЄтєхЄ, ёыхфютрЄхы№эю
ЄЁхсєхЄё яЁюуЁрььэюх ёюсы■фхэшх ярєч 16 шыш 18 ЄръЄют.
╙яЁрты ■∙шщ SPI-шэЄхЁЇхщё MP3-фхъюфхЁр.
▌ЄюЄ шэЄхЁЇхщё юсырфрхЄ ёыхфє■∙шьш ётющёЄтрьш.
╧юЁЄ яюё√ыъш срщЄр ш шэшЎшшЁютрэш юсьхэр: MC_SEND
╧юЁЄ ўЄхэш яЁшэ Єюую срщЄр: MC_READ
╧юЁЄ ўЄхэш ш шэшЎшшЁютрэш юсьхэр юЄёєЄёЄтєхЄ.
┴шЄ єяЁртыхэш ёшуэрыюь NCS фы MP3-фхъюфхЁр, эрїюф ∙шщё т яюЁЄє SCTRL: B_MCNCS
┴шЄ уюЄютэюёЄш SPI-шэЄхЁЇхщёр т яюЁЄє SSTAT: B_MCRDY
┬═╚╠└═╚┼! ╤ыхфєхЄ ў╕Єъю ЁрчышўрЄ№ сшЄ√ B_MCRDY ш B_MDDRQ т яюЁЄє SSTAT.
┴шЄ B_MCRDY юЄэюёшЄё ъ єяЁрты ■∙хьє SPI-шэЄхЁЇхщёє MP3-фхъюфхЁр, юЄЁрцрхЄ ёюёЄю эшх
уюЄютэюёЄш шэЄхЁЇхщёр ш ухэхЁшЁєхЄё ёїхьющ ¤Єюую SPI-шэЄхЁЇхщёр т FPGA.
┴шЄ B_MDDRQ юЄэюёшЄё ъ SPI-шэЄхЁЇхщёє MP3-фрээ√ї фхъюфхЁр, ш юЄЁрцрхЄ уюЄютэюёЄ№
фхъюфхЁр яЁшэ Є№ юўхЁхфэющ сыюъ фрээ√ї яю ¤Єюьє шэЄхЁЇхщёє. ╤шуэры ухэхЁшЁєхЄё фхъюфхЁюь
ш яЁюёЄю ЄЁрэёышЁєхЄё FPGA ё т√їюфр фхъюфхЁр т сшЄ яюЁЄр SSTAT.
┴шЄ√ єёЄрэютъш ўрёЄюЄ√ Fsck єяЁрты ■∙хую шэЄхЁЇхщёр MP3-фхъюфхЁр B_MCSPD0 ш B_MCSPD1 т яюЁЄє SCTRL.
---------------------+---------
{B_MCSPD1,B_MCSPD0} | Fsck
---------------------+---------
{0,0} | Fcpu/2
{0,1} | Fcpu/4
{1,0} | Fcpu/8
{1,1} | Fcpu/16
---------------------+---------
SPI-шэЄхЁЇхщё MP3-фрээ√ї фхъюфхЁр.
╧юЁЄ яюё√ыъш срщЄр ш шэшЎшшЁютрэш юсьхэр MD_SEND
╧юЁЄ ўЄхэш яЁшэ Єюую срщЄр - юЄёєЄёЄтєхЄ.
╧юЁЄ ўЄхэш ш шэшЎшшЁютрэш - юЄёєЄёЄтєхЄ.
ёшуэры NCS ш єяЁртыхэшх шь - юЄёєёЄтєхЄ.
┴шЄ уюЄютэюёЄш шэЄхЁЇхщёр - юЄёєЄёЄтєхЄ (ёыхфєхЄ ёюсы■фрЄ№ ярєч√ яЁюуЁрььэю).
┴шЄ єёЄрэютъш ўрёЄюЄ√ Fsck шэЄхЁЇхщёр фрээ√ї B_MDHLF т яюЁЄє SCTRL:
---------+--------
B_MDHLF | Fsck
---------+--------
0 | Fcpu/2
1 | Fcpu/4
---------+--------
╫рёЄюЄ√ Fcpu/8 ш Fcpu/16 эх яюффхЁцштр■Єё .
╨рсюЄр ё SD-ърЁЄющ.
─ы ЁрсюЄ√ ё SD-ърЁЄющ шёяюы№чєхЄё ряярЁрЄэ√щ SPI-шэЄхЁЇхщё, юяшёрэшх ъюЄюЁюую эрїюфшЄё т уыртх *SPI-шэЄхЁЇхщё√*
╩Ёюьх фрээюую шэЄхЁЇхщёр яЁхфєёьюЄЁхэ√ Єръцх сшЄ√ B_SDDET ш B_SDWP т яюЁЄє SSTAT.
B_SDDET Ёртхэ эєы■ (???) яЁш эрышўшш ърЁЄ√ т ёыюЄх, шэрўх хфшэшЎр
B_SDWP Ёртхэ эєы■ (???) яЁш єёЄрэютыхээющ эр ърЁЄх чр∙шЄх чряшёш (яЁш яюью∙ш Їырцър эр ъюЁяєёх ърЁЄ√), шэрўх хфшэшЎр.
┬═╚╠└═╚┼! юср ёшуэрыр ухэхЁ Єё ьхїрэшўхёъшьш ъюэЄръЄрьш т ёыюЄх SD-ърЁЄ√, ёыхфютрЄхы№эю шьх■Є фЁхсхчу.
╩юэЄръЄ√ Єръцх ьюуєЄ эрЁє°рЄ№ё (эряЁшьхЁ, хёыш ьхёЄю ъюэЄръЄр чруЁ чэхэю), ш ъръ ёыхфёЄтшх, ьюуєЄ
т√фртрЄ№ ыюцэ√х яюърчрэш (хфшэшЎр, ъюуфр фюыцхэ с√Є№ эєы№).
╘ырцюъ чр∙шЄ√ юЄ чряшёш эшъръ эх ёт чрэ ¤ыхъЄЁшўхёъш ё ¤ыхъЄЁюэшъющ SD-ърЁЄ√, ёыхфютрЄхы№эю чряшё√трЄ№ эр
ърЁЄє ьюцэю ш яЁш ёюёЄю эшш ёшуэрыр B_SDWP=0. └эрыюушхщ ты хЄё Їырцюъ чр∙шЄ√ юЄ чряшёш эр ушсъшї ьруэшЄэ√ї
фшёърї - юфэръю юэ, т юЄышўшх юЄ B_SDWP шёяюы№чєхЄё ряярЁрЄэю т ъюэЄЁюыыхЁх фшёъютюфр ш ёрьюь фшёъютюфх.
╩Ёюьх Єюую, эр яырЄрї NeoGS rev.A ёшуэры B_SDDET яютЄюЁ хЄ ёюёЄю эшх ётхЄюфшюфр (уюЁшЄ - 0, эх уюЁшЄ - 1).
═р яырЄрї NeoGS rev.B юэ юяЁхфхы хЄё ъюэЄръЄрьш эр ёыюЄх SD-ърЁЄ√.
═х ЁхъюьхэфєхЄё шёяюы№чютрЄ№ фрээ√х ёшуэры√ т яЁюуЁрььрї. ═рышўшх т ёыюЄх SD-ърЁЄ√ ёыхфєхЄ юяЁхфхы Є№
яЁюуЁрььэю (єфр╕Єё ыш яЁютхёЄш шэшЎшрышчрЎш■ ърЁЄ√ чр ъюэхўэюх тЁхь ).
╧ЁюЄюъюы√ яЁюуЁрььэюую юсьхэр ё ърЁЄющ ёыхфєхЄ шёърЄ№ т ёЄрэфрЁЄрї эр SD-ърЁЄ√.
╫рёЄюЄр яЁюЎхёёюЁр т NeoGS трЁ№шЁєхЄё юЄ 10 фю 24 ╠├Ў, ёыхфютрЄхы№эю, ўрёЄюЄр Fsck шчьхэ хЄё
юЄ 5 фю 12 ╠├Ў, ўЄю ыхцшЄ т яЁхфхырї ёяхЎшЇшърЎшщ SD-ърЁЄ эр ¤Єє ўрёЄюЄє (эх сюыхх 25 ╠├Ў).
╧юЁЄ SD_RSTR, ъюЄюЁ√щ т√фр╕Є яЁхф√фє∙шщ яЁшэ Є√щ срщЄ ш шэшЎшшЁєхЄ юсьхэ ё яхЁхфртрхь√ь срщЄюь 0xFF,
ьюцхЄ шёяюы№чютрЄ№ё фы тёхї ёЎхэрЁшхт юсьхэр фрээ√ьш ш ъюьрэфрьш ё SD-ърЁЄющ яю рэрыюушш ЁрсюЄ√ ё
шэЄхЁЇхщёюь SD-ърЁЄ√ т Z-controller'х, ёыхфєхЄ ыш°№ яюьэшЄ№ яЁю яЁюуЁрььэ√х ярєч√ 16 шыш 18 ЄръЄют.
╨рсюЄр ё MP3-фхъюфхЁюь.
╧юьшью фтєї SPI-шэЄхЁЇхщёют (ёь. уыртє *SPI-шэЄхЁЇхщё√*), фы єяЁртыхэш фхъюфхЁюь шёяюы№чє■Єё
ёыхфє■∙шх ёшуэры√:
ёшуэры т фхъюфхЁ, єяЁрты хь√щ сшЄюь B_MPXRS т яюЁЄє SCTRL - ряярЁрЄэ√щ ёсЁюё фхъюфхЁр ъюуфр сшЄ т эєых,
эюЁьры№эр ЁрсюЄр ъюуфр сшЄ т хфшэшЎх.
ёшуэры ё фхъюфхЁр, ёюёЄю эшх ъюЄюЁюую юЄЁрцрхЄё т сшЄх B_MDDRQ яюЁЄр SSTAT - уюЄютэюёЄ№ яЁш╕ьр яюЁЎшш
MP3-фрээ√ї ўхЁхч ёююЄтхЄёЄтє■∙шщ SPI-шэЄхЁЇхщё (MD_SEND).
┬ NeoGS шёяюы№чє■Єё MP3-фхъюфхЁ√ фтєї Єшяют: MA8201 ш MA8201A, ъюЄюЁ√х ты ■Єё рэрыюурьш, ёююЄтхЄёЄтхээю,
фхъюфхЁют VS1001 ш VS1011 ЇшЁь√ VLSI Solutions Oy (http://www.vlsi.fi). ╧юфЁюсэ√х юяшёрэш ш яЁшэЎшя√ ЁрсюЄ√
ёыхфєхЄ шёърЄ№ т фрЄр°шЄрї (datasheets) ш ряяэюЄрї (application notes) эр ьшъЁюёїхь√ ЇшЁь√ VLSI Solutions Oy
эр шї шэЄхЁэхЄ-ёрщЄх. ─ры№эхщ°хх юсёєцфхэшх MP3-фхъюфхЁют т фрээюь ЁєъютюфёЄтх яюфЁрчєьхтрхЄ яЁхфтрЁшЄхы№эюх
ючэръюьыхэшх ўшЄрЄхы ё єърчрээ√ьш фюъєьхэЄрьш.
╟фхё№ яЁштхфхэ√ ыш°№ юёюсю ёє∙хёЄтхээ√х чрьхўрэш .
1. ─хъюфхЁ√ ЄръЄшЁє■Єё ътрЁЎхт√ь ЁхчюэрЄюЁюь 14 ╠├Ў, ўЄю ты хЄё эхсюы№°шь яЁхт√°хэшхь
юЇшЎшры№эющ ьръёшьры№эющ ўрёЄюЄ√ ёюуырёэю фрЄр°шЄрь. ─ы эюЁьры№эющ ЁрсюЄ√ (фхъюфшЁютрэшх
MP3-Їрщыют ё ы■с√ь сшЄЁхщЄюь) ёыхфєхЄ ╬┴▀╟└╥┼╦▄═╬ шёяюы№чютрЄ№ тэєЄЁхээхх єфтюхэшх ЄръЄютющ
ўрёЄюЄ√, яЁхфєёьюЄЁхээюх т фхъюфхЁрї (Ёрсюўр ўрёЄюЄр 28 ╠├Ў).
2. ╠ръёшьры№э√х ўрёЄюЄ√ Fsck фы юсюшї SPI-шэЄхЁЇхщёют фхъюфхЁр юуЁрэшўхэ√ ёыхфє■∙шьш тхышўшэрьш.
╧Ёш яхЁхфрўх срщЄют яю єяЁрты ■∙хьє шэЄхЁЇхщёє (ёюфхЁцшьюх MC_READ эх шёяюы№чєхЄё ),
Ёртэю ъръ ш яю шэЄхЁЇхщёє MP3-фрээ√ї ўрёЄюЄр ёшуэрыр SCK ёююЄтхЄётє■°хую шэЄхЁЇхщёр Fsck < Fdec/4,
уфх Fdec - ўрёЄюЄр, эр ъюЄюЁющ ЁрсюЄрхЄ фхъюфхЁ (Fdec=14 ╠├Ў, хёыш тэєЄЁхээхх єфтюхэшх т√ъы■ўхэю,
шыш Fdec=28 ╠├Ў т яЁюЄштэюь ёыєўрх).
╧Ёш яЁш╕ьх срщЄют яю єяЁрты ■∙хьє шэЄхЁЇхщёє (ёюфхЁцшьюх MC_READ шёяюы№чєхЄё ) Fsck < Fdec/6.
┬ юсюшї ёыєўр ї ёыхфєхЄ єўшЄ√трЄ№ Єхъє∙є■ ўрёЄюЄє яЁюЎхёёюЁр Z80, ёюёЄю эшх сшЄют, чрфр■∙шї
Fsck ърцфюую шэЄхЁЇхщёр (B_MCSPD1,B_MCSPD0,B_MDHLF) ш Єю, тъы■ўхэю ыш тэєЄЁхээхх єфтюхэшх
ЄръЄютющ ўрёЄюЄ√ фхъюфхЁр шыш т√ъы■ўхэю.
3. ╧юёых ряярЁрЄэюую шыш яЁюуЁрььэюую ёсЁюёр тэєЄЁхээхх єфтюхэшх юърч√трхЄё т√ъы■ўхээ√ь.
╤ыхфєхЄ хую тъы■ўшЄ№, яЁюЎхфєЁр тъы■ўхэш юЄышўрхЄё фы Ёрчэ√ї (VS1001 ш VS1011) фхъюфхЁют.
┬ ёыєўрх VS1001 яюёых єёЄрэютъш ЁхушёЄЁр CLOCKF ёыхфєхЄ чряшёрЄ№ ъюэёЄрэЄє 0x8008 т эхфюъєьхэЄшЁютрээ√щ
ЁхушёЄЁ INT_FCNTLH (ёь. ряяэюЄ vs10XXan.pdf). ┬ ёыєўрх VS1011 эр ьхёЄх ЁхушёЄЁр INT_FCNTLH юърч√трхЄё
фЁєующ яю ЇєэъЎшш ЁхушёЄЁ ш чряшё№ т эхую яЁюшчтюфшЄ№ эх ЄЁхсєхЄё , р фы тъы■ўхэш єфтюшЄхы ЄЁхсєхЄё
чряшёрЄ№ чэрўхэшх ўрёЄюЄ√ фшёъЁхЄшчрЎшш (ы■сюх яЁшьхэшьюх) т ЁхушёЄЁ AUDATA (ёь. ряяэюЄ vs10XXan.pdf).
┬ фры№эхщ°хь ръЄєры№эюх чэрўхэшх ўрёЄюЄ√ фшёъЁхЄшчрЎшш єёЄрэютшЄё ртЄюьрЄшўхёъш. ┬ юсюшї ёыєўр ї ъюэёЄрэЄр,
чряшё√трхьр т ЁхушёЄЁ CLOCKF, юёЄр╕Єё эхшчьхээющ (0x9B58).
4. фы юяЁхфхыхэш Єшяр фхъюфхЁр (VS1001 шыш VS1011) ёыхфєхЄ яЁюўшЄрЄ№ ЁхушёЄЁ STATUS ш чруы эєЄ№
т сшЄ√ 7:4 ¤Єюую ЁхушёЄЁр. ╥ръ ъръ юяЁхфхы Є№ Єшя фхъюфхЁр ЄЁхсєхЄё фю тъы■ўхэш єфтюшЄхы (яєэъЄ 3),
ёыхфєхЄ юёюсю тэшьрЄхы№эю юЄэхёЄшё№ ъ яєэъЄє 2: Fdec/6 т ¤Єюь ёыєўрх ёюёЄртшЄ 2.3 ╠├Ў, ш Fsck
фы ъюЁЁхъЄэюую ўЄхэш эх фюыцэр с√Є№ сюыхх ¤Єюую чэрўхэш (ёь. уыртє *SPI-шэЄхЁЇхщё√*).
5. ╧Ёш яЁюшуЁ√трэшш эхъюЁЁхъЄэюую шыш шёяюЁўхээюую MP3-Їрщыр, тёыхфёЄтшх ¤ыхъЄЁюьруэшЄэ√ї яюьхї ш Є.ф.
фхъюфхЁ ьюцхЄ чртшёэєЄ№: яЁш ¤Єюь, ъръ яЁртшыю, яЁюшуЁ√трэшх чтєър яЁхъЁр∙рхЄё , р ёў╕Єўшъ тЁхьхэш
яЁюшуЁ√трэш (ЁхушёЄЁ DECODE_TIME) эх шэъЁхьхэЄшЁєхЄё . ╥ръцх яЁшчэръюь чртшёрэш ты хЄё ўхЁхёўєЁ
эшчър шыш ўхЁхcўєЁ т√ёюър ёъюЁюёЄ№ яюЄЁхсыхэш фхъюфхЁюь MP3-фрээ√ї (ёь. ряяэюЄ vs10XXan.pdf).
╧Ёш юсэрЁєцхэшш чртшёрэш эхюсїюфшью т√яюыэшЄ№ яЁюуЁрььэ√щ ёсЁюё, яютЄюЁшЄ№ яЁюЎхфєЁє шэшЎшрышчрЎшш
ш тэют№ юсЁрЄшЄ№ тэшьрэшх эр яЁшчэръш чртшёрэш . ┬ ёыєўрх, хёыш фхъюфхЁ эх 'юЄтшё', эхюсїюфшью
яЁютхёЄш ряярЄрЄэ√щ ёсЁюё (сшЄ B_MPXRS т яюЁЄє SCTRL).
├Ёєс√щ чрьхЁ ёъюЁюёЄш яюЄЁхсыхэш фхъюфхЁюь MP3-фрээ√ї ьюцэю яЁютхёЄш, шёяюы№чє ъръ ЁхяхЁ
чтєъют√х яЁхЁ√трэш NeoGS, ёыхфє■∙шх ё ўрёЄюЄющ 37500 ├Ў эхчртшёшью юЄ ўрёЄюЄ√ яЁюЎхёёюЁр Z80.
6. ╧юёых юъюэўрэш фрээ√ї т MP3-Їрщых ЁхъюьхэфєхЄё т√фрЄ№ т фхъюфхЁ 2048 срщЄ эєыхщ (B_MDDRQ, MD_SEND),
яюёых ўхую фы эрўрыр фхъюфшЁютрэш ёыхфє■∙хую Їрщыр эхюсїюфшью яЁютхёЄш яЁюуЁрььэ√щ ёсЁюё.
╧Ёшьхэ Є№ тьхёЄю эхую ряярЁрЄэ√щ ёсЁюё эх ЁхъюьхэфєхЄё , Єръ ъръ яЁш ¤Єюь тючэшър■Є ∙хыўъш
т чтєъютюь ЄЁръЄх фхъюфхЁр.
7. ╤ыхфєхЄ юЄьхЄшЄ№, ўЄю єяЁртыхэшх Ёхцшьрьш bass/treble ш surround т юсюшї Єшярї фхъюфхЁют
ёє∙хёЄтхээю ЁрчышўрхЄё .
8. ┬ фхъюфхЁх VS1011 яЁхфєёьюЄЁхэю эхёъюы№ъю Ёхцшьют яюё√ыъш MP3-фрээ√ї. ╤ыхфєхЄ шёяюы№чютрЄ№ ыш°№
єёЄрэютыхээ√щ яю єьюыўрэш■ яюёых ёсЁюёр Ёхцшь ёютьхёЄшьюёЄш ё фхъюфхЁюь VS1001 ё єўрёЄшхь ёшуэрыр
сшЄютющ ёшэїЁюэшчрЎшш BSYNC. ╤шуэры BSYNC ухэхЁшЁєхЄё ряярЁрЄэю ёїхьющ SPI-шэЄхЁЇхщёр фы
MP3-фрээ√ї т FPGA ш тэшьрэш ъ ёхсх ёю ёЄюЁюэ√ яЁюуЁрьь√ Z80 эх ЄЁхсєхЄ.