OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 18.04.2024, 06:52

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 160 ]  Přejít na stránku 1, 2, 3, 4, 5 ... 11  Další
Autor Zpráva
 Předmět příspěvku: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 15:05 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Na ZX Spectru existuje disketový řadič MB02+, který používá čip Z80DMA. Původně DMA sloužilo k obsluze HD FDD mechanik, ale nic nebránilo jeho využití i v demech či hrách. Někdy v letech 2007 nebo 2008 jsem nakreslil desky interního interface pod názvem DATAGEAR, což byla vlastně mrňavá deska 5x5cm, která se zapojila do patice místo původního procesoru Z80. Desku jsem však udělal tak, že se nevešla do SAM COUPE. Dnes jsem procházel HDD a našel jsem i návrh desky DATAGEARu uzpůsobený pro zapojení v Sam Coupe. Akorát je to dělané na DMA čip v provedení DIP40. Pro variantu PLCC44 není udělaná deska. Z80DMA čip musí zvládat základní takt 6MHz(stejně jako je taktovaný CPU v sam coupe). Z80DMA existuje v provedení jak 6MHz, tak i 8MHz. Značení je Z84C1006(6MHz) nebo Z84C1008(8MHz). Přímo spustitelné sdrojáky v assembleru mám.

Něco málo o DATAGEARu (na webu mám jen verzi pro ZX):
http://velesoft.speccy.cz/data-gear.htm

Dokumentace k Z80DMA je tady:
http://velesoft.speccy.cz/data-gear/z80-skripta.pdf (strana 225 až 243)

Na ZX datagear díky rychlému přenosu dat dokázal například realizovat multicolor v celé obrazovce a nebo jemnější písmo v borderu. U SAM COUPE zádné multicolory netřeba, protože multicolor režim už podporuje sama ula. DMA čip je třeba před přenosem bloku dat nastavit (pomocí portů) což chvilku trvá. Přenášet například nějaké krátké 10 bajtové bloky nemá smysl, protože delší dobu trvá nastavení čipu. DMA přenos se vyplatí pro přenosy bloků o velikosti desítek bajtů a větších. Například by se dal dobře urychlit scroll obrazovky v pixelovém barevném režimu, kde každý mikrořádek zabírá 128 bajtů a celý screen 24kB. I pro DMA ale platí, že bude bržděné ulou stejně jako CPU. Akorát přístup do rom, externí ram (megovka) nebo při vypnutém obraze (podobně jako u ZX81) to pojede na plných 6MHz.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 15:37 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2728
Has thanked: 144 times
Been thanked: 422 times
Velesofte myslim si ze kdyz to nakreslis tak se jiste 10 kusu uda. Otazka je kde levne koupit DMA radic? Na Ebay je levny jen PLCC http://www.ebay.com/itm/Z84C1008VEC-Enc ... 589ae9a4fd Take to umi dodat Mouser ale je to na objednani. Mouser umi DIL i PLCC. DIL na ebay http://www.ebay.com/itm/Z84C1008PEC-ZIL ... 5af46a6636 je docela drahy.

Kdyz se to objedna u http://www.elecrow.com/ tak to cele prijde na 400Kc/10 desek vcetne postovneho. Takze, kdyz bude potreba, tak obstaram objednani a rozposlani. Ja osobne bych mel zajem o jeden az dva kusy. Jiny kamarad urcite bude chtit dva kusy a jiny jeden kus. Takze jiz sest kusu vcetne tebe je vlastne udano.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 17:01 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Kde ty DMA sehnat nevim. Bud EBAY nebo jine cinske sklady. Ja mam doma jen Z80DMA na 4MHz a to predpokladam pouzit nepujde. DIP40 verze ma jednu nevyhodu, neobsahuje signal reset (neni pro nej volny pin) a pokud nejaky software nespravne nastavi registry DMA cipu, muze se stat, ze pocitac vytuhne a pomuze uz jen vypnuti napajeni. Mam to odzkousene jen na ZX a tam kdyz blbe nastavim dma, ULA to nerozdejcha, vypadne synchronizace obrazu na RGB vystupu(monitor piska a obraz se vertikalne srazi do nekolika malo mikroradku) a pusobi to hruzostrasne... Zbyva jen vytahnout napajeni. Oproti tomu CMOS DMA v PLCC pouzdru ma navic uz pin RESET, takze se obejdeme bez vytahovani ze site. Akorat by se pro PLCC pouzdro musel nakreslit plosnak. Navrh v eaglu mam pro DIP40, mohu sem poslat a kdyz to nekdo predelate.... Ja se tomu venovat nebudu, delam na SAM 2 klonu. Vse ostatni by jen brzdilo projekt.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 20:41 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Zda se, ze tu mam hotovy navrh desky pro DMA v DIP40. Schema je trochu jine nez to v ZX verzi ale funkcne to je shodne. Podklady mohu zverejnit, ale neni to odzkousene, nezarucuju funkcnost, ale schema je shodne s tim ze ZX, akorat je DMA premistene na opacnou stranu desky a firmware pro GAL16V8 je nepatrne jiny (koukal jsem, ze obsah je ale funkcne shodny). Takze jestli nekdo chcete delat desky, klidne to sem hodim. Ale fakt nerucim za to ze to funguje. S rozmerem jsem se na 5x5cm nevesel, takze by se to muselo delat uz ve formatu 5x10 cm.


Přílohy:
DATAGEAR-R-2015-top.jpg
DATAGEAR-R-2015-top.jpg [ 120.86 KiB | Zobrazeno 16233 krát ]

_________________
http://velesoft.speccy.cz/


Naposledy upravil VELESOFT dne 16.05.2015, 20:50, celkově upraveno 2
Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 20:44 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2728
Has thanked: 144 times
Been thanked: 422 times
Velesofte urcite bych mel zajem se na ty Eagle data podivat, napisi ti email. Jinak s pomoci jednoho hradla 74ls08 se da korektne resetovat DIL DMA obvod. Zapojeni je stejne jako ma Sharp MZ800 pro Z80 PIO. Koukal jsem na schema pro ZX a vidim nevyuzity jeden vstup a vystup Galu a tak zde toto by slo vyuzit na reset DMA.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 20:48 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
suksoft píše:
Velesofte urcite bych mel zajem se na ty Eagle data podivat, napisi ti email. Jinak s pomoci jednoho hradla 74ls08 se da korektne resetovat DIL DMA obvod. Zapojeni je stejne jako ma Sharp MZ800 pro Z80 PIO. Koukal jsem na schema pro ZX a vidim nevyuzity jeden vstup a vystup Galu a tak zde toto by slo vyuzit na reset DMA.


Myslis vnuceni aktivity M1 behem resetu ? GAL je u teto verze plne vyuzity, ale dalo by se par pinu vysetrit, to neni problem.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 20:57 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2728
Has thanked: 144 times
Been thanked: 422 times
VELESOFT píše:
suksoft píše:
Velesofte urcite bych mel zajem se na ty Eagle data podivat, napisi ti email. Jinak s pomoci jednoho hradla 74ls08 se da korektne resetovat DIL DMA obvod. Zapojeni je stejne jako ma Sharp MZ800 pro Z80 PIO. Koukal jsem na schema pro ZX a vidim nevyuzity jeden vstup a vystup Galu a tak zde toto by slo vyuzit na reset DMA.


Myslis vnuceni aktivity M1 behem resetu ? GAL je u teto verze plne vyuzity, ale dalo by se par pinu vysetrit, to neni problem.


Presne tak. Koukal jsem na originalni datasheet od Ziloga a DMA se da resetovat uplne stejne jako PIO. Take jsou koukal na www.utsource.net a jsou schopni dodat i DIL.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 22:42 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2728
Has thanked: 144 times
Been thanked: 422 times
Tak jsem koukal na schema a na obsah galu a myslim si ze by uplne stejna deska mohla fungovat bez uprav v Sharp MZ800 a Sam Coupe. Jedine co by se muselo udelat aby se DMA cip posunul cca o 5 mm a neblokoval tak napajeci konektor. Kluci Sharpisti ma smysl o tom uvazovat? Mne to pripada jako zajimava myslenka, udelat jeden projekt pro dva pocitace :-).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 22:48 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
suksoft píše:
Tak jsem koukal na schema a na obsah galu a myslim si ze by uplne stejna deska mohla fungovat bez uprav v Sharp MZ800 a Sam Coupe. Jedine co by se muselo udelat aby se DMA cip posunul cca o 5 mm a neblokoval tak napajeci konektor. Kluci Sharpisti ma smysl o tom uvazovat? Mne to pripada jako zajimava myslenka, udelat jeden projekt pro dva pocitace :-).


No a nestacilo by u MZ800 pouzit primo desku ze ZX verze ? Ta ma DMA cip umisteny na opacne strane vedle CPU.
Obrázek

Ohledne toho resetu DMA cipu bych to videl takto:
Z80DMA ma ted v DATAGEARu nepouzity pin M1. Tedy natvrdo pripojeny na +5V. Vzhledem k tomu, ze na ZX stacilo jen 4MHz NMOSove DMAcko, ktere nepodporovalo zadny reset, tak jsem pri navrhu tehdy o resetovani ani nepremyslel. U SAM COUPE bude nutne pouzit DMA ve verzi 6MHz nebo 8MHz a obe existuji jen v CMOS provedeni. CMOS verze podporuji resetovani, takze tady uz ma smysl o podpore resetu uvazovat. DATAGEAR ma neuplne zapojene DMA, vubec nepouziva M1 vstup z CPU ani preruseni z DMA cipu. Pokud by se funkce M1 vypustila i v teto verzi pro sam coupe, klidne muzeme na pin M1 u DMA privest natvrdo signal RESET z CPU. Behem aktivity resetu ma CPU neaktivni signaly IORQ i RD a RESET je v log.0. Tohle presne DMA potrebuje - uzemnit pin M1 u DMA cipu po dobu resetu. Datasheet rika ze M1 musi byt minimalne 2takty aktivni. Tuto dobu nam reset krasne splni. Kdyby se ovsem chtelo DMA vyuzit naplno, muze se zapojit i preruseni a M1 privadet v nezmenenem stavu pokud je neaktivni reset. Na to uz by se ale musel prekreslit plosnak.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 23:32 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2728
Has thanked: 144 times
Been thanked: 422 times
Velesofte tvoje reseni dat na M1 reset signal je podle mne spravny. Protoze stejne nevyuzivame interupt ani chain preruseni tak nemusime M1 privadet do DMA obvodu. Proste uzivatel muze delat jen presuny ale nemuze DMA pouzit jako zdroj preruseni.

Koukal jsem na desku pro ZX a je tam velky problem ze od patice CPU do konektoru X9 je v Sharpovi jen 23mm a deska ma 28mm. Take je to v casti kde neni moc mista na vysku. Zrovna toto misto je zuzene. Proto kdyz jsem zjistil ze na Sam Coupe je to obracene tak mne napadlo ze by se to mohlo dat do Sharpa ale hned jsem vedel o problemu s napajecim konektorem. Mozna se ta deska bude muset trosku zvetsit i v druhem smeru (asi nebude nutne, maximane jen vhodne) ale to se zjisti az se to vytiskne a odzkousi v realnem stroji. Protoze CPU je levne tak to bych mozna primo zapajel na desku a do patice bych dal jen DMA cip.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 16.05.2015, 23:34 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
U SAM COUPE bych nejlepsi vyuziti DMA videl pri praci s videoram a konkretne pro scroll. A to bud v multicolor rezimu na vertikalni posun, nebo uplne nejlepe v modech 3 a 4, kde jsou barevne pixely bez atributu. V obou modech bude nejjemnejsi vertikalni posun po 1 pixelu, horizontalne je to ale horsi. V modu 4 by posun vlevo/vpravo byl po dvou bodech, ci po nasobku dvou. V hi-res modu 3 je nejmensi krok vlevo/vpravo 4 pixely. Pri 128bajtech na mikroradek DMA dost urychli prenos dat. Nejrychlejsi rezim DMA prenosu trva 2 takty (6MHz) pro nacteni bajtu ze zdrojove adresy + 2 takty pro zapis/presun bajtu na cilovou adresu. Teoreticky trva DMA prenos jedineho bajtu 4 takty. jenze ula(ASIC) brzdi WAITem CPU a tedy i DMA prenos. Takze rychlost bude trochu jina. Dalsi nastaveni DMA cipu dovoluje zvolit i jine casovani, kde si zvolite jak dlouho trva READ cyklus a jak dlouho WRITE. Rozsah rychlosti je 2T az 4T a to samostatne pro READ a klidne jinak pro WRITE. Mam ale vyzkouseno, ze DMA na ZX zvladlo rychlosti 1T zapisovat na cilovou adresu, pokud jde o prenos dat do I/O adresoveho prostoru. Teoreticky kdyby byla nejaka hodne rychla ramka (treba externi), mohl by slapat prenos rychlosti 1T+1T, coz jsou 2 takty na 1 bajt. Take by asi slo rychle plnit paletu barev daty z ramky a zvetsit tak pocet zobrazitelnych barev na kazdem mikroradku.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 17.05.2015, 10:33 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3661
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 795 times
VELESOFT píše:
DMA čip je třeba před přenosem bloku dat nastavit (pomocí portů) což chvilku trvá. Přenášet například nějaké krátké 10 bajtové bloky nemá smysl, protože delší dobu trvá nastavení čipu. DMA přenos se vyplatí pro přenosy bloků o velikosti desítek bajtů a větších.
Az tak kriticky by som to nevidel. Je pravda, ze prvykrat treba do DMA poslat 16 bajtov, ale pri dalsom bloku staci poslat uz len to co ma novy blok rozdielne (obvykle iba zdrojovu a cielovu adresu). Rozne dalsie parametre, ako casovanie, sirka pulzov, smer a typ prenosu (a obvykle aj dlzka bloku pokial su rovnako dlhe) nastavovat netreba, DMA si vsetko pameta od minula. Takze aj prenos viacerych kratkych blokov moze byt DMAckom celkovo rychlejsi ako standartnymi blokovymi operaciami (LDIR...)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 17.05.2015, 10:45 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3661
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 795 times
VELESOFT píše:
Kdyby se ovsem chtelo DMA vyuzit naplno, muze se zapojit i preruseni a M1 privadet v nezmenenem stavu pokud je neaktivni reset. Na to uz by se ale musel prekreslit plosnak.
Ani MB02 vobec nijak nevyuziva prerusenie od DMA. Pri jednorazovych blokovych operaciach hned po spusteni prenosu DMA prevezme zbernicu, urobi prenos a zbernicu vrati procesoru az ked je vsetko hotove. Takze da sa napisat, ze instrukcia nasledujuca po programovacej sekvencii DMA uz moze pocitat s tym, ze takyto prenos je hotovy. Pri prenose riadenom z externeho zdroja (napr. bajt po bajte z FDC radica pri citani/zapise diskety) by sa prerusenie dalo vyuzit na detekciu ze prenos bloku je uz hotovy, avsak v tomto pripade obvykle priamo externy zdroj (v tomto pripade FDC radic) dokaze vygenerovat prerusenie ze operacia je hotova, takze ani tu netreba mat zapojenie prerusenie od DMA.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 17.05.2015, 14:17 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2728
Has thanked: 144 times
Been thanked: 422 times
Velesofte chci se optat zda upravis to schema a naroutujes do DMA na vyvod M1 ten signal reset? Take je potreba upravit JP1 - ted to znici LED. Osobne bych do JP1 dal trikolik a podle toho jak by se jumper vybral by tam byla ciste GND nebo VCC. Otazka je zda JP1 je u Sama potrebne? Jestli se ti do uprav nechce tak to casem udelam ja.

Ostatni kluci napiste kdo mate elementarni zajem o desku. Zatim o to mam zajem 2x ja, 2x uunek a 1x scjoy. Ptam se proto ze muzeme napr. koupit dma radic v dil pouzdru za 255 Kc vcetne postovneho, tak at vim co mam odpovedet znamemu co mne o teto moznosti informoval. Take napiste zda chcete aby deska byla zasunutelna do Sharpa a pripadne zde se mohl udelat nejaky test a pripadne i to nejak vyuzit kdyz to pujde.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 17.05.2015, 16:10 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
SCjoe píše:
No, obavam se, jak Velesoft psal, ze upravit rozmer a prizpusobit jej desce SAMa i Sharpa zaroven budeme muset sami...
Tech kusu dmacek za tu cenu prave ted asi nebude ani 10, klidne si ale vezmu zbyvajici ctyri ci sest desek.


Na desce jsem uz reset na pin M1 zapojil. Jumper JP1 u sam coupe teoreticky neni potreba. Puvodne slouzil k prepinani adresy portu, na kterem DMA bude. Tady jde ale o pocitac SAM COUPE, na kterem zadne MB02+ neexistuje a tak si muzene adresu portu zvolit napevno a zcela jinou. Ledka na desce je tim padem take na prd. To znamena ze 2 piny muzeme mit u GALu volne ci je vyuzit jinak.

Uz jsem to dlouho nestudoval, ale u DMA by melo jit nastavit, ze po vykonani prenosu bloku se vsechny adresy opet obnovi do stavu pred prenosem, nebo tak, ze adresy po prenosu budou posunute (jako registry po instrukci LDIR). Z DMA jsem vzdy pouzival jen dva typy prenosu dat. Bud presun bloku z jedne casti pameti jinam do ram, nebo presun z ram na porty. DMA ale toho zvlada daleko vice. Napriklad umi vyhledavat v pameti, nebo prenaset blok dat bez zastaveni CPU (tedy DMA se strida s CPU po jedne instrukci a dava to dojem ze CPU i DMA bezi soucasne). Obsah GALu se musi nepatrne pozmenit, protoze to co jsem doma nasel, je jen starsi verze s jinym pinoutem.

Me ovsem prave napadla takova kravinka. Kdyby se cast vystupnich adres z dma cipu prohnalo nejakym multiplexem,GALem ci CPLD, mohlo by DMA pracovat ve dvojim rezimu, aniz by o tom samo vedelo. Cteni z ram by mohlo bezet bez uprav, ale zapis do ram by sel nastavit s modifikovanou adresou tak, aby se pocitalo s rozlozenim videoramky v modu 3 a 4. Pak by DMA prenosem bloku 128 bajtu klidne mohlo ve videoram vykreslit sprajt 16x16 pixelu v barvach, a to velmi rychle. Pro hry ve stylu laser squad a podobnych by to znamenalo poradne zrychleni. Male CPLD by jednak zastoupilo zastaraly GAL a soucasne by rozsirilo DMA prenos o dalsi moznosti. A pri pouziti nejakeho vetsiho CPLD by uz nebylo potreba zadne DMA :-)

Rozmer pro SHARPa neznam, to si uz kazdej musi sam upravit dle libosti.

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 160 ]  Přejít na stránku 1, 2, 3, 4, 5 ... 11  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 4 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz