Temat: SIO jaka przerwa między complete/error a blokiem danych

Czołem.

Przychodzę z pewnym problemem, wyraziłem go już w tytule wątku, ale ponawiam. Jaka powinna być przerwa w transmisji po SIO między bajtem statusu wykonania komendy (complete/error) a blokiem danych, gdy komputer odczytuje dane z urządzenia?
W oryginalnej specyfikacji SIO nie było to ujęte. W dokumentacji Altirry jest wyraźna nota, że urządzenia mogą transmitować te dwie rzeczy jednym ciągiem (back-to-back) po prostu jako kolejne bajty. Z drugiej strony mam podejrzenia, że lepiej jest gdy urządzenia dają w tym miejscu przerwę. Muszę trochę jeszcze posiedzieć, żeby móc przekazać wam wyniki obserwacji, ale bardzo mnie ciekawi czy ktoś już rozpoznawał temat, są jakieś haczyki?
Pytam się, bo robię tą swoją stację dysków i pytanie jest jak najbardziej ważne.

2

Odp: SIO jaka przerwa między complete/error a blokiem danych

Cześć,

na stronie 20 specyfikacji:
http://spiflash.org/atari/siospecs.pdf
jest diagram, z ktorego wynika, ze nie musi byc odstepu pomiedzy bajtem CMPL a blokiem danych.

Ja miałem problem w projekcie SIO2BT z niezachowanym czasem t5 (250usec) pomiedzy ACK i CMPL ,
ponieważ transceiver Bluetooth buforowal dane.
Logic Analyzer pokazał, że bajty ACK i COMPL przychodziły jeden po drugim,
musialem wiec wprowadzic dodatkowe opoznienie pomiedzy tymi bajtami w appce.

W kazdym razie polecam analizator stanow logicznych, bo bardzo sie przydaje w takich projektach.

ATARI 65XE + SIO2BT
http://atari.pl/hsc/ad.php?i=22.3

3

Odp: SIO jaka przerwa między complete/error a blokiem danych

Montezuma napisał/a:

Cześć,

na stronie 20 specyfikacji:
http://spiflash.org/atari/siospecs.pdf
jest diagram, z ktorego wynika, ze nie musi byc odstepu pomiedzy bajtem CMPL a blokiem danych.

No właśnie z diagramu nic nie wynika. Został narysowany tak, że CMPL i blok danych się nie stykają i nie podano żadnego parametru czasowego, który ten odstęp określa.

Moje pytanie wzięło się z problemów z działaniem mojej stacji w HIGHSPEED pod spartą. Sparta w moim przypadku uwielbia ściągać linię COMMAND w stan niski po CMPL i ponawiać komendę. Ponieważ nie przerywam transmisji w tym przypadku to omijam sporą ilość ponowień komendy i to powoduje dalsze problemy.
Właśnie to przerywanie po CMPL zasugerowało, że coś jest nie tak z tą przerwą, ale dałem większy odstęp i dalej sparta ma takie pomysły. Z drugiej strony odpaliłem w końcu tryb turbo USD i ten działa w porządku.

Były też problemy z czasem oznaczanym na diagramach jako t5. Wygląda na to, że ten timeout obowiązuje tylko formatowanie, a czy ktoś orientuje się jaki jest na pozostałe komendy? Wiem na pewno, że procedury SIO z różnych systemów operacyjnych mają różne czasy, ale nie wiem jakie dokładnie. Wiem tylko, że standardowy ROM ma duży timeout, SIO spatchowany na tryby turbo ma bardzo krótki czas, sparta - chyba też krótki.

Fajnie by było, jakby ktoś mający większą wiedzę w tym temacie zebrał ją i umieścił np. na atarikach.