26 Ostatnio edytowany przez Hans 2004 (2024-11-26 14:44:27)

Rozdział 1.
Trochę Matematyki.
================

W transmisji Normal podczas wysyłania sygnały 1 i 0 to są częstotliwości 5327 i 3995 HZ. Taj jest dla NTSC w PAL 5276 i 3957
Jeśli się zastanawiacie dlaczego właśnie te częstotliwości to wystarczy wykonać małe obliczenia, a
dokładniej to trzeba obliczyć ile przebiegów sinus zmieści się w 1 bicie 600 bps czyli w 1,666
milisekundy. Wyszło mi 9 pełnych sinusoid dla 5327Hz i 6,5 dla 3996Hz.

Tak się zastanawiam czy Pokey idealnie przełącza te 2 częstotliwości albo są tam jakieś skoki czy nieciągłości.

Edit: Na wyjściu Clock Out jest 594.5 Hz więc x6,5 daje 3864.25   a x9=5391 Hz - i rzeczywiście przebieg clock i datat out NIE SĄ ze sobą zsynchronizowane. Przełączanie jest płynne albo w 0 albo w 1.  Rzeczywista częstotliwość pilota i (1) to 5276 (zmierzyłem miernikiem częstotliwości)

Jeśli  chcemy przyspieszyć transmisję to najlepiej dobrać taką ilości tych przebiegów aby zmieściła się całkowita ich ilość na jeden bit, wychodzi więc tak:

BPS   | 1 | 0  |
-------+---+----+
600   | 9 | 6,5  ilość sinusów na bit - a jak widać na obrazku jest 9 i 6.5 sinusów
666   | 8 | 6
888   | 6 | 4
1330 | 4 | 2

Tą drogą poszły np.: casa turbo tape - nie sprawdzałem jeszcze jak działa.
Pozostaje oczywista kwestia czy dekoder FSK w magnetofonie sobie z mniejszą ilością sinusów poradzi. Jak widać na zrzucie z oscyloskopu to długość 1 i 0 nie jest równa co jest  powodem błędów.

Druga droga:  jakby zmniejszyć ilość sinusów do jednego ? - no ale wtedy różnica przy tych częstotliwościach jest zbyt mała, lepiej więc dać np. drugą częstotliwość dwa razy mniejszą. Jak zauważycie jeden pełny sinus 3996 trwa 0,250 ms (tyle właśnie trwa jeden bit w większości turbo), Tutaj dekodowanie jest wbrew pozorom prostsze - poddajemy sygnał dużemu wzmocnieniu i mamy parę  (sygnał i przerwa ) o tym samych trwaniu. Za sygnał pilota służyła jeszcze inna - niższa częstotliwość.

Edit2: Wyniki pomiarów Turbo Blizzard pilot:1992Hz, 1: 3965Hz 0: 5965Hz  Jeden bit to jedna cała sinusoida.
===============
Obliczenia w tabelce.

https://docs.google.com/spreadsheets/d/ … sp=sharing

27

"Oni transmitują te dane w sposób profesjonalny, czyli co w kaseciaku piszczy."
- praca zbiorowa pod kierownictwem Profesora Sebana

;-)

___
Press play on tape...

28 Ostatnio edytowany przez Hans 2004 (2024-12-11 11:42:16)

Zapis w normal – ostateczne zbadanie problemu.

Postanowiłem sprawdzić jak dokładnie wygląda zapis w standtowym 600bps a szczególnie chciałem wyjaśnić dwie sprawy, które mnie zaintrygowały:
- czy rzeczywiście występuje tam 6.5 sinusoidy?
- jak wygląda przełączenie między częstotliwościami – czy jest płynne i kiedy następuje.

Na wyjściu z DataOut i ClockOut   jest przebieg prostokątny, więc wystarczyło użyć analizatora stanów logicznych.

Zresztą sami odkryjcie – przebiegi dołączam.

Przebadałem też Baud Rate Selector z Tajemnic Atari (wszystkie prędkości) oraz dla porównania Turbo Blizzard.

Prędkości w tym Baud RateSelector są niezgodne z rzeczywistością. Częstotliwości te zmierzyłem miernikiem na ClockOut w gnieździe SIO – i tyle wynoszą naprawdę:

600 594.5
800 654.6
900 727,7
1000 790.7
1200 864,8
1400 1707

Dodałem wszystkie razem na jednym obrazku. Jak widać "przełączenie" następuje raz przed a raz po sygnale zegara a dodatkowo sygnał bywa czasem o pół sinusoidy krótszy.

Post's attachments

Baud_1000.ZIP 1.34 mb, nikt jeszcze nie pobierał tego pliku. 

Baud_1200.ZIP 1020.97 kb, nikt jeszcze nie pobierał tego pliku. 

Baud_1400.zip 851.66 kb, liczba pobrań: 3 (od 2024-11-26) 

Baud_900.zip 1.33 mb, liczba pobrań: 1 (od 2024-11-26) 

Baud__800.ZIP 1.31 mb, nikt jeszcze nie pobierał tego pliku. 

Bity_bajty_normal_vs_Blizzard.png 67.46 kb, nikt jeszcze nie pobierał tego pliku. 

Ilosc_sinusoid.png 39.09 kb, nikt jeszcze nie pobierał tego pliku. 

Normal_600.zip 1.57 mb, liczba pobrań: 1 (od 2024-11-26) 

Porownanie_wszystkich_razem.gif 454.21 kb, nikt jeszcze nie pobierał tego pliku. 

Save_c_motor_on.zip 99.01 kb, liczba pobrań: 1 (od 2024-11-26) 

Tylko zalogowani mogą pobierać załączniki.

29

Jak tego Baud Rate Selectora policzyłeś? Mnie też nie wychodziły prędkości, jakie tam wypisywano, ale wg wzoru:

baud=Fbase/2/(period+7)

wyszło mi tak dla PAL (Fbase=1773447):

800 (543) - 654,891802067947
900 (4BB) - 728,016009852217
1000 (45A) - 791,011150758252
1200 (3FA) - 865,096097560976
1400 (200) - 1708,52312138728

a dla NTSC (Fbase=1789772,5):

800 - 660,920420974889
900 - 734,717775041051
1000 - 798,292818911686
1200 - 873,059756097561
1400 - 1724,25096339114

W nawiasach są wartości okresu ustawione w AUDF.
A przypominam, że standardowa systemowa prędkość 600 baud jest podawana według zegara NTSC:

600 (5CC) - 600,191985244802

dla PAL wychodzi 594,717303822938.

Skąd te rozbieżności między Twoimi a moimi wyliczeniami?

W razie czego służę też wyliczeniami dla:

buldozer turbo
turbo copy r&r
baud rate selector
long file copy
casdup 2600
iron turbo
turbo tape casa
turbo charger xl

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje