Úprava ZX +3 na +3e pre dva rôzne diskové interace = ZX Plus3e2
Na niektorom z minulých stretnutí som na z00mov podnet prerobil moju +3 na +3e s podporou divIDE. Všetko funguje spoľahlivo a k absolútnej spokojnosti, ale nevýhodou je „blokovanie“ divIDE v plus trojke. Keď niečo potrebujem otestovať napr. prerobenú Issue 6A, musím neustále prehadzovať divIDE medzi dvomi spektrami.
Navyše PLUS3DOS má iný formát disku ako štandardná FAT – ktorú podporuje FATware v mojom divIDE – takže okrem presúvania interface z jedného kompu do druhého som musel zakaždým vymienať aj karty.
Ponúkalo sa jednoduché riešenie – dokúpiť ďalšie divIDE, ale to mi prišlo ako luxus, keď som objavil zapojenie od Peru Putnika s jedným obvodom štandardnej rady 74HCxx a priamym pripojením pätice CompactFlash karty (CF) na zbernicu ZX Spectra.
Babrať sa s titernými 50 vývodmi CF pätice je pomerne náročné, napriek tomu, že nie sú využité všetky piny, ale iba 31.
Preto mi napadlo použiť pomerne štandardnú vec – redukciu CF na IDE, ktorá by vyriešila tieto problémy a zaletovať vodiče idúce zo štandardného IDE kábla by mal zvládnuť každý zručnejší domáci kutil aj trafopájkou.
Nebudem chodiť okolo horúcej kaše a vybalím aký je v tom háčik. Štandardné redukcie majú vývod 36 (WE) pripojený na Vcc a vývod 9 (ATA SEL) na GND. Toto nie je vhodná kombinácia na Putnikove zapojenie, pretože oba vývody sa používajú.
Aby to spolu fungovalo, je potrebné pôvodné prepojenie prerušiť a vytiahnuť tieto signály na iné piny IDE konektora. Ja som prerušil ATD8 (pin 4 IDE) a ATD9 (pin 6 IDE) a priviedol som tam ATA SEL (9 CF) a WE (36 CF).
Po týchto zmenách je už redukcia použiteľná výhradne na ZX, ale to nie je na závadu pri dnešnej cene 2$ za kus napr. na DealExtreme (sku.711).
Gary Lancaster má vo svojom archíve +3e ROMiek zahrnutú podporu pre pripojenie CF kariet podľa Putnika.
Nasledovný krok sa zdal byť logickým – nahradím +3e divIDE EPROMky za PCF alternatívy (CompactFlash Pera Putnik), konkrétne diven3eA+B.rom za pcfen3eA+B.rom. Ale na divIDE som si predtým naformátoval aj nejaké MMC a SD karty a nerád by som sa obral o možnosť prečítať si ich obsah, pretože nový interface takéto niečo nečíta a je zameraný výlučne na CompactFlash.
Rozhodol som sa, že použijem EPROMky s dvojnásobnou kapacitou – 27C512 namiesto 27C256 – a prirobím si prepínač na vývod A15 (pin 1). Ten je na doske +3 pripojený priamo na Vcc, preto je treba vyhnúť nožičku č.1 tak, aby trčala mimo pätice a na takúto nožičku „vo vzduchu“ pripojiť log.1 cez odpor 1k2 na Vcc a vypínač proti zemi.
Pripojil som k +3e naraz divIDE aj Putnik ZX CF s tým, že som dal do každého inú pamäťovú kartu, aby som mal istotu, že sa to správa podľa očakávania. A bolo to tak. Pri A15 na log.1 sa po resete zinicializovala CF karta v redukcii, pri log.0 (spínač spojený) sa zinicializovalo divIDE s tým čo bolo na neho pripojené. Na takéto usporiadanie sa netreba pozerať ako súčasný beh oboch interface, skôr mi šlo o to, či budem môcť príležitostne prevádzkovať divIDE aj keď budem mať natrvalo pripojené ZX CF.
Nemám presne naštudované, aké porty divIDE používa a či je možné, že by sa tieto dva interface bili, pokiaľ sú pripojené spoločne. Zatiaľ to vyzerá, že nie.
Krokom, ktorý bude nasledovať je zabudovanie ZX CF priamo do +3. 3″ floppy je už dávno vymenený, za 3,5″, takže je pod ním dostatok miesta na CF IDE redukciu. Už len zohnať vhodný plast ako predný panel a vymyslieť mechanické uchytenie redukcie pod floppy.
Snáď to stihnem do najbližšieho stretnutia.
UPDATE (31.3.2010):
Podarilo sa mi úspšene zabudovať CF čítačku pod floppy mechaniku ako som plánoval. Ako nosná konštrukcia poslúžila pôvodne záslepka CD-ROM zo starej notebookovej docking stanice. Trochu pilovania, brúsenia a vŕtania a 2 skrutky to úspešne vyriešili o čom svedčia aj obrázky. Tak som to nakoniec do stretka sithol 🙂
Schéma CF IF:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NC – key | 20 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DREQ | 21 | DMARQ | 43 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GND | A6 | GND | 22 | GND | 9 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+5V | A3 | /ATWR | 23 | /IOWR | 35 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GND | A6 | GND | 24 | GND | 10 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+5V | A3 | /ATRD | 25 | /IORD | 34 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GND | A6 | GND | 26 | GND | 11 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IORDY | 27 | IORDY | 42 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GND | A7 | CSEL | 28 | CSEL | 39 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+5V | A3 | /DACK |* Vcc | 29 | /DMACK | 44 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GND | A7 | GND | 30 | GND | 15 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
INTRQ | 31 | INTRQ | 37 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/IOCS16 | 32 | /IOCS16 | 24 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A6 | A22 | ATA1 | 33 | A1 | 19 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/PDIAG | 34 | /PDIAG | 46 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A2 | A11 | ATA0 | 35 | A0 | 20 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A7 | A21 | ATA2 | 36 | A2 | 18 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/A4 * IORQ * /M1 | |7410| | /CS0 | 37 | /CS0 | 7 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+5V | A3 | /CS1 | 38 | /CS1 | 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DASP | 39 | DASP | 45 |
GND | A6 | GND | 40 | GND | 12 |
+5V | A3 | Vcc | 13 | ||
+5V | A3 | Vcc | 38 |
Hviezdičkou označené signály na IDE nie sú štandardne dostupné na CF-IDE redukcii – viď text vyššie ako je potrebné redukciu upraviť. Signál /CS0 na IDE je generovaný logickým súčinom /A4 * IORQ * /M1 obvodom 74xx10
Zapojenie ROM:
Linky:
Putnik ZX CF – http://piters.tripod.com/zxcf.htm
Gary Lancaster Plus3e – http://worldofspectrum.org/zxplus3e/
CF-IDE redukcia:
ikon
Tu upravu na dve sady ROM v +3/+2a by som mohol vycapit aj na hw.speccy.cz, nie?