Дмитрий
Дмитрий
1769 просмотров1 комментариев

Заметка: Настройка сенсора 5” сенсорного TFT дисплея HDMI 800x480 с SPI сенсором XPT2046

Это короткая заметка как запустить сенсор на Repka Pi. Более подробная статья будет позже.

Я собирал из исходников Uboot-repka, идем на сайт и скачиваем архив с DTS

По иронии судьбы для сборки потребуется Ubuntu x86 или другой Linux. На Repka Pi 3 собрать не получится!

Небольшое описание сборки dtb из исходника

Распаковываем архив

unzip u-boot-v2022.04.zip

и переходим в папку

cd u-boot-v2022.04

Устанавливаем пакеты

sudo apt-get update`
sudo apt-get -y install gcc-aarch64-linux-gnu

Очистка файлов предыдущей сборки

make clean

Сборка

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
make Repka_H5_defconfig
make dtbs

ВНИМАНИЕ: При компиляции могут потребоваться и другие пакеты! Тут самостоятельно, все что ставил уже не помню!

Редактируем dts

dts находятся по пути arch\arm\dts в папке u-boot-v2022.04

Рассмотрим на примере sun50i-h5-repka-pi3-alt-1.2ghz.dts, открываем файл

Находим

&pio {
		spi0_cs1: spi0_cs1 {	
			pins = "PA3";
			function = "gpio_out";
			output-high;
		};
};

Меняем на

&pio {
		spi0_cs1: spi0_cs1 {		
			pins = "PA3";
			function = "gpio_out";
			output-high;
		};
		ads7846_pins: ads7846_pins {
			pins= "PA2";
			function = "irq";
   		};
};

Находим

&spi0 {
	pinctrl-names = "default", "default";
	pinctrl-1 = <&spi0_cs1>;
	cs-gpios = <0>, <&pio 0 3 0>; /* PA3 */

	status = "okay";
	spidev@0 {
		compatible = "rohm,dh2228fv";  
		status = "okay";
		reg = <0>;
		spi-max-frequency = <1000000>;
	};
	spidev@1 {
		compatible = "rohm,dh2228fv";  
		status = "okay";
		reg = <1>;
		spi-max-frequency = <1000000>;
	};
};

Меняем на

&spi0 {
	pinctrl-names = "default", "default";
	pinctrl-1 = <&spi0_cs1>;
	cs-gpios = <0>, <&pio 0 3 0>; /* PA3 */

	status = "okay";
	ads7846@0 {
		compatible = "ti,ads7846";
		reg = <0>; /* Chip Select 0 */
		status = "okay";
		pinctrl-names = "default";
		pinctrl-0 = <&ads7846_pins>;
		spi-max-frequency = <2000000>;
		interrupt-parent = <&pio>;
		interrupts = <0 2 2>; /* PA2 IRQ_TYPE_EDGE_FALLING */
		pendown-gpio = <&pio 0 2 0>; /* PA2 */

		/* driver defaults, optional */
		ti,x-min = /bits/ 16 <0>;
		ti,y-min = /bits/ 16 <0>;
		ti,x-max = /bits/ 16 <0x0FFF>;
		ti,y-max = /bits/ 16 <0x0FFF>;
		ti,pressure-min = /bits/ 16 <0>;
		ti,pressure-max = /bits/ 16 <0xFFFF>;
		ti,x-plate-ohms = /bits/ 16 <400>;
	};
	
	spidev@1 {
		status = "disabled";
	};
};

Теперь можно собрать новый dtb и заменить им файл sun50i-h5-repka-pi3.dtb на карте в папке boot

Настройка со стороны Repka Pi

Устанавливаем пакет

apt-get install xserver-xorg-input-evdev

Переименовываем файл

cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf

Выполняем reboot и смотрим как работает сенсор

Калибровка

Устанавливаем пакет

apt-get install xinput-calibrator

Запускаем

DISPLAY=:0.0 xinput_calibrator

Сам калибровку не выполнял! Как выполню дополню Заметку


Комментарии (1)

Для участия в обсуждении вы должны быть авторизованным пользователем
anatoly_ryabov
anatoly_ryabov  

Супер!
А можно фотки посмотреть с работающим уже экраном?

Новые посты

Навигация

ВойтиРегистрацияТемы