OldComp.cz

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


Právě je 28.03.2024, 22:07

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 Předchozí  1 ... 7, 8, 9, 10, 11  Další
Autor Zpráva
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 27.09.2015, 16:25 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
suksoft píše:
Ten dsk jsem myslel udelat neco co elementarne vyzkousi ze deska funguje. Proste nakresli nekam treba panacka(y) a toho bude posouvat.

Protoze nevidim schema tak se domnivam ze prohazujes nektere adresove vodice. Ted mne napadlo, co tam treba nedat nejaky CPLD XC95xxXL a to zapojit jako budic a multiplexer? Tak by jedna karta mohla delat funkci obou karet a kdyz by tam byl i nejaky latch na nejakem portu tak by se to dalo prepinat za provozu. Nejaky out by prepinal mezi primem a prohozenem zapojenim sbernice. Kdyz by se to neprepinalo softwarove ta by to mohl delat nejaky jumper. Logicky by se jen vymenil Gal za CPLD. Nerikam ze se to ma udelat jen zda to ma hlavu a patu.

Cip by mohl byt napr. XC9536XL-10VQ64C a maji ho napr. http://cz.farnell.com/xilinx/xc9536xl-1 ... XL-10VQ64C
Tech cipu mam doma par velmi levne nakoupeno a tak bych to rad nekde pouzil. Da se vyuzit vsech 36 vyvodu. Vyhoda je ze se to
da programovat vicekrat v zapajene desce a soucasne ze neni potreba tam davat patici.


Samozrejme, vzdy kdyz udelam nejaky HW, bud uz pro nej musi existovat, nebo pro nej napisu nejaky SW. Jinak bych sam ani nemohl odzkouset funkci.

Ano, jsou zprehazene adresy. CPLD by take pomohlo, ale musi se prekreslit deska :-) Mohl bych se o to pokusit, ale CPLD bez patice me zrovna nelaka. A take by byl opruz to kreslit na 2vrstve desce. Uz navrh tehle verze mi trval vic jak 10 hodin.

_________________
http://velesoft.speccy.cz/


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

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Velesofte myslel jsem ze kdyz vidim tvoje posledni navrhy jinych projektu kde i pises ze chces pouzivat XC95144XL s 144 vyvody nebo dokonce cip 288XL, ktery ma opravdu male nozicky, ze ti nevadi pouzivat primo zapajene obvody. Mimochodem proto jsem se rozhodl se vice ponorit do smd polovodicu a pripravit se na tyto nove projekty. Pomalu se lepe vybavuji abych mohl se ucastnit techto projektu.

Jinak mam koupenych par prechodek http://www.radeksuk.cz/samcoupe/jine/IMG_0617.JPG a chci to zapojit tak ze tam zapajim chip a okolo dam pinove listy smerem dolu. Takto to budu moci pouzit spolu s nejakym nepajivym polem (na stole si to obratim). Toto muzu zasunout do dutinkove listy. Dalo by se rici ze je patice pro 64 pinovy obvod. Kdyz se to dobre navrhne tak by se to dalo recyklovat do vice projektu. Zakladni deska by byla porad klasicka 2-vrstva deska. Samozrejme ze by i na zakladni desce by mohl byt tento obrazec a tak kdo by se na to citil by to zapajel primo a kdo ne, ten pres pomocnou desku.

Jinak vim ze vse stoji strasne hodne casu. Proto take nerikam aby jsi to predelal ale jen zamyslel zda by se to nedalo aplikovat v nejake dalsi verzi.


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

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
suksoft píše:
Jinak vim ze vse stoji strasne hodne casu. Proto take nerikam aby jsi to predelal ale jen zamyslel zda by se to nedalo aplikovat v nejake dalsi verzi.


Dalsi verze delat asi nebudu :-) Byl by v tom akorat bordel. Pokud neco noveho, pak samotne CPLD, ktere zastoupi kompletne DMA. Pokud CPLD vyuziva maximalne 32 signalu, pak davam prednost radeji PLCC44 pouzdru s moznosti patice. Vetsi pocet uz automaticky SMD. At uz ale pouzijeme jakekoli pouzdro, je tu jiny problem. Xilinx uz tyto CPLD nevyrabi, takze se jede ze skladovych zasob a v e-shopech casto uz XC95xx ani nenabizi. Co takhle pomalu prejit na Alteru ? (teda pokud take nehodla s CPLD skoncit)

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: DMA interface pro SAM COUPE
PříspěvekNapsal: 27.09.2015, 19:12 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 14.05.2013, 19:10
Příspěvky: 1486
Bydliště: Kurim
Has thanked: 828 times
Been thanked: 577 times
Ja bych se tedy spise primlouval k tomu nedelat hybridy se SMD a THT. Tady tech part SMD soucastek by slo v pohode nahradit THT a projekt by se stal dostupnejsi pro vetsi skupinu lidi. Nebo naopak jit do SMD naplno. Takto mi prijde, ze tech par SMD soucastek jen zbytecne muze nekoho strasit.

_________________
http://www.8bity.cz


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

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Prave si doma bastlim datagear co vykresluje sprajty. Tak za hodku bych to mohl testnout. :-)

_________________
http://velesoft.speccy.cz/


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

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Martin8bity píše:
Ja bych se tedy spise primlouval k tomu nedelat hybridy se SMD a THT. Tady tech part SMD soucastek by slo v pohode nahradit THT a projekt by se stal dostupnejsi pro vetsi skupinu lidi. Nebo naopak jit do SMD naplno. Takto mi prijde, ze tech par SMD soucastek jen zbytecne muze nekoho strasit.


Ja vim no. Ikdyz dve veci musime brat v potaz.
1) On si to nikdo sam stavet nebude (samisti moc nedelaji do HW)
2) U externich periferii se casteji stava, ze neco odejde, proto davam pokud mozno co jde do patic, vcetne CPLD, ktere kdyz odejde, mohu dodat jine uz naprogramovane a majitel nemusi nic pajet.

SMD 1206 jsem pouzival casto jen tam, kde se vejde a na kontakty lze pak zapajet nejen soucastky velikosti 1206, ale i 0805, co mam vyzkousene. Navic mezi kontakty 1206 je dostatek mista na provedeni nejakeho vodice, pripadne rozlite zeme. Ikdyz uznavam, ze 1206 nevypada zrovna puvabne :-) Drive jsem dodaval lidem ruzne stavebnice s smd 0805 a nekolik lidi si stezovalo, ze nezapaji ani 1206. Holt bez pinzety a trafopajkou bez kalafuny :-)

_________________
http://velesoft.speccy.cz/


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

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
Huraaaa, jede to.... jede to... Dma mi nabehlo a vykresluje sprajty 16x16 ve fullscreenu. Masakr. Scrolluje obraz po 16ti pixelech horizontalne, atd... A umi jemny scroll v ramci bloku 16x16, takze pokud ve sprajtu rozmeru 16x16 bude mensi obrazec, muzeme s nim posouvat i plynule. DMA vykresluje sprajty stejne rychle jako kazdy jiny DMA prenos, jen s tim rozdilem, ze krome DMA prenosu dat zastoupi i samotnou rutinu pro vykreslovani sprajtu. Ale aby to nevypadalo tak ruzove, pro kazdy ctverec je treba spustit novy DMA prenos, takze nastavit porty, coz zabere cas. Pokud se vykresluje skupina uz pripravenych ctvercu, ktere se nemeni, pak staci jen jediny DMA prenos. Ctvercove vykreslovani lze vyuzit napriklad pro vypis textu, kde ma znak 16x16 pixelu. Zkusim upravit zdrojak, aby pekne vykresloval treba jen jeden sprajt. Vyhodou tohoto DMA je fakt, ze sprajty jsou v pameti ulozene jako screen data. Takze netreba zadneho prevodniku. Proste si nekam do ramky loadnete hotovy screen 24kB s grafikou a dma si z nej zkopiruje libovolny pocet bloku 16x16 nejak jinam, napriklad do obrazovky.

Tak, testovaci software uz mam napsany. Zatim se adresy zadavaji rucne, takze musite presne znat adresy sprajtu zdroje a cile, ale vse funguje jak ma. Ted ale premyslim nad praktickym vyuzitim ctvercoveho rezimu. Sice umi kreslit sprajty/znaky 16x16, ale neumi scrolovat obrazovku. Jeste me napada, ze slo zapojeni upravit tak, ze by fungovalo jak vykreslovani ctvercu, tak by sel i pnynuly scroll obrazovky, ale jen nahoru a dolu, a to s presnosti na 1 mikroradek. Nevyhodou by bylo, ze by se ctverce vykreslovaly pod sebou, misto vedle sebe. Pro vykresleni vice ctvercu vodorovne by se musel pro kazdy ctverec volat novy dma prenos. Zatimco pro vykresleni ctvercu svisle by stacil dma prenos jediny. Adresy by se ale zprehazely jeste vic... :-) Ale slo by pracovat se sprajty, plynule scrollovat svisle obraz(ci jeho cast s sirkou a vyskou v nasobcich 16x16 pixelu) a vodorovne obraz posouvat po 16ti pixelovych blocich, pripadne plynule castecne scrolovat samotny sprajt.

A ted me napada jeste lepsi zapojeni DMA. Takove, ze bych zmensil sprajty na vysku jen 8 pixelu a sirka neomezena, plynule nastavitelna s dvoupixelovou presnosti(1 bajt obsahuje u sama 2 pixely) podle delky prenasenych dat. Pak by slo vykreslovat sprajty s pevnou vyskou 8 pixelu a sirkou od dvou pixelu az po 256 ci vice, dale by fungoval plynuly scroll obrazovky vlevo a vpravo (s presnosti na 2 pixely) ale s tim omezenim, ze by scrolovana plocha mela vysku v nasobcich 8. A scroll nahoru a dolu by byl s krokem 8 pixelu, ci nasobku osmi. Mam toto zapojeni zkusit ?

Pokud by se mezi sbernici a DMA dalo CPLD, odpadl by obvod GAL a slo by softwarove prepinat DMA rezimy, tedy velikosti sprajtu a zpusoby vykreslovani. Dani za to by bylo mensi zpozdeni adres v radu desitek ns, ale snad by to nevadilo.

Napada me ale jeste lepsi reseni a to by byl naprosty masakr. Signal WR mezi DMA a SAM COUPE oddelit logikou a vystupni data z dma sledovat nejakym kompratorem ci GALem. Pokud by DMA cetlo data, vse by probehlo jak ma, bez upravy. Pokud by ale DMA chtelo data zapisovat (treba do videoram), komparator by zdetekoval jestli nejde o nejaky pevne dany bajt(treba hodnota FF) a pokud by tuto hodnotu detekoval, nepropustil by signal WR do pocitace. Ve vysledku by to znamenalo, ze vsechny bajty s hodnotou FF nebudou zapsane a ramka v teto oblasti zustane neporusena. Jinak receno by slo o tzv.transparentni bajt/barvu. Pri vykreslovani sprajtu by pak dvojice pixelu (bajt FF) zpusobila transparentnost. S presnosti na pixel je to slozitejsi, protoze se prenasi vzdy minimalne jeden bajt, ktery obsahuje cele dva pixely. Svisle transparentnost s presnosti na pixel, vodorovne s presnosti na 2 pixely. Takova uprava by nebyla slozita i pri scrollovani obrazu by to bylo perfektne vyuzitelne, protoze by se dalo nastavit, ktere useky obrazu se nemaji prekreslovat. Cili takove skutecne sprajty s maskou, akorat by vse ridil hardware.

_________________
http://velesoft.speccy.cz/


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

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
A ted zpet do reality. Aktualne mam navrh externi desky se sprajtovym dma. Doma jsem si prototyp rozbehal.

Adresy cile a zdroje se pro dma musi zadavat trochu jinak nez u klasickeho dma interface. Zde jsou zprehazene adresy, takze si adresu musime sami spocitat podle teto predlohy:

A15-A0: Byyyy000 0xxxx000

B = udava stav A15, tedy jestli lezi videoram v dolnich ci hornich 32kB adresoveho prostoru.
yyyy = souradnice Y (pozice sprajtu v obraze s krokem 16 pixelu). Obrazovka ma jen 12 sprajtu na vysku, takze hodnota 0-11. Dalsi cisla 12-15 jsou ukazuji do ramky, mimo zobrazitelnou zonu.
0 = nulove bity se doporucuje nechavat v nule pri nastavovani DMA, aby byly sprajty bez posunu.
xxxx = souradnice X (pozice sprajtu v obraze s krokem 16 pixelu). Obrazovka na sirku ma jen 16 sprajtu, coz odpovida hodnotam 0-15.

Napriklad kdyz videoram v rezimu 4 mame pripojenou v ramce od 32768 a chceme nastavit sprajt vykreslit do leveho horniho rohu, je adresa cile pro DMA rovna hodnote 32768. Kazdy dalsi sprajt smerem doprava ma o 128 bajtu vyssi adresu, cili pozice X vynasobena 128. Posun o sprajt dolu znamena zvetsit adresu cile o 2kB, cili souradnici Y vynasobit 2048. Pokud je videoram od 32768, musi byt B=1, pokud je videoram od odresy 0, pak musi byt B=0. A to je asi tak cele.

_________________
http://velesoft.speccy.cz/


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

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Velesofte spatna zprava. Zatim nevim zda mam neco spatne zapajene na desce ale zjistil jsem ze kdyz se provadi dma prenos tak nemuzu udelat reset. Proste neco to udela ale rozhodne se to nedostane do vychoziho stavu a zasekne se a pomuze az vypnuti. Kdyz ale zastavim rolovani obrazovky klavesnici a program se pta na novou hodnotu rolovani tak muzu udelat reset. Vzdy se to chova stejne.


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

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
suksoft píše:
Velesofte spatna zprava. Zatim nevim zda mam neco spatne zapajene na desce ale zjistil jsem ze kdyz se provadi dma prenos tak nemuzu udelat reset. Proste neco to udela ale rozhodne se to nedostane do vychoziho stavu a zasekne se a pomuze az vypnuti. Kdyz ale zastavim rolovani obrazovky klavesnici a program se pta na novou hodnotu rolovani tak muzu udelat reset. Vzdy se to chova stejne.


Neco je spatne. Nejspis GAL negeneruje novy signal M1 urceny jen pro DMA. A to muze mit dva duvody. Bud je neco blbe s GALem, nebo ma CPU odpaleny signal M1. Mas DISINT jumper zapojeny vubec ? Ten by mel v zapojenem stavu generovat M1 pri resetu CPU, coz zresetuje DMA cip. Pri odpojenem DISINT jumperu reset nezresetuje DMA nikdy.

Ta nemoznost resetovat pri DMA prenosu se projevi vsude tam, kde se pouzije NMOS Z80DMA. Ne ze by to neslo resetovat, ale spis se pri resetu neco podela a DMA zustane nestabilni. Pritom odpory na ridicich signalech mame, takze i pri resetu a odpojeni CPU od sbernice by nemel data-gear zaznamenat nestabilitu techto signalu. Ze by v okamziku resetu procesor prestal pracovat s BUSACK/BUSRQ a s uvolnenim resetu zblbnul ? Vlastne by mozna na chvilku mohlo dojit ke kolizi na ridicich signalech,adresach i datech. Zalezi jak rychle je Z80 CPU po uvoleneni resetu schopna se odpojit od sbernice, pokud DMA stale zada o prevzeti sbernice.

_________________
http://velesoft.speccy.cz/


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

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Nemam tam zadny jumper. Takze teda ho dam na DISINT? Proc jsi ten signal pojmenoval takto? Myslel jsem si ze je to nejaky "disable interupt" a ted koukam na funkci v Abelu a uz je mi jasnejsi co to dela. Urcite to musime ale zmenit. Neni spravne ze DMA takto nikdy nevidi M1 signal a tak nemuze ani videt konec nejake rutinky a detekci RETI.


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

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
suksoft píše:
Nemam tam zadny jumper. Takze teda ho dam na DISINT? Proc jsi ten signal pojmenoval takto? Myslel jsem si ze je to nejaky "disable interupt" a ted koukam na funkci v Abelu a uz je mi jasnejsi co to dela. Urcite to musime ale zmenit. Neni spravne ze DMA takto nikdy nevidi M1 signal a tak nemuze ani videt konec nejake rutinky a detekci RETI.


Ano, DISINT zneviditelni M1 signal pro DMA. Duvod byl take ten, ze hromada procesoru Z80 trpi nefunkcnosti M1 signalu. Pak je lepsi M1 ignorovat a GAL ho pak ani nepotrebuje pri dekodovani portu.

Jo, zapoj jumper na DISINT.

_________________
http://velesoft.speccy.cz/


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

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Tak jsem vyzkousel ten jumper a s nim to funguje. Mozna bych to prejmenoval na DISM1 nebo ENAM1, protoze toto to vlastne dela. Muj nazor je ze kdyz ma nekdo vadny procesor tak at si ho vymeni. Specialne u teto karty ma patici.


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

Registrován: 29.06.2013, 16:52
Příspěvky: 1612
Has thanked: 31 times
Been thanked: 357 times
suksoft píše:
Tak jsem vyzkousel ten jumper a s nim to funguje. Mozna bych to prejmenoval na DISM1 nebo ENAM1, protoze toto to vlastne dela. Muj nazor je ze kdyz ma nekdo vadny procesor tak at si ho vymeni. Specialne u teto karty ma patici.


Jumper tam byl od zacatku na testovani, ted vime, ze neni treba, staci ho nahradit odporem ci dratovou propojkou. Pripadne zmenit obsah GALu tak, aby M1 vzdy zpracovaval a DISINT jumper tam muze mit nejakou jinou funkci, napriklad neco pro SHARPa, blokovani adres, atd...

A jumper ENABLE_DMA_INT muzeme u SAMa nechat take zapojeny (nezkousel jsem to jeste :-) ). DMA by tak mohlo generovat preruseni na konci dma prenosu, coz se da softwarove nastavit ci potlacit. A navic DMA umi generovat vlastni vektor preruseni cimz lze detekovat, ze preruseni generuje prave DMA. Vlastne s novym vektorem si procesor pri preruseni skoci automaticky na rutinu pracujici s dma.

_________________
http://velesoft.speccy.cz/


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

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
To DISINT bych doporucil vyradit a nechat to nevyuzite. Ale desku bych kvuli tomu nemenil.

Souhlasim udelat DMAM1 = M1 * RESET. Velesofte udelas novy JED soubor?

Jinak urcite bude pekne vyuzivat toho ENABLE_DMA_INT. S tim bude urcite zabava. Jeste poradne precist ten 140 strankovy navod.

Jen radeji jeste jednou upozornuji ze na Sharpovi nikdy nezapojujte jumper do ENABLE_DMA_INT, jinak pujde do kolize ten 74LS08 na pozici 5D.


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 Předchozí  1 ... 7, 8, 9, 10, 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