З одного боку, рішення не універсальне, як HDMI монітор, з іншого боку компактне підключення всього одним шлейфом до плати малини і все працює "з коробки". Потім вигадав, як його закріпити замість рідного екрану. І все б нічого, але BIGTREETECH полінувалися або не знають як зробити керування підсвічуванням (backlight) програмно. Тому підсвічування дисплея горить постійно, навіть коли екран темний (вимкнено програму). Є тільки ручне регулювання яскравості підсвічування змінним резистором на платі...
Майже через цілий рік я вирішив усунути цю недоробку.
Вивчення проблеми.
Подивимося уважно на плату, як керується підсвічування. Змінний резистор змінює напругу від 0 до 3,3 Вольт на вході контролера, а він, у свою чергу, видає на інший свій вихід ШІМ сигнал для регулювання яскравості підсвічування.
Перемикач "DIR" (перевертає картинку на екрані) підключає один із входів контролера або до +3,3 або до землі. Мені перевертати картинку не потрібно, тому можна вхід підтягнути на землю або на плюс постійно. При демонтажі вказаного резистора картинка залишається в потрібному мені положенні - я так і залишив. Ніжки перемикача, які були припаяні до землі, піднімаємо, а центральний вивід підпаюємо до піднятої ноги змінного резистора. Схематично це виглядає так: Фото доопрацювання. Дріт я підключив до GPIO16 (36й пін малини), але можна вибрати будь-який вільний. Після доопрацювання отримуємо наступний алгоритм роботи
1) у верхньому положенні перемикача підсвітка горить весь час, доки надходить живлення на екран (як і було раніше).
2) у нижньому положенні перемикача підсвітка буде включена тільки тоді, коли на дріт надходить 3,3 Вольта. Коли на цьому дроті 0 (земля) або він висить у повітрі - яскравість підсвічування мінімальна (розглянути практично неможливо).
Рівень яскравості в обох варіантах залежить від положення змінного резистора.
Тепер треба оформити програмну частину. Все взято звідси, працює бездоганно.
створюємо файл overlay "backlight-overlay.dts". для цього запускаємо редактор nano
Code: Select all
sudo nano ~/backlight-overlay.dts
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;
};
};
};
};
в консолі вводимо наступну команду (компілюємо оверлєй):
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
Code: Select all
# backlight
dtoverlay=backlight
Code: Select all
sudo reboot