Перейти к содержанию

Распиновка VGA (DE-15)

Назначение всех 15 контактов VGA на розетке и на вилке, уровни сигналов по стандартам VESA, канал DDC, временные параметры режима 640×480 при 60 Гц и расчёт резистивного ЦАП для вывода изображения с микроконтроллера или ПЛИС.

Обновлено Редакция GAW

VGA передаёт изображение тремя аналоговыми сигналами — красным, зелёным и синим — и двумя цифровыми синхроимпульсами, строчным и кадровым. Разъём — трёхрядный D-sub на 15 контактов, DE-15: корпус того же размера E, что у девятиконтактного DE-9 из статьи об RS-232, но контакты стоят в три ряда с шагом 2,29 мм. По каналу DDC в том же разъёме компьютер читает из монитора EDID — описание монитора и список поддерживаемых режимов.

Коротко

  • Цвета: 1 — красный, 2 — зелёный, 3 — синий; обратные провода — 6, 7 и 8.
  • Синхронизация: 13 — HSync, 14 — VSync, уровни TTL; общий провод — 5 и 10.
  • DDC: 12 — SDA, 15 — SCL, шина I²C; 9 — +5 В для DDC от компьютера, не меньше 50 мА.
  • R, G, B: от 0 В (чёрный) до 0,7 В (белый) на нагрузке 75 Ом.
  • 640×480 при 60 Гц: пиксельная частота 25,175 МГц, 800 пикселей × 525 строк вместе с гашением, оба синхроимпульса отрицательные.
  • Резистивный ЦАП: с выхода 3,3 В — 270 Ом последовательно в каждый цвет, с 5 В — 470 Ом.

Распиновка VGA: розетка и вилка

Распиновка разъёма VGA (DE-15): розетка и вилка, вид спередиРозетка, вид на гнёзда: верхний ряд слева направо — 5 GND, 4 ID2, 3 B, 2 G, 1 R; средний ряд — 10 GND, 9 +5 В, 8 B RTN, 7 G RTN, 6 R RTN; нижний ряд — 15 SCL, 14 VSync, 13 HSync, 12 SDA, 11 ID0. Вилка, вид на штыри: верхний ряд слева направо — 1 R, 2 G, 3 B, 4 ID2, 5 GND; средний ряд — 6 R RTN, 7 G RTN, 8 B RTN, 9 +5 В, 10 GND; нижний ряд — 11 ID0, 12 SDA, 13 HSync, 14 VSync, 15 SCL. Контакты 1–3 — видео R, G, B, 6–8 — их обратные провода, 5 и 10 — общий провод, 13 и 14 — строчная и кадровая синхронизация, 12 и 15 — SDA и SCL канала DDC, 9 — +5 В для DDC, 4 и 11 — бывшие биты ID монитора.Розетка на видеокартевид спереди, на гнёздаВилка кабелявид спереди, на штыри — нумерация зеркальная1R2G3B4ID25GND6R RTN7G RTN8B RTN9+5 В10GND11ID012SDA13HSync14VSync15SCL1R2G3B4ID25GND6R RTN7G RTN8B RTN9+5 В10GND11ID012SDA13HSync14VSync15SCLвидео R, G, BсинхроимпульсыDDC и +5 ВземляID, резерв
Разъём VGA (DE-15), вид спереди. Розетка — по рисунку 7-1 стандарта VESA E-DDC и чертежу Würth Elektronik 618015330923, вилка — по чертежу Würth 618015325323. Вилка и розетка зеркальны

На видеокарте стоит розетка с гнёздами. Если смотреть на неё спереди широкой стороной вверх, контакт 1 — справа в верхнем ряду, контакт 6 — справа в среднем, а сам средний ряд сдвинут на полшага в сторону контакта 1. На вилке кабеля всё наоборот: контакт 1 слева вверху, средний ряд сдвинут влево. VESA требует, чтобы пластик розетки на стороне компьютера с поддержкой DDC был синим (royal blue), — отсюда привычный синий цвет разъёма VGA.

КонтактСигналНазначение
1Redвидеосигнал красного, 0–0,7 В
2Greenвидеосигнал зелёного; может нести и синхронизацию (sync on green), если её поддерживают обе стороны
3Blueвидеосигнал синего
4ID2бит 2 идентификации монитора; у монитора с DDC — не подключён
5GNDобщий провод (в исходной VGA обозначен как Test, тоже на земле)
6Red returnобратный провод красного
7Green returnобратный провод зелёного
8Blue returnобратный провод синего
9+5 Vпитание DDC от компьютера; в исходной VGA контакта не было — на его месте ключ
10Sync returnобщий провод синхроимпульсов
11ID0бит 0 идентификации монитора; у монитора с DDC — не подключён
12SDAданные DDC; в исходной VGA — бит ID1
13HSyncстрочная синхронизация; может нести смесь строчной и кадровой
14VSyncкадровая синхронизация
15SCLтакт DDC; в исходной VGA — бит ID3

Варианты «синхронизация на зелёном» и «смесь синхроимпульсов на контакте 13» стандарт E-DDC допускает, только если их поддерживают и компьютер, и монитор, — монитор сообщает об этом в EDID. Обычный режим — раздельные HSync и VSync.

Уровни сигналов и 75 Ом

Сигналы R, G и B — аналоговые: от 0 В при нулевом коде (чёрный) до 0,700 В при максимальном (белый), допуск белого уровня — от −0,035 до +0,07 В. Напряжение измеряют относительно обратного провода своего цвета на нагрузке 75 Ом. Выходное сопротивление видеокарты и входное сопротивление монитора — по 75 Ом, у монитора с допуском ±1,5 Ом по постоянному току (VESA VSIS). Тракт согласован с обоих концов, поэтому отражения в кабеле не портят изображение. Классический видео-ЦАП, например ADV7125, так и работает: его токовый выход нагружен на 37,5 Ом — 75 Ом на стороне видеокарты параллельно 75 Ом монитора.

Синхроимпульсы HSync и VSync — цифровые, уровня TTL. По VSIS передатчик выдаёт единицу 2,4–5,5 В и ноль 0–0,5 В и рассчитан на ток 8 мА, а монитор обязан распознавать единицу от 2,0 В и ноль до 0,8 В; в измерительной схеме стандарта вход синхроимпульса монитора нагружен на 2,2 кОм. Выход КМОП на 3,3 В этим требованиям удовлетворяет. Полярность синхроимпульсов зависит от режима: в 640×480 при 60 Гц оба импульса отрицательные.

О своём входе монитор сообщает и в EDID: в байте 14h аналоговый вход описан соотношением уровней видео, синхроимпульса и полного размаха, например 0,700 : 0,300 : 1,000 В. Второе число важно для синхронизации на зелёном: к видеосигналу 0,7 В добавляется импульс 0,3 В.

DDC и EDID в разъёме VGA

Первые видеокарты VGA узнавали монитор по нескольким битам ID на контактах 11, 12, 4 и 15, и такая схема различала лишь несколько типов дисплеев. Стандарт DDC (Display Data Channel) превратил контакты 12 и 15 в линии SDA и SCL, а на контакт 9, где раньше был ключ, вывел +5 В от компьютера. Контакты 4 и 11 у компьютера могут остаться битами ID, а у монитора с DDC их не подключают. Самый первый режим, DDC1, передавал данные только от монитора к компьютеру; VESA его больше не поддерживает, и современный E-DDC — это обычный обмен по I²C.

Компьютер — ведущий, монитор — ведомый. EDID лежит по 7-битному адресу 0x50 (байты A0h и A1h на шине) блоками по 128 байт; первые 8 байт базового блока — заголовок 00 FF FF FF FF FF FF 00, а сумма всех 128 байт по модулю 256 равна нулю. Обычная скорость — 100 кГц (Standard-mode), подробнее о протоколе — в статье о шине I²C. По тому же каналу работает и DDC/CI: команды монитору вроде яркости и контраста по адресу 0x37 (байты 6Eh/6Fh).

Подтяжки SCL и SDA ставят в компьютере — 1,5–2,2 кОм к +5 В или источник тока 3 мА, а у монитора допускается только подтяжка 47 кОм на SCL. Компьютер держит на контакте 9 напряжение 5 В ± 5 %, пока видеовыход активен, и обязан отдавать 50 мА с ограничением тока не выше 1 А. Выключенный монитор может брать от этой линии до 50 мА, чтобы EDID читался без сети, включённый — не больше 1 мА. EDID должен быть доступен не позже чем через 20 мс после появления +5 В. Включённый монитор может использовать это напряжение и как сигнал: есть +5 В — видеовыход компьютера активен. Гнездо 9 в розетке с DDC утоплено на 0,050 дюйма (1,27 мм).

Прочитать EDID можно и без компьютера. Скетч для Arduino Uno: SDA и SCL платы — на контакты 12 и 15 разъёма, общий провод — на контакт 5, +5 В — на контакт 9, а внешние подтяжки около 2 кОм к +5 В сделают фронты как у видеокарты.

#include <Wire.h>

const uint8_t EDID_ADDR = 0x50;  // 7-bit address, bytes A0h/A1h on the bus

void setup() {
  Serial.begin(115200);
  Wire.begin();
  uint8_t sum = 0;
  for (uint8_t offset = 0; offset < 128; offset += 16) {
    Wire.beginTransmission(EDID_ADDR);
    Wire.write(offset);                              // byte address inside the block
    if (Wire.endTransmission(false) != 0) {          // repeated START, no STOP
      Serial.println("no EDID");
      return;
    }
    Wire.requestFrom(EDID_ADDR, (uint8_t)16);
    while (Wire.available()) {
      uint8_t b = Wire.read();
      sum += b;
      if (b < 0x10) Serial.print('0');
      Serial.print(b, HEX);
      Serial.print(' ');
    }
    Serial.println();
  }
  Serial.println(sum == 0 ? "checksum OK" : "checksum error");  // 128 bytes must sum to 0
}

void loop() {}

Режим 640×480 при 60 Гц: временные параметры

Временная диаграмма VGA 640×480 при 60 Гц: строка и кадрСтрока: 640 видимых пикселей (25,42 мкс), передняя площадка 16 пикселей (0,64 мкс), строчный синхроимпульс 96 пикселей (3,81 мкс) отрицательной полярности, задняя площадка 48 пикселей (1,91 мкс), всего 800 пикселей, 31,78 мкс. Кадр: 480 видимых строк (15,25 мс), передняя площадка 10 строк (0,32 мс), кадровый синхроимпульс 2 строки (0,064 мс) отрицательной полярности, задняя площадка 33 строки (1,05 мс), всего 525 строк, 16,68 мс. Пиксельная частота 25,175 МГц.Строка: 800 пикселей, 31,78 мксRGB640 пикселей · 25,42 мкс169648HSync0,64 мкс3,81 мкс1,91 мкспередняяплощадкасинхроимпульсзадняяплощадкаКадр: 525 строк, 16,68 мсRGB480 строк · 15,25 мс10233VSync0,32 мс0,064 мс1,05 мс
Строка и кадр режима 640×480 при 60 Гц по VESA DMT, пиксельная частота 25,175 МГц. Оба синхроимпульса отрицательные. Длины участков — не в масштабе
УчастокПо горизонталиПо вертикали
Видимая часть640 пикселей, 25,42 мкс480 строк, 15,25 мс
Передняя площадка16 пикселей, 0,64 мкс10 строк, 0,32 мс
Синхроимпульс96 пикселей, 3,81 мкс2 строки, 0,064 мс
Задняя площадка48 пикселей, 1,91 мкс33 строки, 1,05 мс
Всего800 пикселей, 31,78 мкс525 строк, 16,68 мс
Частота31,469 кГц59,940 Гц
Полярность синхроимпульсаотрицательнаяотрицательная

Пиксельная частота — 25,175 МГц ± 0,5 %. В DMT этот режим отмечен как отраслевой (Industry Standard), а не собственный стандарт VESA, и расписан с рамкой: по 8 пикселей справа и слева и по 8 строк сверху и снизу. Рамку обычно считают частью площадок, так сделано и в таблице: передняя площадка — 8 + 8 = 16 пикселей, задняя — 40 + 8 = 48, по вертикали — 2 + 8 = 10 и 25 + 8 = 33 строки. Во время площадок и синхроимпульсов выходы R, G и B держат в нуле — это интервалы гашения.

Нередко этот режим тактируют от 25 МГц — так, например, построены примеры Digilent для платы Basys 3, проверенные, по словам производителя, на реальных мониторах. Это на 0,7 % ниже номинала и за пределами допуска DMT: при тех же 800 × 525 строчная частота получается 31,25 кГц, кадровая — 59,52 Гц. Если монитор не синхронизируется, начните проверку с частоты. Формат 640×480 обязан принимать и любой приёмник HDMI.

Генератор синхроимпульсов на ПЛИС — это два счётчика и сравнения с границами из таблицы:

// 640x480 @ 60 Hz (VESA DMT), pixel clock 25.175 MHz.
// Borders are counted as porches: 640 + 16 + 96 + 48 = 800, 480 + 10 + 2 + 33 = 525.
module vga_sync (
    input  wire       clk_pix,
    output reg  [9:0] x = 0,          // 0..799
    output reg  [9:0] y = 0,          // 0..524
    output wire       hsync_n,        // negative polarity
    output wire       vsync_n,        // negative polarity
    output wire       visible         // drive R, G, B to zero when low
);
    always @(posedge clk_pix) begin
        if (x == 10'd799) begin
            x <= 10'd0;
            y <= (y == 10'd524) ? 10'd0 : y + 10'd1;
        end else begin
            x <= x + 10'd1;
        end
    end

    assign hsync_n = ~(x >= 10'd656 && x < 10'd752);  // 640 + 16 ... + 96
    assign vsync_n = ~(y >= 10'd490 && y < 10'd492);  // 480 + 10 ... + 2
    assign visible = (x < 10'd640) && (y < 10'd480);
endmodule

VGA с микроконтроллера или ПЛИС: резистивный ЦАП

Видео-ЦАП не обязателен. Цифровой выход с последовательным резистором вместе с входом монитора 75 Ом образует делитель напряжения, и резистор подбирают так, чтобы при высоком уровне на выходе на мониторе было 0,7 В:

R=Rм(UвыхUmax−1)R = R_\text{м}\left(\frac{U_\text{вых}}{U_\text{max}} - 1\right)

где RмR_\text{м} = 75 Ом — вход монитора, UвыхU_\text{вых} — напряжение высокого уровня на выводе, UmaxU_\text{max} = 0,7 В. Для 3,3 В получается R=75⋅(3,3/0,7−1)≈279R = 75 \cdot (3{,}3 / 0{,}7 - 1) \approx 279 Ом; ближайший номинал ряда E12 — 270 Ом, и на мониторе будет 3,3⋅75/(270+75)≈0,723{,}3 \cdot 75 / (270 + 75) \approx 0{,}72 В. Для 5 В: R≈461R \approx 461 Ом, берём 470 Ом — 0,69 В. Оба значения укладываются в допуск VSIS: от 0,665 до 0,770 В. Ток вывода при этом — около 9,6 мА при 3,3 В и 9,2 мА при 5 В: сверьте его с допустимым по даташиту микроконтроллера.

Один вывод на цвет даёт 8 цветов. Больше цветов дают несколько выводов на цвет с двоично-взвешенными резисторами R, 2R, 4R…: каждый следующий разряд вдвое слабее предыдущего. Вместе резисторы канала работают как один эквивалентный

Rэкв=2n−12n−1 Rст,R_\text{экв} = \frac{2^{n-1}}{2^n - 1}\,R_\text{ст},

где RстR_\text{ст} — резистор старшего разряда, nn — число разрядов, а напряжение на мониторе растёт с кодом линейно. Чтобы при всех единицах на мониторе было 0,7 В, эквивалент должен быть таким же, как одиночный резистор: около 279 Ом при 3,3 В. Для четырёх разрядов Rст=279⋅15/8≈523R_\text{ст} = 279 \cdot 15 / 8 \approx 523 Ом.

Вывод VGA с ПЛИС: резистивный ЦАП на 4 бита на цвет и нагрузка 75 Ом монитораВыходы R3–R0 ПЛИС через резисторы 510 Ом, 1 кОм, 2 кОм и 4 кОм соединены вместе и идут на контакт 1 разъёма VGA; в мониторе линия нагружена резистором 75 Ом на землю, поэтому напряжение меняется от 0 до примерно 0,72 В. Зелёный и синий каналы устроены так же и идут на контакты 2 и 3. Выходы HS и VS через резисторы 100 Ом идут на контакты 13 и 14. Контакты 5–8 и 10 соединены с общим проводом.ПЛИС или МКвыходы 3,3 ВR3510 ОмR21 кОмR12 кОмR04 кОмR: 0…0,72 ВG3…G0так же, как RB3…B0так же, как RHS100 ОмVS100 ОмVGA12313145–8, 10монитор75 Ом75 Ом75 Омвход TTLвход TTLобратные провода — контакты 6–8
Вывод VGA с ПЛИС, как на плате Digilent Basys 3: на каждый цвет четыре резистора 510 Ом, 1, 2 и 4 кОм, на синхроимпульсы — по 100 Ом. Нагрузку 75 Ом на каждый цвет даёт монитор

Так устроен выход VGA платы Digilent Basys 3: 510 Ом, 1, 2 и 4 кОм на каждый цвет, 16 уровней на канал и 4096 цветов. Проверка: параллельно эти резисторы дают 269,5 Ом, и при всех единицах на мониторе 3,3⋅75/(75+269,5)≈0,723{,}3 \cdot 75 / (75 + 269{,}5) \approx 0{,}72 В, а один уровень — около 48 мВ.

Строго говоря, выходное сопротивление источника видеосигнала должно быть 75 Ом, а у такого ЦАП оно около 270 Ом. На практике это допустимо: кабель нагружен на согласованные 75 Ом монитора, отражённой волны от дальнего конца почти нет, и рассогласование на стороне источника не мешает. Синхроимпульсы подают через небольшие резисторы — на Basys 3 это 100 Ом; последовательные резисторы на выходах синхроимпульсов ставит и TI в микросхеме защиты порта VGA TPD7S019.

Пиксельная частота 25,175 МГц — это 40 нс на пиксель. Микроконтроллер без видеовыхода, которому такая скорость недоступна, выводит меньше пикселей в строке: каждый растягивают на несколько точек, а синхроимпульсы формирует таймер с временами из таблицы выше — частоты строк и кадров должны остаться прежними.

Типичные ошибки

  • Перепутаны вилка и розетка. Нумерация зеркальная: контакт 1 розетки — справа вверху, вилки — слева. При распайке кабеля сверяйтесь с видом той детали, которую держите в руках.
  • Логический уровень прямо на R, G или B. Без последовательного резистора 3,3 или 5 В попадает на вход 75 Ом: картинка пересвечена, а вывод микроконтроллера перегружен током 44–67 мА.
  • Расчёт делителя без монитора. Резистор считают для нагрузки 75 Ом. Если измерить напряжение на разъёме без монитора, оно будет близко к напряжению питания — это нормально.
  • 25 МГц вместо 25,175 МГц. Частота на 0,7 % ниже номинала и выходит за допуск DMT: многие мониторы такой сигнал принимают, но гарантии нет.
  • Цвет во время гашения. В площадках и синхроимпульсах выходы R, G и B должны быть в нуле.
  • Нет +5 В на контакте 9. Выключенный монитор без этого питания не отдаёт EDID, и компьютер не узнаёт, какие режимы он поддерживает.
  • Пассивный переходник HDMI — VGA. В HDMI нет аналоговых сигналов, поэтому нужен активный преобразователь. Подробности — в статье о распиновке HDMI.

Частые вопросы

Какой контакт VGA за какой цвет отвечает?

Контакт 1 — красный, 2 — зелёный, 3 — синий; их обратные провода — 6, 7 и 8. Строчная синхронизация — контакт 13, кадровая — 14, общий провод — 5 и 10. Контакты 12 и 15 — SDA и SCL канала DDC, 9 — +5 В для DDC, 4 и 11 у мониторов с DDC не подключены.

Какое напряжение на контактах RGB у VGA?

От 0 В (чёрный) до 0,7 В (белый) на нагрузке 75 Ом; по стандарту VESA VSIS белый уровень — 0,700 В с допуском +0,07/−0,035 В. Синхроимпульсы цифровые, уровня TTL: передатчик выдаёт единицу 2,4–5,5 В, монитор распознаёт её уже от 2,0 В.

Зачем в разъёме VGA +5 В на контакте 9?

Это питание канала DDC: по нему компьютер читает EDID даже у выключенного монитора, а включённый монитор может по этому напряжению понять, что видеовыход активен. Компьютер обязан держать 5 В ± 5 % и отдавать 50 мА с ограничением тока не выше 1 А; выключенный монитор берёт до 50 мА, включённый — не больше 1 мА. Больше нагружать линию нельзя.

Что такое DDC в VGA и как прочитать EDID?

DDC — это шина I²C на контактах 12 (SDA) и 15 (SCL) с общим проводом на контакте 5. EDID лежит по 7-битному адресу 0x50 блоками по 128 байт; первый блок начинается заголовком 00 FF FF FF FF FF FF 00, а сумма всех его байтов по модулю 256 равна нулю. Прочитать его может любой микроконтроллер с I²C на частоте 100 кГц.

Как подключить VGA к Arduino или ПЛИС?

Каждый цветовой выход подключают через последовательный резистор, который вместе с входом монитора 75 Ом даёт 0,7 В: 470 Ом при логике 5 В и 270 Ом при 3,3 В. Синхроимпульсы подают напрямую или через резисторы около 100 Ом. Для режима 640×480 при 60 Гц нужна пиксельная частота 25,175 МГц и времена из стандарта VESA DMT.

Чем вилка VGA отличается от розетки по нумерации?

Они зеркальны. На розетке видеокарты, если смотреть спереди широкой стороной вверх, контакт 1 — справа в верхнем ряду, на вилке кабеля — слева. Средний ряд на розетке сдвинут на полшага к контакту 1, на вилке — в другую сторону.

Источники

  1. VESA. Enhanced Display Data Channel (E-DDC) Standard, Version 1.2, 2007 — бесплатный стандарт VESA. Табл. 7-1 — контакты VGA в исходной VGA, у компьютера и у монитора с DDC, рис. 7-1 — вид на розетку, п. 7.1.1 — синий цвет розетки и утопленное гнездо 9, п. 7.1.3 — питание +5 В, п. 4.1 — подтяжки DDC, п. 4.2.2 — EDID через 20 мс, табл. 2-1 — режимы DDC
  2. VESA. Video Signal Standard (VSIS), Version 1, Rev. 1, 2000 — табл. 1 — уровни синхроимпульсов, табл. 2 — уровни R, G, B, табл. 3 — 75 Ом и нагрузка синхроимпульсов 2,2 кОм. В списке бесплатных стандартов VESA — редакция 1.0 R2, статья сверена по Rev. 1
  3. VESA. Display Monitor Timing (DMT) Standard, Version 1.0, Rev. 13, 2013 — 640×480 при 60 Гц: 25,175 МГц ± 0,5 %, 800 × 525 с рамкой 8 пикселей и 8 строк, отрицательные синхроимпульсы
  4. VESA. Enhanced Extended Display Identification Data (E-EDID) Standard, Release A, Rev. 2 (EDID 1.4), 2006 — блок 128 байт, заголовок 00 FF FF FF FF FF FF 00, контрольная сумма, байт 14h — тип входа и уровни аналогового сигнала
  5. VESA. Display Data Channel Command Interface (DDC/CI) Standard, Version 1.1, 2004 — адрес монитора 6Eh/6Fh, скорость 100 кбит/с
  6. Würth Elektronik. WR-DSUB Female High Density Angled PCB Connector, 618015330923, rev. 003.001, 2025 — розетка DE-15, вид спереди: контакт 1 справа в верхнем ряду, средний ряд сдвинут к нему; шаг 2,29 мм
  7. Würth Elektronik. WR-DSUB Male High Density Angled PCB Connector, 618015325323, rev. 001.002, 2025 — вилка DE-15, вид спереди: контакт 1 слева в верхнем ряду
  8. Digilent. Basys 3 Reference Manual, раздел VGA Port — 4 бита на цвет: 510 Ом, 1, 2 и 4 кОм, 100 Ом на HS и VS, 0–0,7 В на входе монитора 75 Ом, тайминги 640×480 от 25 МГц
  9. Analog Devices. ADV7125 CMOS, 330 MHz Triple 8-Bit High Speed Video DAC, Rev. D — токовые выходы на нагрузку 37,5 Ом — кабель 75 Ом, нагруженный с двух сторон
  10. Texas Instruments. TPD7S019 7-Channel Integrated ESD Solution for VGA Port, SLLSE33E, 2016 — защита порта VGA: буферы синхроимпульсов с выходом КМОП 5 В и последовательными резисторами, преобразование уровней DDC, подтяжки DDC 1,5–2 кОм