Подключение LCD дисплея к Raspberry PI

lcd_raspberry

Сенсорный TFT LCD-дисплей превращает Raspberry PI в портативное устройство управлять которым можно вне зависимости от внешних источников сигнала (ТВ, монитор).

Характеристики

Тип дисплея: TFT
Интерфейс: SPI
Сенсор: резистивный
Контроллер сенсора: XPT2046
Кол-во цветов: 65536
Разрешение: 320*240

lcd_raspberry

lcd_raspberry

lcd_raspberry

Установка и настройка драйвера дисплея в системе Rasbian

Проверено на Raspberry Pi «B» и Raspberry Pi «2B»

Для полноценной работы дисплея необходима установка драйвера FBTFT. На момент установки драйвера текущая версия Rasbian была 3.18.7+.

Меняем источник сигнала с HDMI на подключенный дисплей.
В файле 99-fbturbo.conf меняем значение FB0 на FB1

pi# nano /usr/share/X11/xorg.conf.d/99-fbturbo.conf

lcd_raspberry

Активируем аппаратный интерфейс SPI

Это можно сделать через утилиту raspi-config.

lcd_raspberry

Исключаем spi-bcm2708 из списка

lcd_raspberry

Загружаем и устанавливаем драйвера
pi# REPO_URI=https://github.com/notro/rpi-firmware rpi-update.
Обновление весит порядка 45Mb. После установки необходимо перезагрузить устройство.

lcd_raspberry

Редактируем файл модуля ядра

pi# nano /etc/modules 
snd-bcm2835
spi-bcm2708
fbtft_device name=waveshare32b gpios=dc:22,reset:27 
speed=48000000 waveshare32b width=320 height=240 
buswidth=8 
init=-1,0xCB,0x39,0x2C,0x00,0x34,0x02,-1,0xCF,0x00,0XC1,0X30,
-1,0xE8,0x85,0x00,0x78,-1,0xEA,0x00,0x00,-1,0xED,0x64,0x03,0X12,
0X81,-1,0xF7,0x20,-1,0xC0,0x23,-1,0xC1,0x10,-1,0xC5,0x3e,0x28,
-1,0xC7,0x86,-1,0x36,0x28,-1,0x3A,0x55,-1,0xB1,0x00,0x18,-1,0xB6,
0x08,0x82,0x27,-1,0xF2,0x00,-1,0x26,0x01,-1,0xE0,0x0F,0x31,0x2B,
0x0C,0x0E,0x08,0x4E,0xF1,0x37,0x07,0x10,0x03,0x0E,0x09,0x00,
-1,0XE1,0x00,0x0E,0x14,0x03,0x11,0x07,0x31,0xC1,0x48,0x08,0x0F,0x0C,
0x31,0x36,0x0F,-1,0x11,-2,120,-1,0x29,-1,0x2c,
-3 ads7846_device model=7846 cs=1 gpio_pendown=17 speed=1000000 
keep_vref_on=1 swap_xy=0 pressure_max=255 x_plate_ohms=60 
x_min=200 x_max=3900 y_min=200 y_max=3900

Строка fbtft_device name=waveshare32b указывает на использование модуля ads7846
Таблицу модулей для разных видом дисплеев можно посмотреть здесь

Редактируем файл cmdline.txt

pi# nano /boot/cmdline.txt
Удаляем все строки и вставляем

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 
root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline 
rootwait fbtft_device.custom fbtft_device.name=waveshare32b 
fbtft_device.gpios=dc:22,reset:27 fbtft_device.bgr=1 
fbtft_device.speed=48000000 fbcon=map:10 
fbcon=font:ProFont6x11 logo.nologo dma.dmachans=0x7f35 
console=tty1 consoleblank=0 fbtft_device.fps=50 
fbtft_device.rotate=0

Параметр fbtft_device.name=waveshare32b меняем на тип своего дисплея, если у вас не waveshare32b

Добавляем в автозагрузку запуск графической оболочки

add su -l pi -c startx

Обновление системы кроме, загрузчика

sudo apt-mark hold raspberrypi-bootloader
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install rpi-update
sudo SKIP_KERNEL=1 rpi-update

Если загрузчик обновился, то необходимо выполнить

pi# sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=builtin 
rpi-update
pi# sudo reboot

Изменение ориентации экрана

Открываем файле /boot/cmdline.txt
Изменяем параметр с fbtft_device.rotate=0 на fbtft_device.rotate=90

Блог о сетевых устройствах, тестировании различных устройств. На сайте вы найдете инструкции для настройки различных устройств. А раздел "Путешествие" поможет познакомиться с интересными местами.