TFT01-2.2SP: различия между версиями

Материал из Wiren Board
Строка 46: Строка 46:
root@wirenboard:~# modprobe fbtft_device custom name=fb_ili9341 speed=100000 busnum=1 cs=6 buswidth=8 gpios=reset:51,dc:53,led:3
root@wirenboard:~# modprobe fbtft_device custom name=fb_ili9341 speed=100000 busnum=1 cs=6 buswidth=8 gpios=reset:51,dc:53,led:3
</pre>
</pre>
Если вам не нужно контролировать подсветку (например, её можно подлючить просто к питанию 3.3В), то параметр led можно опустить.


speed - обязательный параметр, потому что по его наличию драйвер определяет, что дисплей подключён по SPI, а не по параллельному порту (если вы его не указали, то драйвер не будет загружаться, требуя указать дополнительные gpio, например, 'wr')
speed - обязательный параметр, потому что по его наличию драйвер определяет, что дисплей подключён по SPI, а не по параллельному порту (если вы его не указали, то драйвер не будет загружаться, требуя указать дополнительные gpio, например, 'wr')
Ветка на форуме Raspberry Pi, где разработчик драйвера отвечает на вопросы по дисплею http://www.raspberrypi.org/phpBB3/viewtopic.php?f=44&t=52882


==Инициализация драйвера==
==Инициализация драйвера==

Версия 13:22, 15 декабря 2013

Описание

Экран 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.

Сборка драйвера

Драйвер fbtft не включён в стандартную поставку Wiren Board. Инструкции по сборке приведены на https://github.com/notro/fbtft Удобнее сначала собрать драйвер как модуль. Зайдите в папку build_kernel/KERNEL, и выполните инструкции из https://github.com/notro/fbtft

Закомментируйте в dts всё, что связано с spi1.6

Команда для загрузки драйвера устройства

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