02 — Video timing (PAL)

Základní parametry

Parametr Hodnota Poznámka
CLK0 (pixel clock) 17.734475 MHz perioda 56.38 ns
CPU clock 3.547 MHz CLK0 ÷ 5
H-frekvence 15.611 kHz 1136 CLK0/řádek
V-frekvence 50.03 Hz 312 řádků/snímek
Kompletní signál 1136 × 312 px
Viditelná oblast 928 × 288 px border + canvas
Canvas 640 × 200 px

Horizontální timing (1 řádek = 1136 CLK0)

Pozice měřeny od sestupné hrany nHSYN (HSYNC falling edge):

Segment CLK0 Pozice Poznámka
HSYNC puls 80 0–79 nHSYN = 0
Back porch 104 80–183
Levý border 156 184–339 border color
Canvas 640 340–979 VRAM data přes paletu
Pravý border 132 980–1111 border color
Front porch 24 1112–1135

Rozložení: - H-blank (HSYNC + porches) = 208 CLK0 - Viditelná oblast = 928 CLK0 (border 156 + canvas 640 + border 132) - H-perioda = 1136 × 56.38 ns = 64.05 µs

Border asymetrie

Rozdíl oproti SM: Service Manual nespecifikuje šířky borderů. Levý border (156 CLK0) je širší než pravý (132 CLK0).

Vertikální timing (1 snímek = 312 řádků)

Pořadí řádků od sestupné hrany nVBLN (nVBLN 1→0):

Segment Řádků Pozice nVBLN
Bottom border 42 0–41 0
V-sync 24 42–65 0
Top border 46 66–111 0
Canvas 200 112–311 1

Rozložení: - V-blank (nVBLN=0) = 112 řádků (border 88 + V-sync 24) - Canvas (nVBLN=1) = 200 řádků - Viditelných celkem = 288 řádků (border 88 + canvas 200) - V-perioda = 312 × 64.05 µs = 19.98 ms ≈ 50.03 Hz

nVBLN pokrývá jen canvas

Důležité: nVBLN=1 signalizuje pouze canvas oblast (200 řádků), nikoliv celou viditelnou oblast (288 řádků). Border řádky (top 46 + bottom 42) mají nVBLN=0 stejně jako V-sync řádky.

Border vs V-sync rozlišení

Během V-sync jsou IGRB výstupy vždy 0000 (černá). Během border řádků je IGRB = nastavená border barva (port CF06H). S výchozí border barvou (černá) nelze border od V-sync rozlišit — je potřeba nastavit nenulovou border barvu.

V-border asymetrie

Rozdíl oproti SM: Service Manual nespecifikuje rozložení V-borderu. Top border (46 řádků) je širší než bottom border (42 řádků).

nVSYN signál

Pozor: nVSYN puls je kratší než očekávaných 24 řádků identifikovaných z border/V-sync analýzy. Skutečná šířka nVSYN pulsu neodpovídá V-sync intervalu. Možné příčiny: nVSYN pokrývá jen část V-sync intervalu, nebo má víc pulsů (equalizační pulsy). nVSYN není vhodný pro sync_to_frame — používáme nVBLN.

PAL konstanty (pro programy)

PAL_H_TOTAL = 1136
PAL_HSYNC_WIDTH = 80
PAL_H_VISIBLE_START = 184   # konec back porch
PAL_H_VISIBLE_END = 1112    # začátek front porch
PAL_H_CANVAS_START = 340    # konec levého borderu
PAL_H_CANVAS_END = 980      # začátek pravého borderu

Display order přeuspořádání

Snímek zachycený od nVBLN 1→0:

[0–41]    bottom border (42 řádků)
[42–65]   V-sync (24 řádků, IGRB=0000)
[66–111]  top border (46 řádků)
[112–311] canvas (200 řádků)

Pro zobrazení „visible" se řádky přeuspořádají:

top border    (řádky 66–111)
canvas        (řádky 112–311)
bottom border (řádky 0–41)

Testovací soubory