Обычно отечественные кварцы имеют разброс и должны точно корректироваться фазосдвигающей цепочкой. Если точная настройка частоты генерации не производилась, то частота генерации может отличаться от номинала: +/- 100 КГЦ. А если кварц точно 16.000 МГц, то всё равно не получите частоту строк в 15.625 КГЦ. Потому что строчный период в РК не 64 МКСЕК, а 64.5 МКСЕК.
Режим ВГ75 устанавливает стандартная п/п-мма F82D. Если посмотреть в исходнике ПЗУ РК86 процедуру программирующую видео режим ВГ75, то увидим там:
Code: Select all
PUSK_VG:
PUSH HL
LD HL,VG_75+1
LD (HL),0 ; reset commando
DEC HL ; адрес VG_75
LD (HL),04DH ; 0.1001101 77 (77+1 знакомест)
LD (HL),01DH ; 00.011101 29 (29+1 строк)
LD (HL),99H ; 1001.1001 9 9 (9+1 линия подчерк)
; (9+1 линий в знакоместе)
LD (HL),93H ; 1.0.01.0011 без смещ.
; курсор - мигающая линия подчеркивания
; атрибуты отображать пробелом
; ZZZZ= 3. Т.е 3*2+2= 8 тактов сдвига -
; длина обратного хода луча в строке
INC HL ; адрес VG_75+1
LD (HL),27H ; Start display commando
LD A,(HL) ; read status (зачем-то это надо)
AFAE1: LD A,(HL) ; read status
AND 20H ; mask 'Interrupt request flag'
JP Z,AFAE1 ; ждем конца строки
LD HL,VT_57+8
LD (HL),80H
LD L,4 ; VT_57+04
LD (HL),low SA ; 0D0H
LD (HL),high SA ; 076H
INC L ; адрес VT_57+5
LD (HL),23H ; число байтов
LD (HL),49H ; режим
LD L,8 ; VT_57+8
LD (HL),0A4H
POP HL
RET
Проанализировав эти числа, записываемые в ВГ75, мы обнаружим, что базовый режим ВГ75 в РК настроен достаточно близко к
стандарту телевидения, но всё-же отличается.
Стандарт предусматривает частоту строк 15.625 КГЦ (что соответствуе строчному периоду в 64 МКСЕК), частоту кадров 50 ГЦ и длительности ССИ и КСИ 4.7 МКСЕК и 160 МКСЕК соответственно.
Из исходника видим, что на отображение по строке отведено 78 периодов знакомест-клока (8 МГЦ : 6= 1.333 МГЦ), а параметр ZZZZ задающий HRTC (время гашения по строкам) равен 3. В иностранном даташите есть вот такая табличка:
Хотя в книге В.Майоров, А.Гаврилов "Практический курс программирования микропроцессорных систем", Машиностроение, 1989, в описании 580 ВГ75 как раз в параметре ZZZZ ошибка. Я много лет пользовался этой мерзкой книгой и никак не мог понять почему расчётная частота строк так сильно отличается (если посчитать частоты по этой гадкой книге, то частота строк получается 16.26 КГЦ). И только недавно заглянув во вражеский даташит обнаружил расхождение и понял в чём дело.
Строчный период длится 78+8= 86 периодов знакомест-клока (это 1.333 МГЦ) и получается равным 86*(1/1.333)= 64.5 МКСЕК (а надо 64 МКСЕК) и соответственно заниженную частоту строк в 15.504 КГЦ вместо 15.625. Длительность ССИ=HRTC - тоже не в стандарте. Это в РК 8 периодов частоты 1.3333 МГЦ, т.е 6 МКСЕК, вместо требуемых стандартом 4.7 МКСЕК.
Число линий растра в РК - 310, т.к режимом задано 30 строк и еще одна строка отведена на обратный ход луча. Т.о при высоте знакоместа в 10 линий, получаем 31*10= 310 линий (в стандарте 312.5). Таким образом и кадровый период получается не тем, равным 310*64.5= 19.840 МСЕК (вместо требуемых 20 МСЕК), что даёт частоту кадров 50.4 ГЦ вместо требуемых 50 ГЦ.
КСИ в РК длится, вместо требуемых стандартом 160 МКСЕК, целых 64*10= 640 МКСЕК. Это кстати, нисколько не вредит синхронизации.
Вообще-то сама ВГ75 не формирует ни КСИ ни ССИ, а только VRTC и HRTC - кадровый и строчный бланки (сигналы гашения на время обратного хода луча). Очевидно, т.к для каждой системы и разных частот пиксель клока нужны свои положения и длительности ССИ и КСИ, разработчики i8275 оставили эту задачу для прикладных инженеров.
Для получения ССИ и ССИ достаточно двух 155 АГ3 (74123), в каждом из которых два прецизионных одновибратора. Первый одновибратор запускаем по заднему фронту HRTC или VRTC и его время вибрации задаёт временнОе смещение до начала импульса ССИ / КСИ. А второй одновибратор запускается по окончанию вибрации первого одновибратора и задаёт длительность самогО импульса ССИ / КСИ. Но авторы РК86 использовали сигналы с выходов HRTC и VRTC нетрадиционно - в качестве самих ССИ / КСИ. Потому поменять длительности и положение этих импульсов в РК86 ни программно, ни аппаратно нельзя (если только аппаратно с помощью "химии").