Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:8
Форум » starterkit.ru » Процессорные модули » SK-T507-SODIMM
управление GPIO на SK-T507-SODIMM
baikoff
Добавлено 12.05.2025 17:58 Редактировалось 12.05.2025 20:52
0
Сообщение: 1
baikoff
0

Пункты: 2191
Регистрация: 25.04.2025
Здравствуйте.

Подскажите, каким образом управлять GPIO на модуле?

конфигурация sk_tst_defconfig.

настраивал ядро: появилось /sys/class/gpio

каким образом сконфигурировать порт (файл dst править и т.п.)?
и затем как в Linux менять значение порта?

Спасибо.
Спуститься к концу Подняться к началу
Персональная информация
baikoff
Добавлено 12.05.2025 20:53 Сообщение: 2
baikoff
0

Пункты: 2191
Регистрация: 25.04.2025
в этой теме нашел ответ
GPIO
Спуститься к концу Подняться к началу
Персональная информация
rez74
Добавлено 17.11.2025 13:06 Сообщение: 3
rez74
0

Пункты: 391
Регистрация: 17.09.2024
Что-то не получается управлять пинами.
У меня нет описания в DT pd20 - прекрастно управляется с
gpioset 0 116=1 или gpioset 0 116=1
Пин встает в "1" или "0".

А вот с пинами PE13 и PE14 какая-то беда. Их так же нет в DT, но вот как работают команды gpioset 0 141=1(0) пин уходит в 3,3 и тут же скатывается в 0,2 В, после set 0 пин из 0,2 уходит в 0В.

пины в системе одинаковы
# gpioinfo gpiochip0 | grep -wE '116|142'
line 116: unnamed unused output active-high
line 141: unnamed unused output active-high
line 142: unnamed unused output active-high


нагрузка одинаковая 20 кОм. Попробовал через sys - работает. Описал в DT, подтянул драйвер led к этим пинам, и управляется через
echo 1 > /sys/class/leds/my_pin

работает. костыль.

в T507 не все пины одинаковые? такой чувство, как будь-то при gpioset пин работает как open drain, а не output
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 17.11.2025 13:54 Сообщение: 4
sasamy
4.71

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

в T507 не все пины одинаковые?


материнская плата какая ? штатно эти пины для spi используются и на SK-T507-SODIMM-MB к ним подключен spi-can mcp2515
Спуститься к концу Подняться к началу
Персональная информация
rez74
Добавлено 18.11.2025 07:50 Сообщение: 5
rez74
0

Пункты: 391
Регистрация: 17.09.2024
Цитата
материнская плата какая ?


SK-T507-SODIMM-MB_V1A

spi-can mcp2515 на других пинах, на PH4...PH8
Спуститься к концу Подняться к началу
Персональная информация
rez74
Добавлено 18.11.2025 08:37 Сообщение: 6
rez74
0

Пункты: 391
Регистрация: 17.09.2024
мы про что-то разное говорим. по даташиту на T507

PE13 I/O NCSI_D9 PE_EINT13
PE14 I/O NCSI_D10 PE_EINT14

тут нет ни каких spi
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.11.2025 10:08 Сообщение: 7
sasamy
4.71

Пункты: 93432
Регистрация: 14.08.2009
Цитата
мы про что-то разное говорим. по даташиту на T507

PE13 I/O NCSI_D9 PE_EINT13
PE14 I/O NCSI_D10 PE_EINT14

тут нет ни каких spi


я немного промазал - штатно там gpio-spi для варианта c lvds и к нему подключен штатно тачскрин

gpio_spi_ts: spi-ts {
compatible = "spi-gpio";
#address-cells = <1>;
#size-cells = <0>;

sck-gpios = <&pio PE 16 GPIO_ACTIVE_HIGH>;
mosi-gpios = <&pio PE 15 GPIO_ACTIVE_HIGH>;
miso-gpios = <&pio PE 14 GPIO_ACTIVE_HIGH>;
cs-gpios = <&pio PE 13 GPIO_ACTIVE_HIGH>;
num-chipselects = <0>;

tsc2046@0 {
compatible = "ti,tsc2046";

тачскрин там 100% работает на этих gpio если что ну а если есть сомнения по поводу настроек буферов gpio то это можно корректировать в самом gpioset

Цитата

# gpioset -h
Usage: gpioset [OPTIONS] <chip name/number> <offset1>=<value1> <offset2>=<value2> ...

Set GPIO line values of a GPIO chip and maintain the state until the process exits

Options:
-h, --help: display this message and exit
-v, --version: display the version and exit
-l, --active-low: set the line active state to low
-B, --bias=[as-is|disable|pull-down|pull-up] (defaults to 'as-is'):
set the line bias

-D, --drive=[push-pull|open-drain|open-source] (defaults to 'push-pull'):
set the line drive mode

-m, --mode=[exit|wait|time|signal] (defaults to 'exit'):
tell the program what to do after setting values
-s, --sec=SEC: specify the number of seconds to wait (only valid for --mode=time)
-u, --usec=USEC: specify the number of microseconds to wait (only valid for --mode=time)
-b, --background: after setting values: detach from the controlling terminal

Biases:
as-is: leave bias unchanged
disable: disable bias
pull-up: enable pull-up
pull-down: enable pull-down

Drives:
push-pull: drive the line both high and low
open-drain: drive the line low or go high impedance
open-source: drive the line high or go high impedance

Modes:
exit: set values and exit immediately
wait: set values and wait for user to press ENTER
time: set values and sleep for a specified amount of time
signal: set values and wait for SIGINT or SIGTERM

Note: the state of a GPIO line controlled over the character device reverts to default
when the last process referencing the file descriptor representing the device file exits.
This means that it's wrong to run gpioset, have it exit and expect the line to continue
being driven high or low. It may happen if given pin is floating but it must be interpreted
as undefined behavior.
Спуститься к концу Подняться к началу
Персональная информация
rez74
Добавлено 18.11.2025 14:03 Сообщение: 8
rez74
0

Пункты: 391
Регистрация: 17.09.2024
если я опишу пины в DTS, (например как led), rst, int и т.п. и использую их в каком нибудь spi/i2c/uart/led/... пин работает прекрасно в этом spi/i2c/uart/led.... если пин в dts не описывать, то по идее, gpioinfo его показывает как unused и он должен управляться gpioset. Но не управляется.

я пины указал в dts как
compatible = "gpio-leds";
то при использовании gpioset получаю - пин занят, что правильно.
управляю через /sys/class/leds/. Пины PE13, PE14 и PD20 работают. Но если убрать из dts все led-костыли, то пин будет как unused и должен управляться через gpioset.

В таком варианте, у меня PD20 управляется через gpioset, а PE13 и PE14 нет.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.11.2025 18:20 Сообщение: 9
sasamy
4.71

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

gpioinfo его показывает как unused и он должен управляться gpioset. Но не управляется


дело оказалось в управлении питанием - почему-то при использовании gpioset не включается регулятор питания для порта PE - он там отдельный от других портов (bldo3). Лечится просто - надо дописать в DT своей платы для него выделенный текст чтобы он всегда был включен

например sun50i-t507-sodimm-lvds-800-480-sk.dts

&r_i2c {
status = "okay";

pmu0: pmu@36{
compatible = "x-powers,axp15060";
.........
reg_bldo3: bldo3 {
regulator-name = "vcc-pe";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-step-delay-us = <25>;
regulator-final-delay-us = <50>;
regulator-always-on;
};
..........
Спуститься к концу Подняться к началу
Персональная информация
rez74
Добавлено 20.11.2025 08:27 Сообщение: 10
rez74
0

Пункты: 391
Регистрация: 17.09.2024
regulator-always-on;

да, заработало. А я ещё проверил же по схеме, чтоб VCC_PE было запитано, мне показалось что там цепь 3.3V. Просмотрел.

Спасибо!!!
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-T507-SODIMM