artko 4 Posted May 31, 2022 Share Posted May 31, 2022 Стартові вимоги - Маєте дісплейчик з тачскріном від MKS TS35 (наприклад Robin Nano V3 працює з таким) - Є одноплатний компьютер Orange Pi One/Lite (підозрюю, Orange Pi Zero також підійде) - Дуже кортить мати локальне керування вашим 3д принтером, яке відпало після встановлення прошивки Klipper на той самий принтер. Саме найперше, що треба зробити — встановити останній armbian під свою плату. Припустимо, це Orange Pi One. Завантажили образ (я використовую Armbian 22.05 Bullseye/cli , без всіляких домішок — напхати усякого хламу встигнемо ще. Записати можно balena etcher. Завантажились перший раз, побачили страшну чорну консольку, змінили пароль рута (за замовченням root / 1234 ) Так. хм. Виключаємо, та ліземо за дротами. Без купки дротів дісплейчик чогось працювати не хоче. Дивимось на картинку с призначенням гребінки i/o Orange Pi One, Lite, PC, PC2, PC Plus, Plus, Plus 2, Plus 2E, Prime (картинка з https://pcminipro.ru/orangepi/raspinovka-razemov-gpio-orange-pi/ ) а також на роз’єми MKS TS35 (картинка з https://github.com/willngton/3DPrinterConfig/blob/main/mks_ts35/mks_ts35_guide_archived.md ) У нашого одноплатника є два SPI, мені подобається більше SPI0, на нього буду чіпляти(для SPI1 метода така ж сама, різниця тільки у налаштуваннях). Сам MKS TS35 зроблений фактично з двух різних залізяк — контролер дисплею (Ilitek IL9341) та контролер тачскріну (ADS7846). Обидва для керування використовують SPI шину, керуючий компьютер смикає їх по черзі за необхідності. Зробимо табличку, куди треба втикнути: Пин на одноплатнику Пин на TS35 Функція PC0 (SPI0-MOSI) MOSI Передача даних PC1 (SPI0-MISO) MISO Приймання даних PC2 (SPI0-SCK) SCK Тактовий сигнал PC3 (SPI0-CS) LCD_CS Робота с дісплеем PA0 LCD_RS Дісплей: Дані/Команда PA1 TOUCH_CS Робота з тачскріном PA3 LCD_RST Дісплей: скидання PA6 TOUCH_INT Тачскрін: Подія натискання +5V BOARD_5V Живлення Ground GND Загальний +3.3V LCD_BLK Підсвічування дісплею Згідно с табличкой з’єднуємо девайси дротами. Можна спаяти, можна ардуінівскими перемичками, за бажанням. Згодом війде десь такий жах: Дуже уважно перевірити підключення живлення — якщо переплутати, є неабиякий шанс випускання магічного диму, після цього — або одноплатник, або дісплейчик піде впевненними кроками до смітника. Не заважить два, три рази пересвідчитися, що підключено як треба. Теперь треба закинути на одноплатник файли с конфігурациєю дісплея. (у вкладенні). Це звичайний текстовичок, який описує що, як, куди підключено. Закидуємо их в /boot/overlay-user будь-яким зручнім методом (наприклад, far manager або WinSCP. Це программи для ОС Windows, лінуксоїди i так знають, як це зробити Далі треба сходити в консольку, та виконати декілька команд. (або взяти зразу відкомпільовані файліки) cd /boot/overlay_user dtc -O dtb sun8i-h3-ads7628.dts -o sun8i-h3-ads7628.dtbo dtc -O dtb sun8i-h3-ili9341.dts -o sun8i-h3-ili9341.dtbo dtc -O dtb sun8i-h3-csPA01.dts -o sun8i-h3-csPA01.dtbo Це компілятор текстового файла dts с описом конфігурации в бінарний вид, який більше підходить для завантаження ядром. Якщо все добре, отримаете три файли *.dtbo, які слід закинути в /boot/dtb/overlay Теперь виконуемо штатний конфігуратор от армбиана armbian-config Завантажится программулька, System → Hardware дасть список оверлеев, доступних для системи. Там треба відмітити ads7628, ili9341, csPA01, spi-spidev, spi-add-cs1 Зберігаємо, перезавантажувати поки не потрібно, відкриваємо на редагування файл /boot/armbianEnv.txt там серед усього побачите рядочок с назвами того, що нещодавно вмикали: overlays=spi-add-cs1 spi-spidev csPA01 ili9341 ads7846 якщо оверлеї вмикаются не в тому порядку, треба відредагувати. (Робочий варіант вище, в експеріментах тач в мене не працював, доки не поправив порядок) після неї додаємо три нових: param_spidev_spi_bus=1 param_spidev_spi_cs=1 param_spidev_max_freq=48000000 зберігаємо, тепер можна і перезавантажувати. Якщо все раніше зроблено вірно — профіт, на дісплейчику повинні побігти рядочки завантаження системи та запрошення входу до системи. Останній крок — встановити графічну систему xorg apt install xorg xfce4 xserver-xorg-video-fbdev (останній пакет потрібен саме для alwinner систем) за шляхом /etc/X11/xorg.conf/d кладемо файлік 98-fbdev.conf з таким змістом: Section "Device" Identifier "myfb" Driver "fbdev" Option "fbdev" "/dev/fb0" EndSection та запускаемо x-сервер startx радіємо картинці: Сразу у вас майже 100 відсотків тач буде працювати не там, де треба. Калібруємо! cd /opt git clone https://github.com/kreijack/xlibinput_calibrator.git apt install libxi-dev libx11-dev libxrandr-dev cd /opt/xlibinput_calibrator/ make cd src DISPLAY=:0 ./xlibinput_calibrator –output-file-x11-config=test останню команду слід вводити в окремій консольці, коли x-server працює - на дісплеї картинка така як вище і вона повинна замінитися на калібровочну: Треба потикати олівцем у червоній хрестік, він буде переміщуватись по кутам. Отримаете вивід калібровочної таблиці типу: Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "CalibrationMatrix" "-0.859279 0.004338 0.914957 -0.017730 0.897817 0.063206 0.000000 0.000000 1.000000 " EndSection це треба закинути в файлік 99-calibration.conf за шляхом /etc/X11/xorg-conf.d та перезавантажити x-сервер. Усе, теперь можна потестити графичну оболонку sun8i-h3-ads7846.dtbo sun8i-h3-ads7846.dts sun8i-h3-csPA01.dtbo sun8i-h3-csPA01.dts sun8i-h3-ili9341.dtbo sun8i-h3-ili9341.dts 1 1 Quote Link to post Share on other sites
Sem_pai 0 Posted October 5, 2022 Share Posted October 5, 2022 Привіт! Дуже цікава стаття. Є питання. Чи можна підключити 3,2 дісплей (Ilitek IL9341) таким методом до OrangePi 3 LTS? В останніх версіях Армбіан метод modprobe не працює. Через оверлей в мене не вийшло. Я ще той Лінуксоід. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.