З одного боку, рішення не універсальне, як HDMI монітор, з іншого боку компактне підключення всього одним шлейфом до плати малини і все працює "з коробки".
Потім вигадав, як його закріпити замість рідного екрану.
І все б нічого, але BIGTREETECH полінувалися або не знають як зробити керування підсвічуванням (backlight) програмно. Тому підсвічування дисплея горить постійно, навіть коли екран темний (вимкнено програму). Є тільки ручне регулювання яскравості підсвічування змінним резистором на платі...
Майже через цілий рік я вирішив усунути цю недоробку.
Вивчення проблеми.
Подивимося уважно на плату, як керується підсвічування. Змінний резистор змінює напругу від 0 до 3,3 Вольт на вході контролера, а він, у свою чергу, видає на інший свій вихід ШІМ сигнал для регулювання яскравості підсвічування.
Перемикач "DIR" (перевертає картинку на екрані) підключає один із входів контролера або до +3,3 або до землі. Мені перевертати картинку не потрібно, тому можна вхід підтягнути на землю або на плюс постійно. При демонтажі вказаного резистора картинка залишається в потрібному мені положенні - я так і залишив. Ніжки перемикача, які були припаяні до землі, піднімаємо, а центральний вивід підпаюємо до піднятої ноги змінного резистора.
Схематично це виглядає так:
Фото доопрацювання.
Дріт я підключив до GPIO16 (36й пін малини), але можна вибрати будь-який вільний. Після доопрацювання отримуємо наступний алгоритм роботи
1) у верхньому положенні перемикача підсвітка горить весь час, доки надходить живлення на екран (як і було раніше).
2) у нижньому положенні перемикача підсвітка буде включена тільки тоді, коли на дріт надходить 3,3 Вольта. Коли на цьому дроті 0 (земля) або він висить у повітрі - яскравість підсвічування мінімальна (розглянути практично неможливо).
Рівень яскравості в обох варіантах залежить від положення змінного резистора.
Тепер треба оформити програмну частину. Все взято звідси, працює бездоганно.
створюємо файл overlay "backlight-overlay.dts". для цього запускаємо редактор nano
- Код: Выделить всё
sudo nano ~/backlight-overlay.dts
копіюємо в нього наступний вміст (для gpio16):
- Код: Выделить всё
/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).
в консолі вводимо наступну команду (компілюємо оверлєй):
- Код: Выделить всё
sudo dtc -@ -I dts -O dtb -o /boot/overlays/backlight.dtbo ~/backlight-overlay.dts
підключаємо оверлей підсвітки.
Для цього потрібно відредагувати файл /boot/config.txt
- Код: Выделить всё
sudo nano /boot/config.txt
додати в кінець 2 рядки:
- Код: Выделить всё
# backlight
dtoverlay=backlight
Перезавантажуємось
- Код: Выделить всё
sudo reboot
якщо все підключено вірно, то підсвітка дисплею вмикнеться не відразу, а приблизно секунд через 6-8 після старту малини.