Page 1 of 1

BIGTREETECH BTT Pi TFT50 V2.0 - екран 5 дюймів для RaspberryPi

Posted: 19 Jul 2022 18:03
by hardlock
До того, як мені вдалося перемогти підключення рідного екранчика MKS TFT35 v1.0 до RaspberryPi, я встиг придбати 5-дюймовий монітор з DSI інтерфейсом для підключення до малини - BIGTREETECH BTT Pi TFT50 V2.0.
З одного боку, рішення не універсальне, як HDMI монітор, з іншого боку компактне підключення всього одним шлейфом до плати малини і все працює "з коробки".
IMG_20210910_201308.jpg
IMG_20210911_141147.jpg
Потім вигадав, як його закріпити замість рідного екрану.
IMG_20220523_114616.jpg
І все б нічого, але BIGTREETECH полінувалися або не знають як зробити керування підсвічуванням (backlight) програмно. Тому підсвічування дисплея горить постійно, навіть коли екран темний (вимкнено програму). Є тільки ручне регулювання яскравості підсвічування змінним резистором на платі...
Майже через цілий рік я вирішив усунути цю недоробку.
Вивчення проблеми.
Подивимося уважно на плату, як керується підсвічування. Змінний резистор змінює напругу від 0 до 3,3 Вольт на вході контролера, а він, у свою чергу, видає на інший свій вихід ШІМ сигнал для регулювання яскравості підсвічування.
Перемикач "DIR" (перевертає картинку на екрані) підключає один із входів контролера або до +3,3 або до землі. Мені перевертати картинку не потрібно, тому можна вхід підтягнути на землю або на плюс постійно. При демонтажі вказаного резистора картинка залишається в потрібному мені положенні - я так і залишив. Ніжки перемикача, які були припаяні до землі, піднімаємо, а центральний вивід підпаюємо до піднятої ноги змінного резистора.
IMG_20210914_122716_2.jpg
Схематично це виглядає так:
BTT_Pi_TFT50_backlight_upgrade_sch.GIF
BTT_Pi_TFT50_backlight_upgrade_sch.GIF (5.64 KiB) Viewed 759 times
Фото доопрацювання.
IMG_20220719_153843.jpg
IMG_20220719_155031.jpg
Дріт я підключив до GPIO16 (36й пін малини), але можна вибрати будь-який вільний. Після доопрацювання отримуємо наступний алгоритм роботи
1) у верхньому положенні перемикача підсвітка горить весь час, доки надходить живлення на екран (як і було раніше).
2) у нижньому положенні перемикача підсвітка буде включена тільки тоді, коли на дріт надходить 3,3 Вольта. Коли на цьому дроті 0 (земля) або він висить у повітрі - яскравість підсвічування мінімальна (розглянути практично неможливо).
Рівень яскравості в обох варіантах залежить від положення змінного резистора.

Тепер треба оформити програмну частину. Все взято звідси, працює бездоганно.
створюємо файл overlay "backlight-overlay.dts". для цього запускаємо редактор nano

Code: Select all

sudo nano ~/backlight-overlay.dts
копіюємо в нього наступний вміст (для gpio16):

Code: Select all

/dts-v1/;
/plugin/;

/ {
	compatible = "brcm,bcm2835";

	fragment@0 {
		target-path = "/soc";
		__overlay__ {
			backlight: backlight {
				compatible = "gpio-backlight";
				gpios = <&gpio 16 0>; /* GPIO_ACTIVE_HIGH */
				default-on;
			};
		};
	};
};
Зберігаємо (Ctrl+S) та виходимо з редактора nano (Ctrl+X).

в консолі вводимо наступну команду (компілюємо оверлєй):

Code: Select all

sudo dtc -@ -I dts -O dtb -o /boot/overlays/backlight.dtbo ~/backlight-overlay.dts
підключаємо оверлей підсвітки.
Для цього потрібно відредагувати файл /boot/config.txt

Code: Select all

sudo nano /boot/config.txt
додати в кінець 2 рядки:

Code: Select all

# backlight 
dtoverlay=backlight
Перезавантажуємось

Code: Select all

sudo reboot
якщо все підключено вірно, то підсвітка дисплею вмикнеться не відразу, а приблизно секунд через 6-8 після старту малини.