TFT01-2.2SP
Description
Screen http://www.elecfreaks.com/store/22%C3%82%E2%80%99-tft-lcd-tft0122sp-p-672.html Available in large quantities on ebay and aliexpress, see for example [1]
The SD card holder is also mounted on the Board.
Screen is based on the [[[ILI9341/en]]] chip in five-wire serial interface mode (SPI + Data/Command).
Connection to Wiren Board controller
The screen requires to connect 0, +3.3 V, 4 SPI lines, d/C line, RESET line. The led input must be supplied +3.3 V to turn on the backlight.
It is most convenient to connect the screen to the UEXT2 connector, and the software I2C lines are configured in GPIO mode.
Settings
Make sure that the dts file (/boot/dts/) contains imx233-wirenboard28.dts is not activated software I2C on UEXT2.
Убедитесь, что линия CS UEXT2 (GPIO 91, 25 @ CON2, UEXT2 CS/GPIO) настроена для использования в качестве chip-select SPI master'а и при этом не занята под другие драйвера (включая spidev).
Вот образец правильной конфигурации:
ssp1: ssp@80034000 { #address-cells = <1>; #size-cells = <0>; compatible = "fsl,imx23-spi"; pinctrl-names = "default"; pinctrl-0 = <&spi2_pins_nocs>; status = "okay"; cs-gpios = <&gpio0 17 0 &gpio2 28 0 &gpio1 20 0 &gpio2 27 0 /* 91 25 @ CON2 UEXT2 CS/GPIO */ >;
- CS UEXT2 (GPIO 91) используется в качестве chipselect для устроства номер 6 на шине 1.
Закомментируйте в dts всё, что связано с spi1.6
Сборка драйвера
Драйвер fbtft не включён в стандартную поставку Wiren Board, и для его включения в сборку Wiren Board придётся пересобрать ядро. Сделать это нужно по инструкциям из статьи Сборка ядра. Но после завершения сборки стандартного ядра перед пунктом Пересборка нужно добавить в ядро файлы модуля fbtft. Зайдите в папку build_kernel/KERNEL, и выполните инструкции из https://github.com/notro/fbtft
Мы рекомендуем сначала собрать драйвер как модуль - тогда он не будет загружаться автоматически (и ломать систему при неверных параметрах); его нужно будет подгружать отдельной командой после загрузки основной системы
Команда для загрузки драйвера устройства
root@wirenboard:~# modprobe fbtft_device custom name=fb_ili9341 speed=100000 busnum=1 cs=6 buswidth=8 gpios=reset:51,dc:53,led:3
Если вам не нужно контролировать подсветку (например, её можно подлючить просто к питанию 3.3В), то параметр led можно опустить.
speed - обязательный параметр, потому что по его наличию драйвер определяет, что дисплей подключён по SPI, а не по параллельному порту (если вы его не указали, то драйвер не будет загружаться, требуя указать дополнительные gpio, например, 'wr')
Ветка на форуме Raspberry Pi, где разработчик драйвера отвечает на вопросы по дисплею http://www.raspberrypi.org/phpBB3/viewtopic.php?f=44&t=52882
Инициализация драйвера
Драйвер https://github.com/notro/fbtft не поддерживает конфигурацию через Device Tree и инициализируется с помощью параметров модуля.
TO BE DONE
Чтобы загружать драйвер автоматически при загрузке системы, внесите соответствующую строку в /etc/modules
Работа с экраном
После успешной инициализации драйвера, экран должен стать чёрного цвета. Устройство /dev/fb0 - фреймбуфер, который можно использовать для работы графических приложений. Кроме этого, драйвер fbcon (собран по-умолчанию) автоматически использует экран в качестве вывод текстовой консоли /dev/tty1
Пример вывода текста на экран:
echo "Hello Wiren Board" > /dev/tty1