TFT01-2.2SP

Материал из Wiren Board
Это утверждённая версия страницы. Она же — наиболее свежая версия.
Другие языки:

Описание

Экран http://www.elecfreaks.com/store/22%C3%82%E2%80%99-tft-lcd-tft0122sp-p-672.html Доступен в больших количествах на ebay и aliexpress, см. например [1]

2.2SP_A.JPG

На плате также смонтирован держатель для SD-карты.

Экран на чипе ILI9341 в режиме пятипроводного последовательного интерфейса (SPI + Data/Command).

Подключение к Wiren Board

Экран требует для подключения 0, +3.3V, 4 линии SPI, линию D/C, линию RESET. На вход LED надо подать +3.3V для включения подсветки.

Удобнее всего подключать экран к разъёму UEXT2, при этом линии software I2C конфигурируются в режиме GPIO.

Настройки

Убедитесь, что в dts-файле (в /boot/dts/) imx233-wirenboard28.dts не активирован программный I2C на 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