VGA выход на Cubieboard

Несмотря на то, что на плате Cubieboard 1 и 2 присутствует лишь HDMI видео выход возможно получить VGA сигнал непосредственно с выводов GPIO Cubieboard.

Схема

Если у вас уже куплена дочерняя плата с VGA коннектором, можете смело пропускать этот раздел и листать к следующему. Если же нет то, то смотрим как сделать собственную схему подключения.

Не используйте пины 33 и 35 коннектора U15. Это HSYNC и VSYNC для LVDS, а не VGA. Потому что HSYNC и VSYNC сигналы имеют уровень 3,3В и должны быть преобразованы в 5В для соответствия спецификации VGA.
Каждый из VGA сигналов (красный, зеленый и синий) должны быть нагружены на номинальное сопротивление VGA. Это значит что резисторы 75Ом должны быть подключены между сигналом цвета и землей. Без этого аналоговый сигнал очень зашумлен и картинка на мониторе просто ужасна.
Итак минимальная схема будет выглядеть так:

Cubieboard vga

Более правильная схема выглядит так:

Cubieboard VGA адаптер

5В можно взять с пина 1 коннектора U15.

Настройка VGA выхода

Сперва сделаем бэкап script.bin

cp /boot/script.bin /boot/script.bin.bck

Сконвертируем script.bin в .fex файл

./bin2fex /boot/script.bin /boot/script.fex

Открываем файл script.fex в любом текстовом редакторе (можно воспользоваться Sublime Text из этого туториала) или открыть nano

nano /boot/script.fex

Найдите блок, начинающийся с „[disp_init]“ и измените строки до следующих значений
disp_init_enable: 0 выкл; 1 вкл
disp_mode: Используемый режим дисплея:

screen0_output_type: Тип выхода для screen0:

screen1_output_type: Тип выхода для screen1: то же что и предыдущее
screen0_output_mode: Режим выхода для screen0:

screen1_output_mode: Режим выхода для screen1: то же что и предыдущее

fb0_framebuffer_num: fb0 число буферов, используйте 2 для двойной буферизации
fb1_framebuffer_num: fb1 число буферов, используйте 2 для двойной буферизации

fb0_format: формат пикселей для fb0:

fb1_format: формат пикселей для fb1: то же что и предыдущее

fb0_pixel_sequence: fb0 пиксельная последовательность (0 общий для Linux, 2 для android):

fb1_pixel_sequence: fb1 пиксельная последовательность (0 общий для Linux, 2 для android): то же что и предыдущее

fb0_scaler_mode_enable: 0 выкл; 1 вкл
fb0_scaler_mode_enable: 0 выкл; 1 вкл

Таким образом часть .fex файла будет выглядеть так:

[disp_init]
 disp_init_enable = 1
 screen0_output_type = 4
 screen1_output_type = 2
 screen1_output_mode = 14
 fb0_framebuffer_num = 2
 fb0_format = 10
 fb0_pixel_sequence = 0
 fb0_scaler_mode_enable = 1
 fb1_framebuffer_num = 2
 fb1_format = 10
 fb1_pixel_sequence = 0
 fb1_scaler_mode_enable = 1

Файл сконфигурирован на VGA выход с разрешением 1024х768 на screen0 с двойной буферизацией. screen1 выключен и его параметры игнорированы.

Далее конвертируем script.fex обратно в .bin файл

./fex2bin /boot/script.fex /boot/script.bin

Выключаем cubieboard

shutdown –h now

И отключаем коннектор питания на несколько секунд, включаем его обратно. Теперь можно увидеть картинку на VGA мониторе.

Перевод статьи VGA output github.com/cubieplayer/Cubian/wiki/VGA-output

Еще ссылки по теме:
Fex руководство: linux-sunxi.org/Fex_Guide#.5Bdisp_init.5D
Sunxi-tools: linux-sunxi.org/Sunxi-tools#Building
Другие vga туториалы: taqlim.blogspot.de/2013/04/vga-out-for-cubieboard.html