[Из песочницы] Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

69ee1fc0c30705395ede4d6eb4555707.jpgДля подключения дисплея 16×2 символов к своей Raspberry Pi я выбрал VFD Futaba GP1183A01B. Чем он хорош? Во-первых, это вымирающий вид, дающий «теплый ламповый» люминесцентный свет приятного зеленого цвета (он правда зеленый, это что-то фотоаппарат врет). Во-вторых, для коммуникации он использует последовательный протокол, а значит его можно подключить всего тремя проводами, без использования каких-либо дополнительных приспособлений, а коммуникация с ним будет идти через /dev/tty. В-третьих, питания ему надо как раз 5 вольт, которые уже есть (и даже хватает, правда не всегда).

Я его подключил три года назад, но статью сел писать сейчас — отвалился от дисплея сигнальный провод и я заодно решил рассказать про этот дисплей. Все-таки двольно легко подключается. И они еще продаются!

Подключение к Raspberry 16d8c2fcbe8ecf704f20bad826c63262.jpgПодключаемся через пины GPIO, расположенные слева вверху платы. Нас интересует верхний ряд — первый пин (+5V), третий (GND) и четвертый (TX). По стандартной нумерации это 2, 6 и 8 пины.Мощности на пине +5V хватает впритык. Если на Raspberry Pi использовать видео, а не HDMI, то VFD не включится. Можно подвести +5V отдельно, например от USB-хаба от которого питается «малинка» — взять красный и черный (GND) провода (обрезать ненужный USB-кабель), не забыв замкнуть черный с GND от GPIO. У меня сейчас так и сделано.

Подключение к VFD 12229ed2a65f5d4dd2f8b575c2825476.jpgСверху у дисплея есть ряд контактных отверстий для пайки. Нас интересуют левые три в правом блоке из шести отверстий. Первое (+5V), второе (RX), третье (GND). Припаеваем!

Настройка VFD c263f08b9788d6731ad26ae4a71975c1.jpgНа обратной стороне дисплея имеется четыре перемычки, позволяющие настроить скорость и режим работы. Замыкаем перемычку J1 для того, чтобы скорость была 9600 Бод. В принципе он тянет и 115200, но там начинают пробиваться помехи.

Настройка ядра На используемый нами пин идет вывод сообщений ядра при загрузке (сюрприз!). Чтобы их было видно, надо настроить скорость последовательной консоли — в файле /boot/cmdline.txt надо определить параметр console=ttyAMA0,9600. Файл может быть таким: dwc_otg.lpm_enable=0 console=ttyAMA0,9600 kgdboc=ttyAMA0,9600 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait Настройка userland Чтобы после загрузки ничего не выводилось на VFD без нашего участия в файле /etc/inittab надо закомментировать последнюю строчку: #T0:23: respawn:/sbin/getty -L ttyAMA0 9600 vt100 Фан Для вывода на экран можно использовать команду echo, например: echo «Privet, Habrahabr!» > /dev/ttyAMA0 Возможности экрана довольно велики, можно почитать спецификацию (поискать в Гугле), но я приведу некоторые команды, которыми сам пользуюсь:

очистить экран и поместить курсор в левый верхний угол

echo -en »\x0C» > /dev/ttyAMA0 от минимальной до максимальной яркости

echo -en »\x1F\x58\x01» > /dev/ttyAMA0 echo -en »\x1F\x58\x02» > /dev/ttyAMA0 echo -en »\x1F\x58\x03» > /dev/ttyAMA0 … echo -en »\x1F\x58\x08» > /dev/ttyAMA0 выключить дисплей

echo -en »\x1F\x28\x61\x40\x00» > /dev/ttyAMA0 включить дисплей

echo -en »\x1F\x28\x61\x40\x01» > /dev/ttyAMA0 Еще Фан Можно использовать LCDProc для вывода на этот экранчик всяческой информации, например, RaspBMC может через LCDProc выводить на него информацию о текущем пункте меню, состояние воспроизведения. Настройка на RaspBMC потребовала написания драйвера для LCDProc, но это было совсем нетрудно (было удалено четыре строки, рисующие рамку из стандартного драйвера text) если будет возможность, напишу об этом потом. На фотографиях смазанный текст, так как LCDProc активно использует бегущую строку.93dd3441e1c63ab2a320847be772216a.jpg448d621f8a6f9eb9e66d3076bfab9b8b.jpg

К сожалению, руки пока не дошли до русского языка, но он там есть (CP866)!

© Habrahabr.ru