OldComp.cz

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

Registrace na OCP IV ZDE!

Právě je 19 srp 2018, 13:59

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ] 
Autor Zpráva
 Předmět příspěvku: I8080 periferie k Z80
PříspěvekNapsal: 26 zář 2017, 14:48 
Offline
Radil

Registrován: 11 lis 2013, 09:29
Příspěvky: 254
Has thanked: 11 times
Been thanked: 76 times
Trochu jsem premyslel, jak by se daly pripojit nejake periferni obvody od i8080 k Z80.
Jedna se napriklad o obvod 8155. Jenze ten pouziva signal ALE pro zachyceni adresy ze zbernice (sestupna hrana). Poradil by mi nekdo znaly, jak na Z80 vyrobit signal ALE? Nebo staci jen ALE vstup u 8155 spojit s /IORQ a /RD a /WR s /RD a /WR? CE bych generoval klasicky pres LS138.

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 26 zář 2017, 15:37 
Offline
Pan Štábní

Registrován: 22 kvě 2013, 20:14
Příspěvky: 1905
Bydliště: Bratislava
Has thanked: 209 times
Been thanked: 347 times
S pripajanim periferii od 8080 k Z80 obvykle nebyva ziadny problem, staci zapojit zbernicove signaly RD,WR na RD a WR procesora a do dekodera pre CS pridat aj dekodovanie signalu MEMRQ ktory ma Z80 "navyse" voci 8080. Bez problemov sa daju takto pripojit napr. obvody 8251,8253,8255. A este treba dat pozor na rychlost perifernych obvodov ak Z80 ma vyssi takt ako 8080.

PS: 8155 nie je periferny obvod pre 8080, ale pre *51 ktora signal ALE ma uz priamo na sebe.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 26 zář 2017, 15:44 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1837
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
8155 není brouk k 8080, ale k 8085,nebo 8048?, 8051 s multiplexovanou data_adress sběrnicí.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 27 zář 2017, 07:58 
Offline
Radil

Registrován: 11 lis 2013, 09:29
Příspěvky: 254
Has thanked: 11 times
Been thanked: 76 times
Aha, tak jsem udelal chybu. Otazka presto zustava: Jde pripojit konkretne 8155 s mixovanou AD sbernici a signalem ALE k Z80? Nebo presneji jak?

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 27 zář 2017, 09:09 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1837
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
Nejde jen o signál ALE, ale hlavně tam nejde po datové sběrnici spodní část adresy.
Na rozšíření portů na Z80 můžeš použít 8255 od 8080, nebo přímo porty pro Z80 PIO, nebo jakýkoliv diskrétní port.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 29 zář 2017, 10:00 
Offline
Kecálek

Registrován: 16 lis 2013, 19:07
Příspěvky: 101
Has thanked: 0 time
Been thanked: 20 times
Tak tomuhle říkám výzva! Sice jsem zpočátku nechápal, proč by se někdo měl zabývat připojováním Comba 8155 k Z80, ale nakonec mi to nepřijde jako úplně špatnej nápad. Přeci jen se ten kousíček RAM a nějaký ty paralelní porty v jednom čipu hodí. O timeru nemluvě. Ale pořádný důvod by se našel v případě 8256 MUART, viz. http://nostalcomp.cz/p8256.php. Paralení porty, timery a hlavně sériák v jednom, to už se vyplatí.

Tak jsem o tom přemýšlel a napadlo mě následující řešení. Podotýkám, že je to jen teorie a není to prakticky ověřeno, na to jsem neměl čas. Také jsem ještě nekontroloval časování z hlediska délky trvání jednotlivých signálů, ale myslím, že by to chodit mohlo. Pochopitelně nepočítám-li moderní extrémně rychlé varianty CPU Z80.

V principu jde o to, že by se celý obvod 8155 nebo 8256 obsluhoval pomocí instrukcí IN a OUT. K tomu by bylo nutné vytvořit jednoduché rutiny pro čtení/zápis do obvodu. Z hlediska softwaru primitivní.

Z hlediska HW je nutné si pomoci několika obvody dle přiloženého schématu. Až na latch registr typu D se jedná o klasickou kombinační logiku. Myslím, že by to celé mohlo být klidně i v nějakém GALu, ale pro názornost se budu držet diskrétních obvodů. Na schématu jsou dvě varianty generování signálu /CE pro komba. Popsány budou níže.

Popis zapojení:

Počáteční RESET obvodů je vyřešen společně s resetem CPU, jen je nutné signál invertovat.

Řízení přístupu k 8155, 8256 zajišťuje adresový dekodér typu 74138 (3205), který je klasicky uvolňovaný signálem /IORQ s blokací /M1 (kvůli přerušení). Obvod generuje pomocné signály /X, které se pak používají k dalšímu řízení toku dat.

Pro nastavení příznaku IO/M u 8155 je použit záchytný registr typu D zachycující sestupnou hranou (7475, 74373, apod). U 8256 by tato část odpadla, protože nemá IO/M vstup.

Signál ALE tvoří invertovaný signál /WR podmíněný signálem /X1

Signály /RD a /WR jsou standardní, pouze hradlované pomocí /X2

Signál /CE je tvořen hradlem AND z pomocných /X1 a /X2 (varianta 1)


SW obsluha 8155 by pak byla následující (3 kroky):

1) Zápisem OUT (0),A volíme, zda u 8155 budeme pracovat s RAM (A=0), nebo periferiemi (A=1). V tomto kroku se aktivuje pomocný signál /X0, který spolu se zapisovacím impulsem /WR přepíše nejnižší datový bit D0 do pomocného latche.

2) Zápisem OUT (1),A vytvoříme signál ALE. Ve střadači A musí být osmibitová adresa pro 8155/8256, kterou obvod zachytí ve svém interním registru. Pochopitelně je spolu s ALE obvod vybrán pomocí aktivního /CE.

3) Zápisem OUT (2),A ,nebo čtením IN (2),A zapíšeme, nebo vyzvedneme data z 8155/8256. Data jdou pochopitelně přes střadač A. Signály /WR a /RD jsou hradlovány pomocným signálem /X2, který zároveň aktivuje vybraný obvod pomocí jeho /CE. U signálu /RD není hradlování nutné, ale u /WR již ano, aby nebyl /WR 8155 aktivován během tvorby ALE! Nicméně, jak bude popsáno dále, je vhodné hradlovat oba signály.

Trochu mi dělá starost to, že dle diagramu časování Z80 končí signály /IORQ a /WR ve stejný okamžik. To by mohl být problém zejména u tvorby signálu ALE (krok 2).

Zde jsou možná tři řešení:

1) prodloužit dobu trvání /IORQ (MKO či RC prodlužující puls)

2) zkrátit dobu trvání /WR Z80 (MKO či RC zkracující puls) - lepší

3) pomocí RS klopného obvodu před zápisem ALE aktivovat /CE natrvalo a shazovat jej dalším pomocným signálem /X3. V tom případě by musel v obsluze následovat ještě krok 4 tvořený "plonkovou" instrukcí IN (3),A nebo OUT (3),A. Jejím vykonáním by se pouze shodil výběr /CE a jinak by se nic neprovádělo. Na obsahu A by nezáleželo. V tomto případě je nutné signálem /X2 hradlovat jak /RD, tak /WR! Toto řešení je také zakresleno ve schématu.


Pokud to někdo vyzkouší, nebo zde najde nějaké moje zásadní pochybení v úvahách, prosím dejte vědět!

Poznámka: Kromě Comba 8155, existuje ještě varianta 8156 lišící se pouze opačnou úrovní CE. Úprava na tento obvod je snad dostatečně triviální. U řešení s jedním hradlem se místo AND použije NAND. U řešení s RS se použije druhý výstup.


Přílohy:
8155_k_z80.jpg
8155_k_z80.jpg [ 76.4 KiB | Zobrazeno 1893 krát ]


Naposledy upravil Nostalcomp dne 29 zář 2017, 12:05, celkově upraveno 1
Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 29 zář 2017, 11:51 
Offline
Kecálek

Registrován: 16 lis 2013, 19:07
Příspěvky: 101
Has thanked: 0 time
Been thanked: 20 times
Myslím, že stejným způsobem by šly obvody se vstupem ALE připojit i k CPU 8080. Signál /M1 na dekodéru se nahradí trvalou log.1 a signál /IORQ se nahradí signálem vzniklým jako /IORD AND /IOWR. Pak by to asi rovnou chtělo tu verzi s RS klopákem pro generování /CE. Tohle už by se vyzkoušet dalo třeba s PMI, které má vyvedenou systémovou sběrnici. Ještě mám nějaké Unikarty, tak si možná některý večer pohraju :-)

Analogicky, jako vše výše uvedené, by bylo možné kombo obvody namapovat i do paměťových adresových prostorů Z80, resp. 8080.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 29 zář 2017, 16:58 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1837
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
V podstatě se tam musí lézt na dvakrát.
Poprvé se instrukcí OUT vygeneruje ALE + obsah adresové sběrnice + CE + IO/M a podruhé se udělá přístup do datové oblasti.
V podstatě by měl stači jeden adresovej dekodér na /IORQ, /RD a /WR se volí adresou, je zapotřebí potlačit /M1, na signál ALE je potřeba inverze.
Jedna 74138 a nějaké hradlo, 7410.

HADEX jich má dostatek :)
http://www.hadex.cz/e414-mhb8155h-dil40/

Jako exot mám NSC800N, ten se chová podobně jako 8085, ale instrukční sadu má jako Z80.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 30 zář 2017, 11:24 
Offline
Kecálek

Registrován: 16 lis 2013, 19:07
Příspěvky: 101
Has thanked: 0 time
Been thanked: 20 times
Bingo! Chtělo to trochu vyvětrat mozek jízdou na bicyklu :-) Až tam mi došlo, že /CE a IO/M jsou u combo obvodů latchovaný uvnitř, takže ten D registr je úplně zbytečnej a oba signály můžou nahradit adresový signály. Taky ten požadovaný přesah /CE oproti ALE bude dle diagramu a tabulky časování Z80 spolehlivě dodržen.

Ale pořád jsem se zuby nehty držel toho hradlování signálů /RD a /WR. Holt zvyk. Sice by to ničemu nevadilo, ale je to zbytečný. Opravdu se můžou "vytáhnout" z dekodéru přímo. Takže Danhardovi dík za nakopnutí.

Tím se celé zapojení opravdu redukuje na dekodér a jeden invertor. V případě 8080 pak ještě jedno AND hradlo. Zkusím to s tím PMIčkem. Je to tak jednoduchý, že se to dá na nepájivém poli a na to už si čas udělám. Dám vědět, jak to dopadlo a přidám to propojení CPU s 8155.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 30 zář 2017, 16:02 
Offline
Pan Štábní

Registrován: 16 čer 2014, 11:23
Příspěvky: 1837
Bydliště: Jesenice
Has thanked: 8 times
Been thanked: 110 times
To já jsem dnes zakončil výlet na bicyklu držkopádem a orbou asfaltu rypákem :lol:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: I8080 periferie k Z80
PříspěvekNapsal: 30 zář 2017, 21:00 
Offline
Radil

Registrován: 11 lis 2013, 09:29
Příspěvky: 254
Has thanked: 11 times
Been thanked: 76 times
Tu 8256 jsem mel na mysli taky. A kdyz mi 'pristala' na stole, tak dvakrat. Jen jsem to nechtel az tak moc komplikovat ;-)
Puvodni myslenka byla zalozena taky na tech dekoderech, ale nemel jsem cas ani odvahu to zkouset. A pak me odradilo zkoumani specifikaci. Rikal jsem si, ze lepsi je prakticka zkusenost. Proto to tema tady.
Jestli to nekdo zkusite (kdo mate vice zkusenosti), tak budu moc rad. A pro PMI-80 bych to taky vyuzil. Alespon bych ji opet vytahnul, oprasil a trochu si zablbnul.

Jo, ale na kole to zkouset nebudu :-)

_________________
Sharp MZ-800++, MZ-1500++, MZ-2500++, SM-B-80T, MK-14_replica, HP-85, ZX-80+replica, ZX81, ZX-Spectrum+replica++, PMI-80+replica, SAM coupe++, PMD-85-2A+3, Didaktik-M, SORD-M5, TI-57, TI-59+PC-100, TI99/4A, ZetaV2+ppp, ZX-uno, Petr


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ů: 11 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvní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