Pull to refresh

Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

Reading time 3 min
Views 39K


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

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

Подключение к Raspberry



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

Подключение к VFD



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

Настройка VFD



На обратной стороне дисплея имеется четыре перемычки, позволяющие настроить скорость и режим работы. Замыкаем перемычку 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) если будет возможность, напишу об этом потом.



[update] добавил видео с RaspBMC


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

Articles