Subversion Repositories ngs

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

====== history begin ======
02.11.06  v0.1  Initial release by LVD.

03-06.11.06  v0.1.1 boleg
- 12 ьуЎ ътрЁЎ - ёўшЄрЄ№ ЄръЄ√ 20ьуЎ
+ DMAGS
? - ёшёЄхьэ√щ яюЁЄ ёю ёЄюЁюэ√ ZX - #B3 яЁш ръЄштэюь DOS
? - фЁєур  ьюфхы№ ьряяшэур  16ъ ёЄЁрэшЎ
? - Ёрчтюфър яюф 4╠с (ёь. эшцх)

06-xx.12.06 v0.2 lvd
+ - ътрЁЎ√: 24 ╠├Ў ш 20 ╠├Ў
+ - фЁєующ ьряяшэу ярь Єш (ъръ boleg яЁхфыюцшы)
+ - яЁхЁ√трэш 
+ - 2/4 ╠с Ёрчтюфър ш рфЁхёрЎш 
? - DMA эх яЁртшы
? - яю ёэшЄх яышч яЁю $b3 шч Є√Ёфюёр ш ўхь юэ ыєў°х $33 шч юЄютё■фє :)

26.01.07 v0.3 (lvd)
? - юЇюЁьыхэ Ёхцшь ─╠└
+ - эхёъюы№ъю эют√ї шфхщ (яЁхЁ√трэш , сєЇхЁшчютрээ√щ чтєъ)
? - єЄюўэхэ√ ¤ыхьхэЄ√ ёїхь√
? - єЄюўэ╕э шэЄхЁЇхщё ёю ёяхъЄЁєьюь (zx-bus, яюЁЄ√)
? - тьхёЄю '°шэ' - ЁрёяЁхфхыхэшх яшэют ╘╧├└°ъш, эю яюър яєёЄю

08.02.07 v0.3.1 (lvd)
+ - яюфяЁртыхэ ─╠└
+ - яюфяЁртыхэю яЁю т√сюЁ ўрёЄюЄ√ чхЄэшър, фюсртыхэю яЁю ЁрёяЁхфхыхэшх ърэрыют

10.03.07 v0.3.2 (lvd)
? - эхяюэ Єъш ё яюЁЄюь $0b - Єю ыш єёЄрэютър шч яюЁЄр $06 (txt schem), Єю ыш шч яюЁЄр $09 (orig schem)

01.03.08 v0.4 (lvd)
+ - яюфяЁртыхэю яютхфхэшх яюЁЄр $0b яю ╧╓┴ ёЄрЁюую ├╤р
+ - юяшёрэю яютхфхэшх яюЁЄр $33 ёю ёЄюЁюэ√ ёяхър
+ - яюфяЁртыхэю юяшёрэшх яюЁЄр $0f
- - єсЁрэр эхъюЄюЁр  ўє°№ - хёЄ№ цх ёїхьр
- - єсЁрэ√ ёыютр яЁю 4 ьхурсрщЄр

23.05.08 v0.4.1 (lvd)
+ - єЄюўэхэр ЁрсюЄр яюЁЄр $33
+ - єЄюўэхэр ЁрсюЄр яЁхЁ√трэшщ т °ЄрЄэющ яЁю°штъх
+ - фюсртыхэр ўрёЄ№ "сышцрщ°шх яырэ√", т эхщ чряшё№ яЁю SPI-шэЄхЁЇхщё√ ё ёююЄтхЄёЄтє■∙шьш єёЄЁющёЄтрьш.

14.09.08 v0.4.1.1 (lvd)
+ - эхъюЄюЁ√х сруЇшъё√ т ЄхъёЄх.

16.10.08 v0.4.2 (lvd)
+ - єсЁрэ√ 'ЇрэЄрчшш' яЁю ─╠└ etc. (ўЄюс√ яю ьхЁх ЁхрышчрЎшш яюфїтрЄшЄ№ ЄхъёЄ шч сюыхх ёЄрЁ√ї тхЁёшщ)

28.10.08 v0.4.2.1 (lvd)
+ - фюсртыхэю юяшёрэшх сшЄр _MDHLF (яюыютшээр  ёъюЁюёЄ№ яхЁхфрўш фрээ√ї т mp3-фхъюфхЁ)

======= history end =======



╫рёЄ№ 1. ┬ючьюцэюёЄш °ЄрЄэющ яЁю°штъш fpga

  --== ╧юЁЄ√ ёю ёЄюЁюэ√ ёяхъЄЁєьр ==--

яюЁЄ $B3, чряшё№ - ЁхушёЄЁ фрээ√ї GS (эр чряшё№), єёЄрэртыштрхЄ data bit (ёь. эшцх).

яюЁЄ $B3, ўЄхэшх - ЁхушёЄЁ фрээ√ї GS (эр ўЄхэшх), ёсЁрё√трхЄ data bit.

яюЁЄ $BB, чряшё№ - ЁхушёЄЁ ъюьрэф GS (эр чряшё№, рэрыюушўэю ЁхушёЄЁє фрээ√ї), єёЄрэртыштрхЄ command bit.

яюЁЄ $BB, ўЄхэшх - сшЄ√ ёюёЄю эш  GS:
 D7 - data bit
 D6..D1 - эх юяЁхфхыхэ√
 D0 - command bit

яюЁЄ $33  - ряярЁрЄэ√щ ёсЁюё GS,
р Єръцх т√фрўр ═╠╚ эр яЁюЎхёёюЁ ├╤р (фы  Ёрё°шЁхэш  тючьюцэюёЄхщ ъюььєэшърЎшш) ш єяЁртыхэшх ётхЄюфшюфюь

чряшё№ $80 - яюфрўр ёсЁюёр эр Z80 ш ЄЁхсє■∙шї ёсЁюёр Ўхяхщ fpga.
чряшё№ $40 - NMI эр Z80.
чряшё№ $20 - яхЁхъы■ўшЄ№ ётхЄюфшюф

╤шуэры√ эр ZX-BUS:

a0-a7, (фх°шЇЁрЎш  яюЁЄют)
d0-d7,
/IORQ
/WR
/RD
IORQGE

a15,a14
/MREQ
/CSROM (ёшуэры т√сюЁъш ячє, ъюЄюЁ√щ яЁюїюфшЄ ўхЁхч ЁхчшёЄюЁ ш яЁхтЁр∙рхЄё  т
        /RDROM, ъюЄюЁ√щ шф╕Є эхяюёЁхфёЄтхээю т ╧╟╙)
/RDROM
/WAIT (¤Єш тёх ёшуэры√ фы  DMA)





  --== ╧юЁЄ√ ёю ёЄюЁюэ√ GSютюую чхЄэшър ==--

яюЁЄ $00, чряшё№ - яюЁЄ ёЄЁрэшЎ яю рфЁхёє $8000-$FFFF (32k ъєёюъ), d6..d0, 7 сшЄ (2 ьхурсрщЄр тёхую), яЁш ЁхёхЄх - эхюяЁхфхы╕э.

яюЁЄ $01, ўЄхэшх. ╫шЄрЄ№ срщЄ, чряшёрээ√щ ёяхъЄЁєьюь т ЁхушёЄЁ ъюьрэф.

яюЁЄ $02, ўЄхэшх. ╫шЄрЄ№ срщЄ, чряшёрээ√щ ёяхъЄЁєьюь т ЁхушёЄЁ фрээ√ї, ёсЁрё√трхЄ data bit.

яюЁЄ $03, чряшё№. ╟ряшёрЄ№ срщЄ т ЁхушёЄЁ фрээ√ї, ъюЄюЁ√щ ьюцхЄ яЁюўшЄрЄ№ ёяхъЄЁєь, єёЄрэртыштрхЄ data bit.

яюЁЄ $04, ўЄхэшх. ╫Єхэшх сшЄют ёюёЄю эш  (Єю цх ёрьюх, ўЄю ш фы  ёяхъЄЁєьр т яюЁЄє $BB)

яюЁЄ $05, чряшё№ шыш ўЄхэшх. ╤сЁюё command bit т 0.

яюЁЄ√ $06-$09, чряшё№. ╙ёЄрэютър уЁюьъюёЄш т ърэрырї 1-4. d5..d0, 6 сшЄ, unsigned, 0 - off, 63 - max

яюЁЄ $0a, чряшё№ шыш ўЄхэшх. ╙ёЄрэютър data bit Ёртэ√ь шэтхЁёэюьє эєыхтюьє сшЄє ёюфхЁцшьюую яюЁЄр $00.

яюЁЄ $0b, чряшё№ шыш ўЄхэшх. ╙ёЄрэютър command bit Ёртэ√ь я Єюьє сшЄє ёюфхЁцшьюую яюЁЄр $09 (PCB)

яюЁЄ $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 юЁшушэры№эюую GS)
                     0 - эх чр∙ш∙хэр юЄ чряшёш.

 bit 2 - 8 channels bit: 1 - 8 ърэрыют (ёь. эшцх),
                         0 - 4 ърэрыр (ъръ т юЁшушэры№эюь ├╤).

 bit 3 - extended paging mode bit: 1 - Ёрё°шЁхээ√щ Ёхцшь ёЄЁрэшЎ (ёь. эшцх)
                                   0 - ярь Є№ яхЁхъы■ўрхЄё  ъръ т юЁшушэры№эюь GS.

 bit 5,4 - z80 overclocking bits: 00 - Z80 ЁрсюЄрхЄ эр ўрёЄюЄх 24╠├Ў
                                  01 - Z80 ЁрсюЄрхЄ эр ўрёЄюЄх 12╠├Ў
                                  10 - Z80 ЁрсюЄрхЄ эр ўрёЄюЄх 20╠├Ў
                                  11 - Z80 ЁрсюЄрхЄ эр ўрёЄюЄх 10╠├Ў

 bits 6,7 - яюър эхшёяюы№чєхь√х, фюыцэ√ єёЄрэртыштрЄ№ё  т эюы№.

╧╨╚ └╧╧└╨└╥═╬╠ ╤┴╨╬╤┼ ёюфхЁцшьюх яюЁЄр $0f ёсЁрё√трхЄё  т 00110000 (ёююЄтхЄёЄтхээю ъюэЇшуєЁшЁє  цхыхчю, Z80 эр 10╠├Ў).


яюЁЄ $10, чряшё№. ╨рё°шЁхээ√щ яюЁЄ ёЄЁрэшЎ, шёяюы№чєхЄё , ъюуфр extended paging mode bit = 1 (ёь. т√°х). ╧Ёш ЁхёхЄх - эхюяЁхфхы╕э.

 ╠юфхы№ ёЄЁрэшЎ т Ёрё°шЁхээюь Ёхцшьх Єръютр:
 яюЁЄ $00 - ёЄЁрэшЎр (16ъ ъєёюъ), тъы■ўхээр  яю рфЁхёрь $8000-$bfff, d7..d0, 8 сшЄ.
 яюЁЄ $10 - ёЄЁрэшЎр (16ъ ъєёюъ), тъы■ўхээр  яю рфЁхёрь $c000-$ffff, d7..d0, 8 сшЄ.

 ┬ Ёхцшьх юс√ўэющ рфЁхёрЎшш ёЄЁрэшЎ (ёююЄтхЄёЄтє■∙хщ юЁшушэры№эюьє GS) яЁш чряшёш т яюЁЄ $00 чэрўхэшх
 ЄЁрэёышЁєхЄё  т ЁхушёЄЁ√, ёююЄтхЄёЄтє■∙шх ёЄЁрэшЎрь яю рфЁхёрь $8000-$bfff ш $c000-$ffff Єръшь юсЁрчюь,
 ўЄю яЁш яхЁхъы■ўхэшш т Ёхцшь Ёрё°шЁхээющ рфЁхёрЎшш ъєёъш, чрьряыхээ√х т ¤Єш юсырёЄш, эх шчьхэ ■Єё .
 ╧Ёш яхЁхъы■ўхэшш шч Ёхцшьр Ёрё°шЁхээющ рфЁхёрЎшш т Ёхцшь юс√ўэющ - т ¤Єшї юсырёЄ ї юя Є№ цх ьряяшэу эх
 ьхэ хЄё , юфэръю яЁш яхЁтющ цх чряшёш т яюЁЄ $00 тё╕ тхЁэ╕Єё  эр ётюш ьхёЄр.



╠юфхы№ ьряяшэур ёЄЁрэшЎ.
Ёрё°шЁхээ√щ Ёхцшь:

яюЁЄ  #00 - axxx xxxx
яюЁЄ  #10 - byyy yyyy
Єюуфр рсёюы■Єэ√х эюьхЁр ьры√ї ёЄЁрэшЎ:
#8000-#BFFF - xxxx xxxa
#C000-#FFFF - yyyy yyyb
hint - шьх  т A эюьхЁ ьрыющ ёЄЁрэшЎ√, фхырхь RRCA ш т√тюфшь хую т яюЁЄ.

юс√ўэ√щ Ёхцшь:
яюЁЄ  #00 - zxxx xxxx - (z - ы■сющ)
Єюуфр рсёюы■Єэ√х эюьхЁр ьры√ї ёЄЁрэшЎ:
#8000-#BFFF - xxxx xxx0
#C000-#FFFF - xxxx xxx1

╥.ю. яЁш яхЁхїюфх шч юс√ўэюую Ёхцшьр т Ёрё°шЁхээ√щ яю рфЁхёрь #8000-#BFFF эюьхЁ ьрыющ
ёЄЁрэшЎ√ эх ьхэ хЄё  (яЁш єёыютшш, ўЄю сшЄ 6 т яюЁЄє #00 = 0, ышсю яЁшэєфшЄхы№эю хую ёсЁрё√трЄ№, яЁш яхЁхїюфх т юс√ўэ√щ
Ёхцшь), р яю рфЁхёрь #C000-#FFFF шьххь ьрыє■ ёЄЁрэшЎє, чрфрээє■ т яюЁЄє #10.


яюЁЄ√ $16-$19, чряшё№. ╙ёЄрэютър уЁюьъюёЄш т ърэрырї 5-8. d5..d0, 6 сшЄ, unsigned, 0 - off, 63 - max

 ▌Єш ърэры√ ёє∙хёЄтє■Є Єюы№ъю т Ёхцшьх, ъюуфр 8 channels bit = 1. ┬ Ёхцшьх ¤ьєы Ўшш юЁшушэры№эюую GS
 яЁш чряшёш фрээ√ї т ърэры√ 1-4 ¤Єш фрээ√х ртЄюьрЄшўхёъш ъюяшЁє■Єё  т ърэры√ 5-8, Є.ю. уЁюьъюёЄ№ ърэрыр
 т 4-ърэры№эюь Ёхцшьх сюы№°х, ўхь т 8-ърэры№эюь.


  --== ьюфхы№ ярь Єш ==--

┬эрўрых ЁрёёьюЄЁшь Ёхцшь NO ROM (ёь. т√°х):

 ╧юэ Єш : сюы№°р  ёЄЁрэшЎр - ъєёюъ эрЁхчрээющ яю 32ъ RAM,
          ьрыр  ёЄЁрэшЎр - ъєёюъ эрЁхчрээющ яю 16ъ RAM.

 $0000-$3FFF - эєыхтр  ьрыр  ёЄЁрэшЎр шыш яхЁтр  яюыютшэр эєыхтющ сюы№°ющ ёЄЁрэшЎ√
 $4000-$7FFF - ЄЁхЄ№  ьрыр  ёЄЁрэшЎр шыш тЄюЁр  яюыютшэр яхЁтющ сюы№°ющ ёЄЁрэшЎ√

 $8000-$FFFF - єърчрээр  т яюЁЄє $00 сюы№°р  ёЄЁрэшЎр (фы  Ёхцшьр юс√ўэющ рфЁхёрЎшш ёЄЁрэшЎ)
  шыш
 $8000-$BFFF - єърчрээр  т яюЁЄє $00 ьрыр  ёЄЁрэшЎр ш
 $C000-$FFFF - єърчрээр  т яюЁЄє $10 ьрыр  ёЄЁрэшЎр (фы  Ёхцшьр Ёрё°шЁхээющ рфЁхёрЎшш ёЄЁрэшЎ)


 т Ёхцшьх RAM RO (ёь. т√°х) чр∙ш∙р■Єё  юЄ чряшёш эєыхтр  ш яхЁтр  ьры√х ёЄЁрэшЎ√ (эєыхтр  сюы№°р  ёЄЁрэшЎр) RAM,
 Є.х. яхЁт√х 32ъ.

 т Ёхцшьх NO ROM bit = 0 - тю юсырёЄ ї $0000-$3FFF ш $8000-$FFFF тъы■ўрхЄё  FLASH ё Єхьш цх рфЁхёрьш, ўЄю с√ыш с√
 фы  RAM, т юсырёЄш $4000-$7FFF - юёЄр╕Єё  Єр цх ёрьр  ьрыр  ёЄЁрэшЎр RAM. ╟р∙шЄр юЄ чряшёш фхщёЄтєхЄ Єръ цх
 (чр∙ш∙хэ√ юЄ чряшёш яхЁт√х 32ъ FLASH, ўЄю ьюцхЄ яюьх°рЄ№ яЁш х╕ яЁю°штъх, яюЄюьє RAM RO эрфю юЄъы■ўрЄ№).


╩Ёюьх Єюую, яЁш ╫╥┼═╚╚ яЁюЎхёёюЁюь ё рфЁхёют $6000-$7FFF (яЁш ўЄхэшш Ўшъыюь ўЄхэш , р ═┼ Ўшъыюь M1!) яЁюшёїюфшЄ ёыхфє■∙хх:

─ы  4-ърэры№эюую Ёхцшьр:
 ╧Ёш ўЄхэшш ё рфЁхёют $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 - яЁрт√х


  --== ╧ЁхЁ√трэш  ==--

╫рёЄюЄр яЁхЁ√трэшщ эр /INT - 37500 ├Ў.

╠ръёььры№эр  фышЄхы№эюёЄ№ /INT - 100 ЄръЄют 24 ╠├Ў, эю юэ ъюэўрхЄё , хёыш яЁюЎ тч ы яЁхЁ√трэшх: (/M1 or /IORQ)=0



 ╫рёЄ№ 2. MP3 ш SD-card

─ы  ёт чш ё MP3-ўшяюь (ma8201, рэрыюу vs1001) шёяюы№чєхЄё 
2 ърэрыр spi. ╧хЁт√щ ЁрсюЄрхЄ Єюы№ъю эр яхЁхфрўє, яхЁхфр╕Є
эхяюёЁхфёЄтхээю mp3-фрээ√х. ┬ЄюЁющ - єяЁрты ■∙шщ, фтєэряЁртыхээ√щ.

─ы  ёт чш ё SD-ърЁЄюўъющ шёяюы№чєхЄё  1 spi-ърэры.

╩Ёюьх Єюую, є шэЄхЁЇхщёр ё MP3-ўшяюь хёЄ№ тїюфэр  ышэш  DREQ ш т√їюфэр 
XRESET.

SD-card шэЄхЁЇхщё шьххЄ 2 тїюфэ√ї ышэшш DET ш WP.

єяЁрты ■∙шщ ьЁ3-ўшяюь spi-шэЄхЁЇхщё ш spi-шэЄхЁЇхщё sd-ърЁЄюўъш шьх■Є
ёшуэры√ nCS (шэтхЁёэ√х).


ърцф√щ яюыэ√щ SPI шьххЄ яюЁЄ√:

_SEND - (Єюы№ъю чряшё№) чряєёърхЄ эр яхЁхфрўє т√тхфхээ√щ т эхую срщЄ,
                        яЁшэ Є√щ т чряє∙хээюь Ўшъых юсьхэр срщЄ сєфхЄ
                        фюёЄєяхэ т ёыхфє■∙шї яюЁЄрї:

_READ - (Єюы№ъю ўЄхэшх) ўшЄрхЄ яЁшэ Є√щ т яЁхф√фє∙хь Ўшъых юсьхэр срщЄ.

_RSTR - (Єюы№ъю ўЄхэшх) Read and STaRt: ўшЄрхЄ Ёрэхх яЁшэ Є√щ срщЄ,
                        чряєёърхЄ эют√щ Ўшъы юсьхэр. ╧Ёш ¤Єюь яхЁхфртрхьюх
                        чэрўхэшх =$FF (яюЁЄ ьюцхЄ юЄёєЄёЄтютрЄ№ фы 
                        эхъюЄюЁ√ї шэЄхЁЇхщёют, уфх эх ЄЁхсєхЄё  яЁхфхы№эр 
                        ёъюЁюёЄ№).


┬ёх SPI-шэЄхЁЇхщё√ ЄръЄшЁє■Єё  юЄ яЁюЎхёёюЁэюую ъыюър, р Ўшъы юсьхэр чрэшьрхЄ 16 ЄръЄют.
▌Єю чэрўшЄ, ўЄю яюёыхфютрЄхы№э√х фхщёЄтш , чряєёър■∙шх Ўшъы юсьхэр (чряшё№ т _SEND-яюЁЄ шыш ўЄхэшх _RSTR-яюЁЄр)
эх ьюуєЄ шфЄш ўр∙х, ўхь Ёрч т 16 ЄръЄют, шэрўх тючьюцэ√ эхяЁхфёърчєхь√х фы  фрээюую SPI-ърэрыр яюёыхфёЄтш .
16 ЄръЄют юЄьхЁ ■Єё  ьхцфє ьюьхэЄрьш эрўрыр Ўшъыют ттюфр-т√тюфр яЁюЎхёёюЁр Z80 (ёь. фрЄр°шЄ).

╨рёёьюЄЁшь т√°хюяшёрээюх эр яЁшьхЁх т√тюфр яюёыхфютрЄхы№эюёЄш срщЄ:

 out (_SEND),A
 inc A
 out (_SEND),A - ═┼┬┼╨═╬!!!! ьхцфє т√тюфрьш яЁюїюфшЄ 15 ЄръЄют!!!

 out (_SEND),A
 ld  A,123
 out (_SEND),A - тхЁэю (18 ЄръЄют)

 ld  C,_SEND
 out (C),D
 nop
 out (C),E - тхЁэю (16 ЄръЄют)

 outi
 outi - тхЁэю (16 ЄръЄют)

 otir - тхЁэю (21 ЄръЄ)


╤шуэры√ nCS фюыцэ√ т√сшЁрЄ№ эшчъшь єЁютэхь єёЄЁющёЄтю, ё ъюЄюЁ√ь яЁюшчтюфшЄё  юсьхэ фрээ√ї, фю эрўрыр юсьхэр
ш юёЄртрЄ№ё  т эшчъюь єЁютэх ъръ ьшэшьєь фю ъюэЎр яхЁхфрўш.
┬═╚╠└═╚┼: ьхцфє Ўшъыюь ттюфр-т√тюфр яЁюЎхёёюЁр Z80, эрўшэр■∙шь юсьхэ яю SPI, ш Ўшъыюь ттюфр-т√тюфр, єёЄрэртыштр■∙шь
nCS ёююЄтхЄёЄтє■∙хую шэЄхЁЇхщёр т 1 фюыцэю яЁющЄш ═┼ ╠┼═┼┼ 18 ЄръЄют! ▌Єю сєфхЄ ёююЄтхЄёЄтютрЄ№ т√ъы■ўхэш■
nCS ёЁрчє цх яюёых ъюэЎр яхЁхфрўш.

─Ёєушх юуЁрэшўхэш  ш ЄЁхсютрэш  фы  nCS ьюуєЄ с√Є№ эрщфхэ√ т ёююЄтхЄёЄтє■∙шї datasheet'рї эр яюфъы■ў╕ээ√х єёЄЁющёЄтр.

─ы  шэЄхЁЇхщёр яхЁхфрўш mp3-фрээ√ї ёє∙хёЄтєхЄ Єюы№ъю яюЁЄ _SEND

╫рёЄюЄр яхЁхфрўш (ўрёЄюЄр ЄръЄют√ї ёшуэрыют эр т√їюфх SCK spi-шэЄхЁЇхщёр) Ёртэр яюыютшэх
яЁюЎхёёюЁэющ ўрёЄюЄ√. ╤ыхфєхЄ ёыхфшЄ№, ўЄюс√ ўрёЄюЄр яхЁхфрўш эх яЁхт√°рыр ьръёшьры№эю фюяєёЄшьє■
фы  фрээюую єёЄЁющёЄтр (ёь. datasheet).

─ы  єяЁрты ■∙хую шэЄхЁЇхщёр ё MP3-фхъюфхЁюь ш фы  шэЄхЁЇхщёр яхЁхфрўш хьє MP3-фрээ√ї яЁхфєёьюЄЁхэю ёэшцхэшх ёъюЁюёЄш
яхЁхфрўш т 2 Ёрчр (сшЄ√ _MPHLF=1, _MDHLF=1), т ¤Єюь ёыєўрх ьхцфє чряєёърьш Ўшъыют юсьхэр, р Єръцх юЄ чряєёър юсьхэр фю
ёэ Єш  nCS (фы  єяЁрты ■∙хую шэЄхЁЇхщёр) фюцэю яЁюїюфшЄ№ ═┼ ╠┼═┼┼ 34 ЄръЄют.



 ╚эЄхЁЇхщё SD-ърЁЄюўъш:

SD_SEND
SD_READ
SD_RSTR - ёь. т√°х яЁю SPI-шэЄхЁЇхщё√

_SDNCS - сшЄ т яюЁЄє S_CTRL (т√їюф эр ърЁЄюўъє)
_SDWP  - сшЄ т яюЁЄє S_STAT (тїюф ё ърЁЄюўъш)
_SDDET - сшЄ т яюЁЄє S_STAT (тїюф ё ърЁЄюўъш)

_SDNCS - юяшёрээ√щ т√°х nCS.  ╧Ёш ёсЁюёх NGS ¤ЄюЄ сшЄ єёЄрэртыштрхЄё  т 1.

_SDWP - ёшуэры чр∙шЄ√ чряшёш. =1, хёыш тёЄртыхээр  ърЁЄюўър "чр∙ш∙хэр" юЄ чряшёш, ш =0,
хёыш эх "чр∙ш∙хэр": чр∙шЄр чряшёш чрфр╕Єё  эр ърЁЄюўъх Єръ цх, ъръ ш эр 3.5" фшёъхЄх,
яюёЁхфёЄтюь яырёЄьрёёютюую Їырцър. ┼ую ёюёЄю эшх ЇшъёшЁєхЄё  яЁш яюью∙ш ъюэЄръЄют т Ёрч·╕ьх
яюф ърЁЄюўъє

_SDDET - ёшуэры эрышўш  ърЁЄюўъш т Ёрч·╕ьх. =1 - эхЄ ърЁЄюўъш, =0 - хёЄ№. ▌ЄюЄ ёшуэры
Єръцх ухэхЁшЁєхЄё  ъюэЄръЄрьш т Ёрч·╕ьх.



 ╚эЄхЁЇхщё mp3-ўшяр:

MD_SEND - SPI-ърэры фы  mp3-фрээ√ї (Єюы№ъю т√тюф срщЄют)

_MDHLF - єяЁрты хЄ ёъюЁюёЄ№■ яюЁЄр: =1 - яюэшцхээр  т 2 Ёрчр ёъюЁюёЄ№ sck (Fz80/4), =0 - эюЁьры№эр  (Fz80/2)
         ╧Ёш ёсЁюёх ¤ЄюЄ сшЄ єёЄрэртыштрхЄё  т 0. ╧Ёшьхэхэшх - яЁш яхЁхё√ыъх фрээ√ї т mp3-фхъюфхЁ эр
         ўрёЄюЄрї яЁюЎхёёюЁр 20 ш 24 ╠├Ў.



MC_SEND
MC_READ - єяЁрты ■∙шщ SPI-ърэры mp3-фхъюфхЁр

_MPHLF - єяЁрты хЄ ёъюЁюёЄ№■ яюЁЄр: =1 - яюэшцхээр  т 2 Ёрчр ёъюЁюёЄ№ sck (Fz80/4), =0 - эюЁьры№эр  (Fz80/2)
         ╧Ёш ёсЁюёх NGS ¤ЄюЄ сшЄ єёЄрэртыштрхЄё  т 1. ╧Ёшьхэхэшх - фы  эрўры№эющ шэшЎшрышчрЎшш mp3-ўшяр
         (яЁюЎхёёюЁ эр ўрёЄюЄх 10 шыш 12 ╠├Ў), р Єръцх фы  єяЁртыхэш  шэшЎшрышчшЁютрээ√ь mp3-ўшяюь яЁш
         ўрёЄюЄх яЁюЎхёёюЁр 20 шыш 24 ╠├Ў.

_MPNCS - сшЄ т яюЁЄє S_CTRL (т√їюф эр фхъюфхЁ): ёшуэры nCS фы  шэЄхЁЇхщёр ё mp3-фхъюфхЁюь.
         ╧Ёш ёсЁюёх NGS ¤ЄюЄ сшЄ єёЄрэртыштрхЄё  т 1.

_MPXRS - сшЄ т яюЁЄє S_CTRL (т√їюф эр ърЁЄюўъє): ёшуэры юс∙хую ряярЁрЄэюую ёсЁюёр фы  mp3-фхъюфхЁр (XReSet),
         ръЄштэ√щ єЁютхэ№ - эшчъшщ. ╧Ёш ёсЁюёх NGS ¤ЄюЄ сшЄ єёЄрэртыштрхЄё  т 0.

_MPDRQ - сшЄ т яюЁЄє S_STAT (тїюф ё ърЁЄюўъш): тїюф ёшуэрыр DREQ c mp3-фхъюфхЁр, =1: ьюцэю яюёырЄ№ х∙╕ фю 32 срщЄ mp3-яюЄюър
         =0: яюё√ырЄ№ эшўхую эхы№ч  (т яЁюЎхёёх яюё√ыъш Єхї 32 срщЄ ¤ЄюЄ ёшуэры эєцэю шуэюЁшЁютрЄ№).




 ╧юЁЄ√ SCTRL ш SSTAT:

SSTAT: яюЁЄ Єюы№ъю эр ўЄхэшх.

 bit7 - (undef)
 bit6 - (undef)
 bit5 - (undef)
 bit4 - (undef)
 bit3 - (undef)
 bit2 - _SDWP  (єЁютхэ№ эр тїюфх)
 bit1 - _SDDET (єЁютхэ№ эр тїюфх)
 bit0 - _MPDRQ (єЁютхэ№ эр тїюфх)


SCTRL: яюЁЄ эр ўЄхэшх ш эр чряшё№.

╧Ёш ўЄхэшш:

 bit7 - (undef)
 bit6 - (undef)
 bit5 - (undef)
 bit4 - _MDHLF (Єхъє∙хх ёюёЄю эшх сшЄр ёъюЁюёЄш)
 bit3 - _MPHLF (Єхъє∙хх ёюёЄю эшх сшЄр ёъюЁюёЄш)
 bit2 - _MPXRS (Єхъє∙хх ёюёЄю эшх т√їюфр)
 bit1 - _MPNCS (Єхъє∙хх ёюёЄю эшх т√їюфр)
 bit0 - _SDNCS (Єхъє∙хх ёюёЄю эшх т√їюфр)

╧Ёш чряшёш:

 bit7 - _SETNCLR (=1 - єёЄрэютшЄ№ т 1 т√сЁрээ√х т√їюф√, =0 - єёЄрэютшЄ№ т 0 т√сЁрээ√х т√їюф√)
 bit6 - фюыцхэ с√Є№=0
 bit5 - фюыцхэ с√Є№=0
 bit4 - _MDHLF (=1 - сшЄ т√сЁрэ фы  єёЄрэютъш т 0 шыш т 1)
 bit3 - _MPHLF (=1 - сшЄ т√сЁрэ фы  єёЄрэютъш т 0 шыш т 1)
 bit2 - _MPXRS (=1 - сшЄ т√сЁрэ фы  єёЄрэютъш т 0 шыш т 1)
 bit1 - _MPNCS (=1 - сшЄ т√сЁрэ фы  єёЄрэютъш т 0 шыш т 1)
 bit0 - _SDNCS (=1 - сшЄ т√сЁрэ фы  єёЄрэютъш т 0 шыш т 1)

─ы  єёЄрэютъш ъръюую-ышсю т√їюфр т 0 шыш 1 эхюсїюфшью т т√тюфшьюь срщЄх єёЄрэютшЄ№
ёююЄтхЄёЄтє■∙шщ сшЄ т 1, р 7 сшЄ ¤Єюую цх срщЄр єёЄрэютшЄ№ 0 шыш 1, ўЄю ёююЄтхЄёЄтхээю
яЁштхф╕Є ъ єёЄрэютъх т√їюфр т 0 шыш т 1. ─рээ√щ ьхЄюф яючтюы хЄ єяЁюёЄшЄ№ єяЁртыхэшх юфшэюўэ√ьш
сшЄрьш, р Єръцх юёє∙хёЄты Є№ єяЁртыхэшх Ёрчэ√ьш сшЄрьш шч Ёрчэ√ї яюЄюъют (эряЁшьхЁ, т юёэютэюь
Ўшъых ш т яЁхЁ√трэшш).

╧ЁшьхЁ√:

 ld A,%10000001
 out (SCTRL),A - єёЄрэютшЄ№ _SDNCS т 1

 ld A,%00000010
 out (SCTRL),A - єёЄрэютшЄ№ _MPNCS т 0

 ld A,%10000111
 out (SCTRL),A - єёЄрэютшЄ№ ёЁрчє ЄЁш сшЄр т 1

 ld A,%00000101
 out (SCTRL),A - єёЄрэютшЄ№ _MPXRS ш _SDNCS т 0