Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Процессорные модули » SK-ATSAMA5D3-SODIMM
SK-ATSAMA5D3 изменение яркости подсветки LCD с помощью PWM
rain62ster
Добавлено 07.02.2019 07:36 Редактировалось 07.02.2019 07:39
0
Сообщение: 1
rain62ster
0

Пункты: 3830
Регистрация: 02.10.2009
Хотелось бы иметь возможность изменять яркость подсветки LCD. Смущает несоответствие: в файле at91-sama5d3_sk_800x480.dts прописана строка
Код
<AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* PA24 periph A LCDPWM */


То есть, вроде бы источником PWM для LCD служит пин PA24, а если обратиться к Инструкции Пользователя, то видим что источником PWM сигналов служат пины PWM1 - PB0 и PWM2 - PB1.

Так же из схемы материнской платы SK-ATSAMA5D3-MB_V1A следует, что пин управления яркостью LCD подключен к PWM1(PB0, 52 пин разъема SODIMM)
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 07.02.2019 13:39 Редактировалось 07.02.2019 13:50 Сообщение: 2
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
[quote]Хотелось бы иметь возможность изменять яркость подсветки LCD. Смущает несоответствие: в файле at91-sama5d3_sk_800x480.dts прописана строка
Код
<AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* PA24 periph A LCDPWM */


То есть, вроде бы источником PWM для LCD служит пин PA24, а если обратиться к Инструкции Пользователя, то видим что источником PWM сигналов служат пины PWM1 - PB0 и PWM2 - PB1.

Так же из схемы материнской платы SK-ATSAMA5D3-MB_V1A следует, что пин управления яркостью LCD подключен к PWM1(PB0, 52 пин разъема SODIMM)[/quote]


бегло глянул таблицу, схему, доку.. действительно есть расхождения
pa24 - это выделенный контакт lcdpwm и управляется из узла lcd
pb0, pb1 - pwm "общего назначения"
а что сейчас по факту - подсветка управляется или как?
у меня нет именно такого комплекта, т.ч. помощь будет чисто теоретическая..
сначала надо убедится, что физика соединения правильная и контакт находится под управлением
для этого надо определить PB0 как gpio и попробовать поуправлять им через тот же sysfs
если экран начнет управляемо включаться-выключаться, тогда уже переходить к pwm настройкам
чтобы не изобретать лишнего пропишите PB0 с функцией led-gpio, так проще всего - появится класс gpio-leds и там отладочный светодиод с функцией brightness

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.02.2019 14:50 Редактировалось 07.02.2019 15:03 Сообщение: 3
sasamy
4.70

Пункты: 76914
Регистрация: 14.08.2009
Цитата
Так же из схемы материнской платы SK-ATSAMA5D3-MB_V1A следует, что пин управления яркостью LCD подключен к PWM1(PB0, 52 пин разъема SODIMM)


По даташиту на процессор PB0/GTX0/PWMH0

PB0 PWM канал 0, пин Peripheral B

Измените DTS at91-sama5d3_sk_800x480.dts (изменения выделены жирным текстом)

1) Добавить подсветку на PWM

Цитата

#include "sama5d3.dtsi"

/ {
model = "SAMA5D3 Starterkit";
compatible = "sk,sama5d3-sk", "sk,tft800x480", "atmel,sama5d3", "atmel,sama5";

chosen {
bootargs = "console=ttyS0,115200";
};

memory {
reg = <0x20000000 0x10000000>;
};

clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;

main_clock: clock@0 {
compatible = "atmel,osc", "fixed-clock";
clock-frequency = <12000000>;
};
};


backlight {
compatible = "pwm-backlight";
pwms = <&pwm0 0 500000>;
brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <7>;
};



2) Изменить пин управления подсветкой

вместо
<AT91_PIOA 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* PA24 periph A LCDPWM */


Цитата

pinctrl_lcd_sk: lcd-0-sk {
atmel,pins =
<AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE /* PB0 periph B LCDPWM */


3) Включить драйвер PWM (он уже описан - просто включить)

Цитата

pwm0: pwm@f002c000 {
#pwm-cells = <2>;
status = "okay";
};



Включить в конфиге ядра сборку необходимых драйверов

выполнить в корне исходников buildroot

make linux-menuconfig

выбрать через меню

Device Drivers --->
[*] Pulse-Width Modulation (PWM) Support --->
<*> Atmel PWM support

Device Drivers --->
Graphics support --->
[*] Backlight & LCD device support --->
<*> Generic PWM based Backlight Driver

пересобрать ядро

make
Спуститься к концу Подняться к началу
Персональная информация
rain62ster
Добавлено 07.02.2019 16:00 Сообщение: 4
rain62ster
0

Пункты: 3830
Регистрация: 02.10.2009
Крайне Вам признателен. Вас уже кто-то называл добрым волшебником. Более точных слов не найти.
Спуститься к концу Подняться к началу
Персональная информация
rain62ster
Добавлено 08.02.2019 10:17 Редактировалось 08.02.2019 11:45 Сообщение: 5
rain62ster
0

Пункты: 3830
Регистрация: 02.10.2009
Точно выполнил Ваши советы. Но что то не срослось. После погасания логотипа сигнал управления яркостью уходит а 0 и там остается. Менял
значения в строке default-brightness-level = <7>; на 32, 64, 128. Результат тот же. подсветка отключена. Сигнал на GPIOB0 равен нулю.
В папке /sys/class/backlight имеются две подпапки backlight и backlight.4 со всеми необходимыми файлами.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.02.2019 11:56 Редактировалось 08.02.2019 13:12 Сообщение: 6
sasamy
4.70

Пункты: 76914
Регистрация: 14.08.2009
Скиньте куда-нибуть лог загрузки (выхлоп dmesg), может там что есть. У меня нет такой платы чтобы проверить.

Цитата

default-brightness-level = <7>; на 32, 64, 128


1) допустимые значения уровня яркости от 0 до 7 в данном случае (min=0 max=7)

brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <7>;

2) тут описано какой <PWM канал частота> - можно попробовать частоту изменить

pwms = <&pwm0 0 500000>;

Еще отключите в ядре LCDC PWM чтобы не мешал

make linux-menuconfig

Device Drivers --->
Graphics support --->
[*] Backlight & LCD device support --->
[ ] Atmel LCDC Contrast-as-Backlight control

оставьте там только
<*> Generic PWM based Backlight Driver
Спуститься к концу Подняться к началу
Персональная информация
rain62ster
Добавлено 11.02.2019 07:34 Редактировалось 11.02.2019 07:35 Сообщение: 7
rain62ster
0

Пункты: 3830
Регистрация: 02.10.2009
Цитата
Скиньте куда-нибуть лог загрузки (выхлоп dmesg), может там что есть. У меня нет такой платы чтобы проверить.

Цитата

default-brightness-level = <7>; на 32, 64, 128


1) допустимые значения уровня яркости от 0 до 7 в данном случае (min=0 max=7)

brightness-levels = <0 4 8 16 32 64 128 255>;
default-brightness-level = <7>;

2) тут описано какой <PWM канал частота> - можно попробовать частоту изменить

pwms = <&pwm0 0 500000>;

Еще отключите в ядре LCDC PWM чтобы не мешал

make linux-menuconfig

Device Drivers --->
Graphics support --->
[*] Backlight & LCD device support --->
[ ] Atmel LCDC Contrast-as-Backlight control

оставьте там только
<*> Generic PWM based Backlight Driver


выполнил. результат не изменился.
dmesg
Скрытый текст
Скрытый текст виден только зарегистрированным пользователям.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 11.02.2019 14:08 Редактировалось 11.02.2019 14:16 Сообщение: 8
sasamy
4.70

Пункты: 76914
Регистрация: 14.08.2009
Цитата
pwm-backlight backlight.4: unable to request PWM, trying legacy API


в /sys/class/pwm есть что-нибуть ?

еще я ошибся

Цитата

2) тут описано какой <PWM канал частота> - можно попробовать частоту изменить

pwms = <&pwm0 0 500000>;


500000 - это не частота а период в наносекундах
Спуститься к концу Подняться к началу
Персональная информация
rain62ster
Добавлено 11.02.2019 14:42 Редактировалось 11.02.2019 15:53 Сообщение: 9
rain62ster
0

Пункты: 3830
Регистрация: 02.10.2009
Цитата

в /sys/class/pwm есть что-нибуть ?


Даже директории /sys/class/pwm нет.

PS Прошу прощения, ошибка вышла.я же пересобрал ядро без PWM потому что индикатор вообще был погашен, а работать как то надо. Сейчас пересоберу, посмотрю

PPS Пересобрал ядро, залил. Обновил dtb - директории /sys/class/pwm нет.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-ATSAMA5D3-SODIMM