Несмотря на то, что на плате Cubieboard 1 и 2 присутствует лишь HDMI видео выход возможно получить VGA сигнал непосредственно с выводов GPIO Cubieboard.
Схема
Если у вас уже куплена дочерняя плата с VGA коннектором, можете смело пропускать этот раздел и листать к следующему. Если же нет то, то смотрим как сделать собственную схему подключения.
Не используйте пины 33 и 35 коннектора U15. Это HSYNC и VSYNC для LVDS, а не VGA. Потому что HSYNC и VSYNC сигналы имеют уровень 3,3В и должны быть преобразованы в 5В для соответствия спецификации VGA.
Каждый из VGA сигналов (красный, зеленый и синий) должны быть нагружены на номинальное сопротивление VGA. Это значит что резисторы 75Ом должны быть подключены между сигналом цвета и землей. Без этого аналоговый сигнал очень зашумлен и картинка на мониторе просто ужасна.
Итак минимальная схема будет выглядеть так:
Более правильная схема выглядит так:
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