OldComp.cz

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


Právě je 28.03.2024, 14:05

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 49 ]  Přejít na stránku Předchozí  1, 2, 3, 4  Další
Autor Zpráva
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 23.04.2022, 11:23 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Zxcygnus jako jediny jsem si stahnul ten Abel soubor :-( . Procetl jsem klicove zapisy ohledne preruseni. Rozhodne se to musi cele predelat.

Dal jsem to do jineho poradi aby to bylo logicky pod sebou.

INTE.AR = INTACK;

INTI.CLK = (IRQ1 & INTE) # (IRQ2 & INTE);
INTI := INTE;
INTI.AR = INTACK # !INTE;

INT.OE = INTI & INTE;
INT = 0;

VEKTOR = !IORQ & !M1;

INTACK = (VEKTOR & INTI) # (INTI & (M1CNT == 3)) # !RESET;

M1CNT := M1CNT + 1;
M1CNT.CLK = INTI & !M1;
M1CNT.AR = !INTI;

----

INTE.AR = INTACK; - toto resetuje rs obvod INTE - takze okamzite kdyz prijde "VEKTOR = !IORQ & !M1;" tak misto toho aby se na sbernici dal vektor, tak se vse nuluje.
V dobe kdy CPU prebira na sbernici vektor, tak uz davno neni vystaven a nastesti ma Spectrum ty odpory na VCC, takze dostane to 255 ale pri jinem vektoru to samozrejme nebude fungovat.

----

Cast:
M1CNT := M1CNT + 1;
M1CNT.CLK = INTI & !M1;
M1CNT.AR = !INTI;

je dobre myslena pro obsluhu instrukci preruseni co maji try bajty ale toto vubec nebude fungovat, protoze okamzite pri VEKTOR se vynuluje INTE, to vynuluje INTI a je ukoncena obsluha
preruseni.

----

Mozna by nebylo spatne dat dovnitr CPLD signal CLK ze sbernice pocitac a INTI nastavovat pri dobezne hrane CLK. Take se musi zmenit INTACK, musi se rozlisovat misto kde zacina obsluha preruseni a kde konci.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 26.04.2022, 14:15 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
zxcygnus píše:
Ale díky Jiiirovi mám možnost experimentovat i s dalšími UARTy, konkrétně Exar ST16C650CJ a ST16C650ACJ a s Phillips SC16C650BIA44 v PLCC44 pouzdře. Poslední Phillips fungoval parádně a správně. U prvních dvou jsem měl potíže s nastavením HW řízení toku dat, ale oscilátor myslím běžel správně - ověřím. Po zkušenosti s nastavováním režimu infraportu je možné, že jsem nastavoval registry v nesprávném pořadí (ale to by se nejspíš týkalo více starých programů).

Měl jsem možnost vyzkoušet i 16C550 a ta se použít nedá. Serializuje, vysílá, přijímá, ale neřídí tok dat. V 16C550 chybí důležitý registr EFR a i nějaké další.


Koukal jsem na tvuj program. Take jsem koukal na SC16C650B a ST16C650A. Neni to 100% stejne. Maly rozdil je v "Assert RTS or send Xon" u SC16C650B ma nastaveno 23 a druhy typ ma 24. To by ale nemelo delat velke problemy.

Take jsou koukal zda ty 550 nemaji auto-rts. Treba tento tl16c550c to ma ale je to jinak nastavitelne. Ma samozrejme mensi buffer ale take je lepe sehnatelny a je levnejsi.

Take jsem koukal 16C850 - ten ma buffer 128 bytes. Ten se ma prodavat jeste pristi rok, neni to uplne vybehove. Softwarove je to podobne 650. Jeden z rezimu je kompatibilni s 650. To by melo vyhodu ze pri rychlosti 57600 by se mohlo vse nacist do vnitrniho bufferu a pak pri pravidelnem preruseni od ULA by se to vycetlo. To vyuziti preruseni od UART ma smysl stejne jen pri sporadickem pomalem prenosu dat.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 21.05.2022, 09:30 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
ZXCygnus na https://cygnus.speccy.cz/popis_siftrd.php pises pises "Právě takovou situaci by mělo řešit vyprazňování bufferů před samotným přenosem..." a pak se tam prikaz "stty -F /dev/ttyS0 38400 cs8 clocal cread -cstopb -parenb -parodd crtscts raw". Jak myslis to vypraznovani vstupniho bufferu?

Docela by mne zajimalo jak casto na zacatku pouzivani rs232 je neco navic ve vstupnim bufferu?

Jinak jsem se pokousel sehnat ten SC16C650BIB48. Pokousel jsem se to nekolikrat nakoupit na Ebay ale neuspesne. Jeden funkcni prodejce to mel za neskutecne premrstenou cenu 33USD za kus. Pak jsem to videl v USA ale ten zase to nechce prodavat do EU. Nakonec se mi dnes podarilo par kusu koupit za rozumnou cenu. Tak za mesic to asi prijde. Ale je to hodne vybehovy typ :-) .


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 21.05.2022, 11:29 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 21.01.2021, 11:05
Příspěvky: 1581
Bydliště: Pardubice
Has thanked: 25 times
Been thanked: 238 times
Sice jsem trochu mimo, ale pokud se musí něco vyprázdňovat, tak je už od základu špatně navržený protokol komunikace. To stačí připojit RS232 kabel a často se tam udělá nějaký bajt co tam visí do vyčtení. Bez hlavičky a kontrolního součtu bych nic nenavrhoval. Osobně bych tam dal byte jako adresu zařízení číslování bloků a 16bit identifikaci že jdou správná data. Navíc bych to navrhl jako RS485 a počítal se síťovým propojením více počítačů na sběrnici. Mohli bychom začít počítače propojovat.

_________________
Praxe znamená, že vše funguje, ale nevíme proč. Teorie znamená, že vše víme, ale nic nefunguje.
Někdy je teorie spojena s praxí. Znamená to, že nic nefunguje a nikdo neví proč ...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 21.05.2022, 14:16 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2331
Has thanked: 303 times
Been thanked: 637 times
suksoft píše:
... Jak myslis to vypraznovani vstupniho bufferu?
Před spuštením přenosu prostě čtu data tak dlouho, dokud v bufferu něco je a zahazuju je.

To obvykle trvá zlomek sekundy. Teprve pak by mělo být spuštěno vysílání. Reálně to vypadá tak, že na ZXS odklepnu receive, na PC odentruju příkaz cat s parametry a už to jede.

MilasPce píše:
Sice jsem trochu mimo, ale pokud se musí něco vyprázdňovat, tak je už od základu špatně navržený protokol komunikace.
Pokud vysílám syrová data pomocí cat z Linuxu, tak tam žádný komunikační protokol není. Jen řízení toku pomocí CTS a RTS. Proto je potřeba přijímač připravit před zahájením přenosu. Proto se vstupní buffer vždy vyprázdní při zahájení příjmu. Teprve pak je možné spustit vysílání dat.

suksoft píše:
Docela by mne zajimalo jak casto na zacatku pouzivani rs232 je neco navic ve vstupnim bufferu?
Data v bufferu obvykle zůstanou jen když přenos ručně přeruším, nebo omylem předčasně spustím vysílání dat aniž by byl přijímač připraven přijímat. Nebo, když odpojím kabel během přenosu, ale to se samo nestane.

Trochu jiná situace je u sercp, tam velmi základní protokol je. Resp. vysílač se nedozví úspěšnost přenosu, ale přijímač data ověřuje a pozná, když přenos selže. Ale tam zase netřeba řešit buffery, protože skrz AY žádný není. Sercp pro SIF zatím neexistuje, i když technicky tomu nic nebrání.

MilasPce píše:
Osobně bych tam dal byte jako adresu zařízení číslování bloků a 16bit identifikaci že jdou správná data. Navíc bych to navrhl jako RS485 a počítal se síťovým propojením více počítačů na sběrnici. Mohli bychom začít počítače propojovat.
Mým cílem bylo udělat to tak, abych na PC nemusel mít žádný program navíc, který by nebyl základní součástí operačního systému (Linuxu). O pár let později přišel Pavel Vymetálek s programem sercp a sériovým přenosem přes AY. Ani to není dokonalé, protože se CRC přenášejí před daty a když jsou data velká (třeba 640kB disketa), tak je nutné na ZXS nejprve spočítat CRC, odeslat CRC všech bloků v hlavičce a teprve pak načítat data znovu, protože 640kB se nevejde do RAM. U malých TAP z DivIDE to většinou není velký problém. U image reálné diskety je to nepoužitelné.

Takže pokud bych chtěl udělat vše dokonale a neprůstřelně s protokolem, který se vzpamatuje z nečekaného odpojení kabelu, tak bych to musel kompletně navrhnout znovu, naprogramovat s tím komunikující program pro PC dostatečně multiplatformní... to se mi fakt dělat nechtělo.

Což samozřejmě nikomu jinému nebrání, aby to udělal.

suksoft píše:
Jinak jsem se pokousel sehnat ten SC16C650BIB48. Pokousel jsem se to nekolikrat nakoupit na Ebay ale neuspesne. Jeden funkcni prodejce to mel za neskutecne premrstenou cenu 33USD za kus. Pak jsem to videl v USA ale ten zase to nechce prodavat do EU. Nakonec se mi dnes podarilo par kusu koupit za rozumnou cenu. Tak za mesic to asi prijde. Ale je to hodne vybehovy typ :-) .
Co se náhrady 16C650 týče - našel jsem na Gihubu projekt pro nějaké malé CPLD. Zdá se, že by do budoucna mohlo být snazší a levnější oba UARTy nacpat do hradlového pole.

Mezitím jsem si připravil zjednodušený zdroják, abych měl nějaký publikovatelný příklad, jak SIF ovládat bez zbytečného balastu. Jen jsem se zatím nedohrabal k důkladnému ověření na všech čipech, co mám doma (tzn. i Exar 16C650). Bylo potřeba kromě práce opravit další ZXS a nějak se to svezlo s tím, že jsem při tom navrhnul 4 plošné spoje na náhradní RAM a IC27...

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 21.05.2022, 23:16 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Ja pro zacatek nechci moc riskovat nekompatibilitu a proto jsem cekal az sezenu ten overeny SC16C650 jak jsi psal. Kombinace SC16C650 a XC9572XL mi pripada velmi dobra. Koukal jsem v cem rad delas a tak jsem nastudoval STTY pro Debian. Take jsem koukal na zdrojaky na strane ZX a na jakych OS se to da prekladat. Vse v pohode, je to dostatecne univerzalni. Mel bych byt schopen to prelozit.

Na https://cygnus.speccy.cz/popis_zx-spect ... _rs232.php se ptas " Je to tak normální u Britských telefonních kabelů". Odpoved je na https://en.wikipedia.org/wiki/British_telephone_socket . Ale nam to stejne nepomuze. Trivialne se nedaji propojit dva ZX pocitace. Musi se upravit kabel. Je potreba jine krizeni.

Jinak osobne jsem pro pouzivani nazvu DTR (https://spectrumforeveryone.com/wp-cont ... Manual.pdf). Je to docela dulezite. V dobe kdy vznikalo ZX128, delal signal RTS uplne neco jineho. V te dobe podobnou funkci mel DTR a proto se to pouziva. Jinak ZX ma koncovku nastavenou jako DCE a tak se ocekava kabel zapojeny 1:1 k terminalu. Napr. Sharp MZ800 je v beznem nastaveni nastaven jako DTE a tak se propoji Tx-Tx, Rx-Rx, CTS-CTS, DTR-DTR a samozrejme GND. Na strane Sharpa je Z80 SIO a kdyz se chce navic vyuzit hardware flow (half hardware flow control) tak jeste se musi zajistit aby DCD bylo aktivni. Pocitace IBM PC ale vyuzivaji signaly jinak a tak je potreba DTR nahradit RTS, to ocekavaji ovladace pocitace.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 27.05.2022, 12:57 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Zxcygnus tak i posledni pokus o koupi nedopadl dobre. Prodejce je jak se ukazalo take jako ostatni z Šen-čenu. Druhy den stornoval objednavku, pry "technicke duvody". Rovnou to zdrazil o 400%.

Takze jsem se rozhodl to koupit u Utsource. Ale pozor, koupil jsem SC16C650BIN40 a to je DIL pouzdro. Ty jsou solidni, rovnou pri placeni cervene napisi jake jsou ted v Cine problemy a reknou ze do 24 hodin pripadne budou informovat ze obchod se neda udelat. Sice doprava a procleni je "drazsi" ale na to ze jsem to objednal 22.5 vecer a ted mi to realne DHLko privezlo je docela pekna rychlost. Jinak Utsource to take posilal z Šen-čenu :-) .


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 27.12.2022, 11:40 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2331
Has thanked: 303 times
Been thanked: 637 times
Asi je čas téma maličko oživit - podařilo se mi stáhnout JED z CPLD z původního SIFu , přikládám zagzipovaný. Nová logika z ABL mi nefunguje, s tímto JED to dělá alespo něco (i když přepínání adresy jumperama bude asi špatně).

Opět tam bylo nutné přidat oproti původnímu návrhu něco mezi 500k až 1M mezi vývody krystalu - závisí na použitém UARTu. A chystám se zkoumat v čem se liší řízení toku dat, protože na tom se mi nyní přenos zasekává.


Přílohy:
readback-original_SIF-verze_1.jed.gz [6.72 KiB]
92 krát

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 29.12.2022, 12:54 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2331
Has thanked: 303 times
Been thanked: 637 times
Asi jsem přišel na jednu zásadní odlišnost mezi různými verzemi UARTů 16C650.

Z Mouseru jsem loni koupil Exar XP ST16C650A1Q, zatímco na původním SIFu byl NXP SC16C650B oba v QFP48 a jak to bývá, původní software nefungoval správně. UART od NXP je zjevně k nastavení benevolentnější, u Exaru je třeba důsledně povolovat EFR (zápisem 0xBF do registru LCR a pak nastavením bitu 4 v EFR, resp. zápisem 11010000b do EFR což povolí i auto CTS a auto RTS).

Další záludnost je v tom, že signál RTS je výchozí nastavený tak, jako že UART není připraven přijímat data (v log 1 před MAXem), trochu kontraintuitivně se to opraví zápisem 00000010b do registru MCR. Domníval jsem se, že ten bit umožňuje ruční ovládání signálu RTS, ale asi jsem něco nepochopil. Zápisem 1 do bitu 1 začne fungovat HW řízení toku dat.

Jen zbývá zodpovědět, jestli to tak bude fungovat se všemi UARTy... prozatím jsem zkusil jen 3 -> ty dva výše zmíněné a třetí je Exar XP ST16C650CJ v PLCC44 pouzdře. Krátký test s přenosem obrázku do ZXS náhodně pozastavovaný na straně ZXS se zdá ok.

Trochu špatné je, že asi bude potřeba upravit inicializaci SIFu ve všech existujících programech.

Testovací program přikládám.

Taky bude potřeba postupně otestovat i všechny další funkce, IR port, oba směry přenosu, řízení toku dat pomocí Xon/Xoff...


Přílohy:
asm receive screen.tar.gz [7 KiB]
93 krát

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 30.12.2022, 23:38 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Zxcygnus nasel jsem doporuceni pro nastaveni IrDA pro SC16C650. Poradi nastaveni registru mas ted stejne jako oni. Dal jsem to do prilohy.

Mozna by se dalo pouzit i http://cs.wellesley.edu/~cs249/Lectures ... s/serial.c a podivat se jak se nastavuji registry v Linuxu. Cast "PORT_16C950" by mohla vice napovedet.


Přílohy:
AN10219.zip [32.8 KiB]
91 krát
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 31.12.2022, 02:30 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2331
Has thanked: 303 times
Been thanked: 637 times
:) zrovna jsem opravil SIF Term, aby mi s infraportem fungoval, tzn. teď si to posílá data se starým PC tam i zpět. ALE! Je tam jedna záludnost, ty infraporty se v průběhu času vyvíjely a komunikace těch modernějších je odlišná, koukal jsem kdysi osciloskopem jak to bliká skrz fototranzistor. Tyhle naše staré UARTy -> tj. cca z období ISA onboard sériáků s podporou infraportu to dělaly jinak než ty pozdější USB. A nevím přesně kdy nastal ten zlom (mám v dílně ještě HP notebook s WXP a interním infraportem, tak někdy, až si ho přivezu...).

16C650 to dělá tak, že místo každé log 1 pošle krátký pulz trvající a asi 3/16 z doby trvání jednoho baudu -> tj. z 0xff se namísto 8xbaud trvající logické hodnoty stane 8 krátkých pulzů (plus start bit) a tohle kódování se shoduje s tím, jak to dělá onboard sériák s IR redukcí (Pentium 233MHz MMX v desce FIC PT-2007) - redukce je jen fototranzistor s IRLED připojený přímo k desce zabalený v krabičce s kablíkem skrz zadní panel.

Blbé je, že se to nechá rušit třeba i dálkovým ovladačem k TV - viz foto, takže to reálně moc použitelné není. Ale jako kuriozita je to pěkné.

SIF Term ještě budu trochu zkoušet, než zveřejním další verzi, ale mezitím můžu přihodit aspoň program v BASICu, který cyklicky vysílá krátký řetězec, ověřoval jsem si tím přenos pomocí DOSového Term95, co je součástí Norton Commanderu. Infraport je mimochodem nutné nastavit v BIOSu, Term95 to neumí, tam se dá nastavit jen vše ostatní.


Přílohy:
DSC08145 ruseni prenosu dalkovym ovladacem.jpg
DSC08145 ruseni prenosu dalkovym ovladacem.jpg [ 406.47 KiB | Zobrazeno 3279 krát ]
blikani infraportem zmenseno.jpg
blikani infraportem zmenseno.jpg [ 341.52 KiB | Zobrazeno 3279 krát ]
basic transmit channel 2 infra.tar.bz2 [177.75 KiB]
90 krát

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 31.12.2022, 10:40 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Napadlo mne zda to jine kodovani na USB jak pises neni "Beginning with Version 1.1 of the IrDA physical layer specification, a 4 Mbps data rate is supported.". Prikladam podle mne zajimavy dokument ohledne IrDA.


Přílohy:
306539.zip [353.28 KiB]
89 krát
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 31.12.2022, 14:14 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2331
Has thanked: 303 times
Been thanked: 637 times
suksoft píše:
Napadlo mne zda to jine kodovani na USB jak pises neni "Beginning with Version 1.1 of the IrDA physical layer specification...
Možné to je.

USB infraport mám jenom jeden z roku 2000, jmenuje se to Tekram IrMate 410U (https://egalerie.net/index.php/ostatni/Infraport foto vč. vnitřností) a dosud jsem to zkoušel jen v Linuxu. Tentokrát jsem infraport zkusil nainstalovat i do W98 z originálního CD, nastavil jsem mu detekci IR zařízení, takže každé 3s vyšle nějaká data a zároveň jsem mu omezil rychlost na 9600bps a zkusil jsem přijímat data na ZXS... a ono to něco chytá, nejenom binární chaos, ale v tom chaosu se objevuje identifikátor mého PC zadaný v konfiguraci infraportu.

Z toho soudím, že by ten USB infraport mohl být přepínatelný i na starý režim přenosu 3/16. A možná jen nevím, jak to nastavit v Linuxu, jde-li to. Na druhou stranu, sice to emuluje virtuální COM a LPT, ale neříká jaký (COM 4? LPT 3?) a nedá se na něj připojit pomocí DOSového Term95 ani pomocí wokenního RealTerm. V Linuxu se to tvářilo jako standardní /dev/ttyUSBx ačkoli možnosti nastavení pomocí stty byly omezené proti drátovým sériákům.

Analyzovat wokenní protokol a přesvědčit W98, aby ZX Spectrum detekovaly je možná zajímavá výzva, ale to rád přenechám někomu jinému :) Prozatím mi stačí, že to na SIFu bliká správnou rychlostí a že SIF přijímá data. Časem se k tomu možná vrátím jestli budu mít náladu si znovu hrát s infraportem na tiskárně Deskjet 340 (zatím se mi tiskárnu nepovedlo přimět k jakékoli reakci, ani nevím jestli má infraport funkční).

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 12.01.2023, 08:09 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
Koukal jsem do asm receive screen.tar.gz

SIF_INIT ld a,0 ; select UART 16C650 on SIF - 0 = first, 2 = second
out (SIF_PORT+28),a

a take do Abel zdrojaku

// with three config jumpers it would be much simpler, but i wanted to preserve CPLD pinout from SIFv1
CS = ((J1 & J2 & A7 & !A6 & A5) # (!J1 & !J2 & !A7 & A6 & A5) # (J1 & !J2 & A7 & A6 & !A5) # (!J1 & J2 & A7 & A6 & A5)) & A1 & A0;

// SIF select - for switching between UARTs
SIFCS = CS & !IORQ & (A2 & A3 & A4);

// UART select - for writing into UART registers
UARTCS = CS & !IORQ & !(A2 & A3 & A4);

CS1 = UARTCS & !UARTx; // CS pro uarty podle sifreg
CS2 = UARTCS & UARTx;

Toto reseni ale ma nevyhodu ze nejsou pristupne registry SPR a Xoff2. Ne ze by to bylo uplne spatne ale neda se vyuzit cip na 100% a vsechny rezimy.

---------

Ted pouzivas "uses 115200bps, two stop bits, no parity, HW data flow control". Myslim ze lepsi by byl jen jeden stop bit a pripadne zapnout paritu. Bylo by to rychlejsi a nebo by to hlasilo vice chyb pri prenosu kdyz by stream byl poskozen pri prenosu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Interface SIF - výroba repliky
PříspěvekNapsal: 14.01.2023, 10:12 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2723
Has thanked: 144 times
Been thanked: 422 times
zxcygnus koukal jsem na "asm receive screen.tar"

Proc delas to xor a pred ctenim?

SIF_READ_FIFO xor a
in a,(SIF_PORT+20) ; read LSR

nebo

xor a
in a,(SIF_PORT) ; read byte from UART

=========

Primlouvam se tam pridat 0 at se to lepe cte:
xor 0011000b ; toggle only speaker bits

=========

Mas nejaky program pro IrDa? To bezi v half duplexu a tak to bude slozitejsi nez prenos pres rs232 rizeny signaly RTS/CTS.


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