OldComp.cz

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


Právě je 28.03.2024, 22:45

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 71 ]  Přejít na stránku 1, 2, 3, 4, 5  Další
Autor Zpráva
 Předmět příspěvku: IQ151 a CF karta
PříspěvekNapsal: 16.10.2020, 22:38 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 958
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
Snažím se k IQčku připojit CF karu. Intefejs vychází za zapojení Granta Searla, které úspěšně používám u Stone64kB pro chod CP/M. Ke generování /CS signálu používám GAL16V8, ostatní signály jsou použity přímo ze sběrnice IQčka. Interfejs funguje, ale až po "zahřátí" počítače (cca 5 minut). Předpokládám, že tam je někde hazardní stav, který je teplotně závislý - součástky během provozu trochu mění své parametry a problém je na světě.

Vlastní čtení probíhá v jednoduché smyčce:
Kód:
Loop:  IN A,(CF_DATA)
       LD (HL),A
       INC HL
       DEC B
       JP NZ,Loop

Když to nefunguje, v přečtených datech jsou přeskočeny některé čtené byty:
Kód:
očekávaná data: 00 01 02 03 04 05 06 07
načtená data:   00 02 03 04 06 08 09 0B

Když to funguje, není žádný problém - upravil jsem si MONITOR přepsáním služeb přistupujících k "disketě" a po spolupráci s l00kem rozchodil původní obsah disket s MIKROSem - systém se spustí příkazy fungují. Zkoušel jsem PBASIC (jednoduchý program s výstupem na monitor), M80 a L80 (kompilace DUMP.MAC),... , vše e OK. Po resetu to frčí taky. Jen když je IQčko "studené", tak to zlobí.

Nemáte někdo, prosím "zaručené" schéma nebo způsob, jak CF kartu připojit k systému s 8080A? S GALem jsem zkoušel různé věci pro /CS, /IOR a /IOW, ale "stále kvoká". GAL je z rychlostní kategorie 25ns, zkoušel jsem i 15ns (Atmel), ale bylo to horší. Zkoušel jsem dekodér postavit i z TTL obvodů (7400 a 7430, s oddělovačem i bez (pro data) 74245, normální TTL, S, LS), bez úspěchu.

Schémata a rovnice do GALu můžu zveřejnit. Není to nic světoborného.

Díky

Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 08:29 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 958
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
Ještě jsem zapoměl zmínit, že s VIDEO32 to funguje podle popisu výše, s VIDEO64 se mi MIKROS spustit nepodařilo ani po "zahřátí".

Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 08:48 
Offline
Profík

Registrován: 26.11.2018, 16:59
Příspěvky: 580
Bydliště: Holešov
Has thanked: 13 times
Been thanked: 90 times
Já teda moc přes HW nejsem, ale přijde mi to , že IQčko nestíhá číst data. Nevidím tam nikde žádný handshaking takže pokud interface sype data nějakou rychlostí tak to IQčko nestihne přečíst. Jaký port si zvolil na čtení dat? V souvislosti s Video32/64 docházé v IQčku ke zpomalování paměti (podobně jako na Spectru), ale díky systému 8080 se toto zpomalování týká i portů (teď nevím jestli všech EXh nebo jen E8h-EFh).

A ještě druhá možnost, na starších typech desek se dělal refresh pamětí ne počástech ale jen 1x za 20ms, toto dělalo problém i originálním řadičům floppy disku a psalo se o "předrátování" těchto refresh obvodů.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 09:18 
Offline
Kecálek

Registrován: 07.05.2014, 12:10
Příspěvky: 197
Bydliště: Jbc
Has thanked: 0 time
Been thanked: 39 times
Muze tam byt chyba v navrhu, chyba v pripojeni, nejaky hazard stavu, ktery se ohratim urcyhli/zpomali mimo cteci okno, muze tam nejspis byt i mnoho dalsich veci...
Bez nacrtku zapojeni a rovnic pro GAL se bude tezko vymyslet, co by asi mohlo byt problem...
Nejlepsi by bylo podivat se nejdriv na signaly logickym analyzatorem nebo vicekanalovym osciloskopem.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 09:22 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 783
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Po zkušenostech se SAPI-1 a ZRMD-1 v jednotce JPN-1 musím dat za pravdu teorii, že v TTL spoj delší než 30cm je dlouhé vedeni a je potřeba ho přizpůsobit. Ze ZRMD-1 se data vyčítají/zapisují úplně sejným způsobem a chyby v datech se projevuji tím, že se při ctění sektoru objevují falešné byty a vlastní data se posunou o ony byt.

Co jsem jen tak okrajově přičichl k teorii jak se má dělat správně TTL logika tak PP-01 nesmí fungovat a zbytek 8 bitu nemůže/nesmí fungovat a to včetně IQ-151. Jak v ZRMD-1 tak i ta CF karta bude cca o řád rychlejší než je potřeba pro 8080 na 2 MHz takže přeslechy na vedení, způsobuji falešné signály na co ty moderní a rychlé paměti reagují, takže u SAPI-1 to jde mezi jednotkami vyřešit přizpůsobeným vedením. Na IQ-151 se bude muset udělat nějaký obvod, co propusti řidiči signály až potom co se ustáli stav na sběrnici. (ono u takto řešeného čtení /zápisu by to blblo i s paměťmi s přístupovou dobou tak akorát aneb ty čítače jsou daleko rychlejší než paměti).

l00k píše:
Já teda moc přes HW nejsem, ale přijde mi to , že IQčko nestíhá číst data. Nevidím tam nikde žádný handshaking takže pokud interface sype data nějakou rychlostí tak to IQčko nestihne přečíst.


IQ-151 stačí číst, aneb další data jsou připravená až potom co se přečtou data (aneb potom co se provede CS s IOR nebo IOW na správné adrese či po správné sekvenci příkazů si dané zařízení samo provede inkrementaci adresy … Viz třeba zmiňovaná ZRMD-1 či její předobraz RMD-1, nebo podobně se zadávají parametry do 8272 ….

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 10:39 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 958
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
Schémata a PLD soubory v příloze.

Pro přístup k CF kartě jsou zvoleny porty A0..A7 (/CS0), nebo A8..AF (/CS1) nebo B0..B8 (/CS3). Je možné, že ve schématu oproti GAL rovnicím je nějaký rozdíl, protože jsem zpětně překresloval schéma a přepisoval rovnice abych mohl ukázat prošlé varianty zapojení, ale to na funkci rostlináře v tomto okamžiku nemá vliv - je to pro názornost a všechny varianty zapojení a PLD fungovaly stejně. Měl jsem v GALu nastavený rozsah portů i na 10..17, ale se stejným výsledkem.

Popis:
CF_card.png - redukce CF karty pro připojení 8-mi bitovým rozhraním nadřízenému systému - funguje se Stone64kB
GAL_1 - schéma a PLD 1. verze interfejsu - generuje jen signály /CSx - na desce CF_card se jumperem vybírá jen jeden z nich
GAL_2 - zde GAL generuje /CSx a zároveň jsou přes něj "protaženy" i signály /IOR a /IOW, které jsou ještě strobovány signály /CSx
TTL - verze s TTL obvody. Zkoušeny normální TTL, ALS i S, ale bez zjevné změny v chování, jumperem na desce se volí rozsah portů A0-A7 nebo A8..AF. Ten 74LS245 byl zapojen i nahrazen drátovými propojkami - beze změny

Podle datesheetu od CF karty by měly být signály /IOR a /IOW oproti /CSx trochu opožděny - proto jsou v GAL_2 tyto signály přes obvod protaženy a strobovány.

Ještě mě napadlo použít datovou sběrnici pro nastavení a latch signálů A0..A3 (normálně vedou přímo na CF kartu), /IOR a /IOW nastavily by se zápisem na nějaký port a pak vlastní čtení/zápis by se spouštělo jen signálem /CS. Takže sekvence by byla:
Kód:
Loop: LD A,signály A0..A3 + /IOR=0 + /IOW=1
      OUT (LATCH),A
      IN A,(CF_DATA)
      LD A,signály A0..A3 + /IOR=1 + /IOW=1
      OUT (LATCH),A
      INC HL
      DEC B
      JP NZ,Loop

Ale asi je to blbost.

Díky

Petr


Přílohy:
IQ151_CF.zip [188.92 KiB]
314 krát
Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 11:28 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 783
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Udělej test čtení známého vzorku dat z CF karty na konfiguraci, kdy ti to za studena blbne. Pokut se během přenosu bude po určité části sektoru načte špatný byte a pak budou zase správné ale posunuté tak to je způsobeno přeslechy na sběrnici aneb generovaní falešných signálů. U SAPI-1 mám všechny čistě portové desky v jednotce JPN-1. Jako test používám program pro zálohu ZRMD-1 aneb se celí ZRMD-1 vykopíruje přes DSM-1 ve formátu INTELHEX. ZRMD-1 má kapacitu 4MB INTELHEX má cca 10MB kdy INTELHEX je vždy v pořádku ale v datech se objevuji výše popsané chyby (chyba končí vždy po nastavení nového sektoru). Vzhledem k tomu že ta CF Karta funguje na stejném principu jak ZRMD-1 tak předpokládám ‚že tam bude ten stejný problém aneb přeslechy na sběrnici.

Jako tesk bych zkusil upravit tu GAL variantu, co strobuje ty IOR a IOW ale tak aby se strobovaly s daleko větším zpožděním. Klidně i o několik desítek nS až stovek nS tj. až se ustáli stav na sběrnici. Data 8080 čte až na konci stavu IOR takže nejpozději musí být data na sběrnici 450ns po příchodu IOR. V GALu jde sestavit čítač, jako zdroj hodin bych použil FI2TTL, takže po příhodu CS by se nahodil čítač až potom co by dočítal tak by se strobovali IOR a IOW ….

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 11:42 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 958
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
To jsem právě zkoušel - na kartu jsem uložil posloupnost 00 až 7F a načetl jí do paměti, kde pak některé byty chyběly - nebyly nahrazeny nějakou hodnotou, ale chyběly a celá přečtená posloupnost byla kratší. Vypadalo to, jako by buď neproběhlo INC HL (nebyl posun na další adresu - což je blbost) nebo náhodně vznikl navíc signál pro čtení dat - karta data vydala, ale nebyla instrukce, která by je četla. Ale /CS, /IOR i /IOW byly protlačeny přes GAL, tak tam snad nějaké "echo" být nemá.

S tím čítačem je to dobrý nápad (na něco podobného mě naváděl rEVERz). Tak jsu hledat, jak se gá v GALu udělat čítač... Nebo má nějaká dobrá duše rovnici pro čítač?

Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 12:35 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 958
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
Něco v tomto duchu? Přeložit mi to jde, ale simulátor hází nějakou chybu (používám WinCupl a WinSim):
Kód:
/* *************** INPUT PINS *********************/
pin 1 = F2TTL ;
pin [2..6] = [a3..a7] ;
pin 7 = !ior ;
pin 8 = !iow ;

/* *************** OUTPUT PINS *********************/
pin 12     = !cs2 ;
pin 13     = !cs0 ;
pin 14     = !cs1 ;
pin 15     = !iowr ;
pin 16     = !iord ;
pin 17     = Q0 ;
pin 18     = Q1 ;
pin 19     = Q2 ;

/** Logic Equations **/

cs0   =  !a7 & !a6 & a5 & !a4 & !a3 & ( ior # iow ) ;

cs1   =  !a7 & !a6 & a5 & !a4 &  a3 & ( ior # iow ) ;

cs2   =  !a7 & !a6 & a5 &  a4 & !a3 & ( ior # iow ) ;

iowr = iow & Q2 ;

iord = ior & Q2 ;

Q2.d = ( ior # iow ) & ((!Q2 & Q1 & Q0) # (Q2 & !(Q1 & Q0)));
Q1.d = ( ior # iow ) & (!Q1 & Q0 # Q1 & !Q0);
Q0.d = ( ior # iow ) & !Q0;


Co se týče GALů, jsem slabý, podprůměrný samouk :D . Tak prosím o schovívavost.
Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 12:59 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 783
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Program je správně celá logika okolo bude taky správné, ale problém je s dynamikou aneb s přeslechy na sběrnici. To že se to chová trochu jinak než na SAPI-1 s ZRMD-1 je možné ale příčina bude stejná. To že chybí některé byty a celková sekvence je o ně kratší znamená, že došlo k falešným signálům (přeslechy na sběrnici). Toto doladit ke spolehlivé funkci bude docela divoké, to už by se na to chtělo podívat hodně rychlým logickým analyzátorem nebo více kanálovým rychlým osciloskopem, co se tam vlastně děje. Teď mne ještě napadlo, zda ta CF karta náhodou není 5V tolerantní aneb co poctiva TTL logika ještě považuje za log 0, bude u 5V tolerantní logiky už log 1. Takže bych ještě zkusil celou tu CF kartu strčit za oddělovače (jak na data, adresy tak i řídicí signály aneb nějaký den sběrnicový budič).

Pro zkoušku můžeš dát ten čítač externě.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 13:28 
Online
Profík

Registrován: 06.03.2018, 16:00
Příspěvky: 958
Bydliště: Valtínov, Kunžak
Has thanked: 39 times
Been thanked: 471 times
Karty používám 2 typy: PRETEC 64MB (označení CFH064) a nějaká SMART 128MB (označení AM9FLACF128M5), ale nic jsem k nim nedohledal.

Oddělit by stačilo řídící signály, ale ty v jedné verzi byly protlačeny (mimo A0..A2) přes GAL (což je CMOS). Data se načítají správně (když se zrovna načítají). Zápis do karty ale asi probíhá správně, protože se na začátku komunikace musí zinicializovat a to se povede pokaždé.

U použití toho čítače předpokládám, že sestupná hrana /IOx (nebo /CSx) by ho měla vynulovat, čítač napočítá pulsy FI2TTL (8, 16 nebo 32) a pak pomocí AND (nebo NAND) z /IOx a výstupu čítače vyrobí vlastní puls pro čtení/zápis na kartě.

Petr


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 14:11 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 783
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
Osobně bych to s tím čítačem udělal takto, dekodér adresy bude připojen na reset čítače. Hodiny pro čítač budou přes hradlo. Takže jak se objeví ta správná adresa začne čítač čítat, Po dočítaní na zvolenou hodnotu se zablokuje zdroj hodin a současně se povolí přes hradla signály IOR a IOW. Tím se měl vyřešit problém zákmitů na sběrnici, opozdí se náběh IOR a IOW ale jejich konec bude zachován. Dále dekodér adres zabere i na adresy pro MR a MW pro to hrdlování IOR a IOW. Po zakončení adresy se resetuje čítač čímž si povolí hodiny a zablokuje IOR a IOW. Jako CS pro CF kartu půjde použit bud ten reset pro čítač nebo se vezme z nějakého stavu čítače.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 15:49 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 918
Has thanked: 43 times
Been thanked: 411 times
Já bych asi vinu nehledal v hardware. Pokud tam tedy není zjevná chyba v zapojení, rozdílné napěťové úrovně (TTL versus 3V3 apod.), malá strmost a zákmity, chybějící PULL-UP, atd. Kdybych měl posloužit analogií s vývojem připojení SD karty k i8085, tak stejně jako tam sedí na straně karty nějaký mikroprocesor. To není hardware. On sedí, poslouchá a na základě toho spouští své komunikační procesy. A někdy na nesmyslnou sekvenci na vstupu odpoví nesmyslnou sekvencí na výstupu. Tou nesmyslnou sekvencí na vstupu myslím nedodržení časování, polarity, atd. a ne chybný string dat jako takový. S tím jsem bojoval nejčastěji. Nejpravděpodobnější zdroj chyb je VŽDY mezi klávesnicí a židlí. Takže 100x zkontrolovat přesný časový diagram komunikace a po stoprvé na to určitě přijdeš. Ale určitě bych nevěšel na signály pomocné hardware, naopak bych zjednodušoval připojení do té míry, že se sám nakonec přesvědčíš, že tam chyba není a že je v software.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 16:05 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 918
Has thanked: 43 times
Been thanked: 411 times
Když se dívám na ta zapojení GAL_1 a GAL_2, tak je tam nějak divně zapojen CLK vstup toho 8-bitového registru nebo co to je. Naznačen je vstup ovládaný hranou a je uzemněn. To jet nemůže. A na schématu TTL.png bych ověřil, jestli karta nevyžaduje garantovaný předstih signálu /CS před /IOR, /IOW a vlastními daty. Já jsem SD kartu taky připojoval až přes nějaké porty, kde se ty sekvence snáze uhlídají, či spíše přesněji, dají se přesně nastavit.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: IQ151 a CF karta
PříspěvekNapsal: 17.10.2020, 16:12 
Offline
Profík

Registrován: 28.07.2018, 14:37
Příspěvky: 918
Has thanked: 43 times
Been thanked: 411 times
A do třetice. V tom zapojení TTL.png zkus vynechat na vstupu NAND8 to hradlo, které tam zavádí signály /IOR a /IOW. Adresa se u i8080 generuje přirozeně o dost dříve než ty signály /IOR a /IOW. Tím dosáhneš jednak požadovaného předstihu /CS před /IOR a /IOW, ušetříš nejaká ta hradla a karta sama ví, proč má vstup /CS oddělený od vstupů /RD a /WR...


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ů: 71 ]  Přejít na stránku 1, 2, 3, 4, 5  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 8 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