Ну, хорошо, теперь, когда вы расчитали значения HFL/VFL для выбранной частоты
карты, нашли приемлимую частоту рефреша и проверили достаточно ли для этого
памяти, начинается настоящая магия - вам нужно знать когда и где разместить
значения синхронизации.
Синхроимпульсы управляют вертикальными и горизонтальными развертками монитора.
Значения HSF и VSF, выуженые из таблицы руководства на монитор, это
номинальные значения, апроксимирующие маскимальные синхронизирующие частоты.
Именно синхроимпульс исходящий от видеокарты определяет максимальную частоту.
Помните те картинки, которое мы рассматривали ? Только часть времени при
формировании растра используется для изображения картинки
(т.е. вашего разрешения).
Пользуясь предыдущим, определением, чтобы сгенерировать одну горизонтальную
линию необходимо HFL тиков. Назовем видимое количество тиков (горизонтальное
разрешение) HR. Тогда, очевидно, что HR < HFL по определению. Для
конкретности, допустим, что оба начинаются в один и тот же момент
времени, как показано ниже:
|___ __ __ __ __ __ __ __ __ __ __ __ __
|_ _ _ _ _ _ _ _ _ _ _ _ |
|_______________________|_______________|_____
0 ^ ^ unit: ticks
| ^ ^ |
HR | | HFL
| |<----->| |
|<->| HSP |<->|
HGT1 HGT2
Теперь, мы желалил бы разместить синхроимпульс HSP как показано
выше т.е. между последним тиком для данных изображения и последним тиком для
целого кадра. Но почему? Потому, что если мы сможем этого достигнуть, тогда
изображение не будет сдвинуто вправо или влево. Оно будет находиться там, где
ему и положено быть, размещаясь в видимой области экрана.
Более того, нам нужен запас около 30 тиков с обоих сторон синхроимпульса. Это
растояния HGT1 и HGT2. В обычной конфигурации HGT1 != HGT2, но если вы
настраиваете конфигурацию "с нуля", вы захотите начать эксперименты принимая
их равными (т.е. синхроимпульс выровнен по центру).
Признаком того, что синхроимпульс расположен неправильно является смешение
изображения на экране, при этом с одной стороны экрана наблюдается широкая
полоса, а с другой стороны изображение завернуто относительно края, что создает
эффект белой полосы или полосы с двойным изображением. Неправильно
установленный вертикальный синхроимпульс может вызвать заворачивание
изображения совсем так же как у теливизора при неправильно установленном
вертикальном размере (собственно, принцип тот же).
Если вам повезло, то ширина синхроимпульса отражена в спецификации руководства
на ваш монитор. А если нет, то вот тут то и начинается настоящая магия...
Вам придется в этом случае провести несколько испытаний. Но для большинства
случаев, мы можем допустить, что синхроимпульс длинной от 3,5 до 4,0
микросекунд.
Опять же для конкретности, положим HSP равным 3,8 микросекунды (что является,
BTW, неплохим значением для начала).
Используя уже известное значение 65МГц, мы знаем, что HSP эквивалентно 247
тикам (= 65 * 10**6 * 3.8 * 10^-6) [вспоминаем, что M=10^6, micro=10^-6].
Некоторые производители любят указывать горизонтальную частоту вместо
ширины в точках. Вы можете встретиться со следующими терминами:
- active time (HAT)
Связано с HR, но в миллисекундах. HAT * DCF = HR.
- blanking time (HBT) (HBT)
Связано с (HFL - HR), но в миллисекундах. HBT * DCF =
(HFL - HR).
- front porch (HFP)
Это просто HGT1.
- sync time
Это просто HSP.
- back porch (HBP)
Это просто HGT2.
Возвращаясь к нашей картинке, как нам поместить 247 тиков так это показано на
рисунке?
Используя наш пример, имеем, HR = 944 и HFL = 1176. Разница между этими двумя
значениями 1176 - 944=232 < 247! Очевидно, что-то здесь нужно
подкорректировать. Но что же?
Первым делом надо поднять 1176 до 1184 или опустить 944 до 936. Теперь разница
состовляет 1184-936= 248. Ну, что ж, уже ближе...
Затем вместо 3,8, мы используем 3,5 для вычисления HSP; теперь имеем
65*3.5=227. Выглядит получше. Но 248 не сильно отличается от 227. Обычно
хватает приблизительно 30 тиков между HR и началом SP и тоже значение
между концом SP и HFL. И они должны делиться на 8. Неужели все?
Нет. Теперь давайте проделаем следующее, 936 % 8 = 0, (936 + 32) % 8 = 0 тоже.
Но 936 + 32 = 968, 968 + 227 = 1195, 1195 + 32 = 1227. Хм, неплохо. Но не
делится на 8, поэтому округляем до 1232.
Но теперь, возможно, у нас появилась проблема, синхроимпульс больше не
расположен прямо посередине между h и H. К счастью, взяв калькулятор,
мы находим, что 1232 - 32 = 1200 тоже делится на 8 и (1232 - 32) - 968 = 232
еще приемелимо, соответствуя синхроимпульсу длительностью 3,57 микросекунд.
Кроме того, 936/1232 0.76 или 76%, не сильно отличается от 80%, так что все
должно быть в порядке.
Более того, при использовании текущей длины кадра , мы устанавливаем для
монитора частоту синхронизации в 52.7КГц (= 65МГц/1232), что находится
в пределах способностей нашего монитора. Без проблем.
Имея в виду упомянутые выше правила, 936*75%=702, Это наше новое разрешение
по вертикали. А 702 * 1.05 = 737 - наше новая вертикальная длина кадра.
Частота обновления экрана = 65МГц/(737*1232)=71.6Гц. Пока все хорошо.
Диаграмма вертикального синхроимпульса аналогична:
|___ __ __ __ __ __ __ __ __ __ __ __ __
|_ _ _ _ _ _ _ _ _ _ _ _ |
|_______________________|_______________|_____
0 VR VFL unit: ticks
^ ^ ^
| | |
|<->|<----->|
VGT VSP
Синхроимпульс начинается сразу же после данных. VGT - запас по времени для
синхроимульса. Большинство мониторов довольствуются VGT=0 (нет запаса) и этот
случай мы будем использовать в нашем примере. Некоторым мониторам требуется
2 или 3 тика и ничего страшного, если придется их добавить.
Возвращаясь к нашему примеру: исходя из определения длины кадра, вертикальный
тик это время необходимое для прохождения полного горизонтального кадра. Таким
образом, в нашем примере он равен 1232/65Mhz=18.95us.
По опыту, вертикальный синхроимульс находится в пределах от 50 до 300 мкс.
Давайте, для примера возьмем 150 мкс, что состовляет 8 вертикальных импульсов
(150us/18.95us 8).
Некоторые производители вместо количества точек любят приводить кадровые
характеристики в виде временных параметров. Вы можете встретиться со
следующими терминами:
- active time (VAT)
Связанно с VR, но в милисекундах. VAT * VSF = VR.
- blanking time (VBT)
Связанно с (VFL - VR), но в милисекундах. VBT * VSF =
(VFL - VR).
- front porch (VFP)
Это просто VGT.
- sync time
Это просто VSP.
- back porch (VBP)
Это временной "запас" после вертикального синхроимпульса.
Часто равен 0.
Вперед
Назад
Содержание