Есть три варианта подключения VGA монитора к одноплатному компьютеру Cubieboard:
- Конвертер HDMI→VGA (у нас под рукой такого не оказалось, искать было не спортивно);
- Baseboard - дороговато!
- Использовать выведенные ножки микроконтроллера и небольшую схему - так мы и поступили.
Схема
Мы использовали следующую схему:Микросхема 74AHCT04 - это четыре инвертирующих буфера. Соединив их по два последовательно, получаем два неинвертирующих буфера. Буферы нужны для конверсии логических уровней TTL в CMOS.
Добавлено 2014-05-04: Позже выяснилось, что начиная с версии Cubieboard 2012-09-09, буферы не требуется. То есть для корректной работы VGA достаточно трёх резисторов на 75 Ом. Однако сами мы это не проверяли. Далее описано создание платы с микросхемой.
Изготовление
Разводку печатной платы произвели в DesignSpark, вот исходники. Размер платы подобрали таким образом, чтобы она поместилась в корпус для VGA-гнезда. Изготовили плату по лазерно-утюжной технологии.Немного фотографий процесса сборки изделия:
Подключение
К плате Cubieboard необходимо подключить 7 проводов: VGA-R, VGA-G, VGA-B, LCD‑HSYNC, LCD‑VSYNC, VCC и GND. В соответствии с блок-схемой, на одноплатнике есть две группы вилок: Ext Port 1 и Ext Port 2. Мы произвели коммутацию так:Ext Port 1 | Ext Port 2 | |||
---|---|---|---|---|
LCD‑VSYNC | 27 | GND | 25 | |
LCD‑HSYNC | 30 | VGA-R | 27 | |
VCC | 43 | VGA-G | 29 | |
VGA-B | 31 |
Выходы подключаем к VGA-разъёму в соответствии со схемой выше.
Начальная проверка
После сборки и подключения схемы к Cubieboard мы проверили, что всё сделано правильно, загрузив ОС Android, предустановленную на внутреннюю Flash-память одноплатника. В процессе загрузки на подключенном мониторе появился логотип Android. После этого экран погас, но увиденного было достаточно, чтобы убедиться в работоспособности платы. Можно завершить сборку в корпусе.Настройка Linux
На нашем Cubieboard установлен Linux. За настройку параметров устройств отвечает файл script.bin. Но файл бинарный и напрямую не редактируется. Необходимо с помощью программы bin2fex преобразовать его в текстовый:sudo bin2fex /boot/script.bin /boot/script.fexРедактировать файл не имея графической оболочки можно в любом консольном текстовом редакторе. На Cubieboard по умолчанию установлен vim, но если вы не умеете им пользоваться, поставьте nano, он один из самых интуитивно понятных.
Доступно подробное описание всех параметров файла script.fex (script.bin).
Нас интересует раздел [disp_init]. Параметр screen0_output_mode отвечает за разрешение экрана. Следует обратить внимание на то, что нельзя поставить произвольное разрешение, нужно выбрать один из вариантов из списка доступных.
Для монитора 1024*768 у нас получились такие настройки:
[disp_init] disp_init_enable = 1 disp_mode = 0 screen0_output_type = 4 screen0_output_mode = 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После изменения файла script.fex необходимо сконвертировать его обратно в бинарный с помощью fex2bin:
sudo fex2bin /boot/script.fex /boot/script.binДля применения параметров потребуется перезагрузка Cubieboard:
reboot