| 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 |
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
Rozdíl oproti SM: Service Manual nespecifikuje šířky borderů. Levý border (156 CLK0) je širší než pravý (132 CLK0).
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
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.
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.
Rozdíl oproti SM: Service Manual nespecifikuje rozložení V-borderu. Top border (46 řádků) je širší než bottom border (42 řádků).
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_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
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)
sim/test_video.py — test test_h_timing, test_full_framesim/video_capture.py — PAL konstanty, měření, capture