Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Управление GPIO через sysfs
JollyJoker
Добавлено 17.02.2013 12:18
0
Сообщение: 1
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Добрый день, у меня следующая проблема. Не получается управлять ногой на AM1705 под Linux 3.2.1 через /sys/class/gpio. Экспорт проходит нормально, направление меняется, а значение в value не изменяется. Несколько дней поисков не дали никаких результатов.
Вот лог моих действий:

Код
root@sbc8018:/sys/class/gpio# echo 72 > export

root@sbc8018:/sys/class/gpio# ls
export gpiochip0 gpiochip64 unexport
gpio72 gpiochip32 gpiochip96

root@sbc8018:/sys/class/gpio# cat gpio72/direction
in

root@sbc8018:/sys/class/gpio# echo out > gpio72/direction

root@sbc8018:/sys/class/gpio# cat gpio72/direction
out

root@sbc8018:/sys/class/gpio# echo 1 > gpio72/value

root@sbc8018:/sys/class/gpio# cat gpio72/value
0


При этом как вход, ножка работает нормально.
Что нужно еще настроить?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.02.2013 15:01 Сообщение: 2
Jury093
4.58

Пункты: 54164
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
проверьте по настройкам в ядре - может этот пин где-то используется..
на трех архитектурах - Atmel, Freescale и Marvell у меня таких проблем не было - именно такие действия и все отлично работает

вспомнил - на BeagleBone (am3359) тоже без проблем..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 17.02.2013 17:22 Сообщение: 3
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Это была первая моя мысль. Но ничего крамольного не нашел. Нога болтается свободно, никакая периферия ее не использует. Кстати у меня такая проблема на трех процессорах AM1705, AM1808 и AM3352. Причем если объявлять через класс led, то все прекрасно управляется.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.02.2013 17:59 Сообщение: 4
Jury093
4.58

Пункты: 54164
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
чудеса, да и только..
покажите, что выводится в конфиге ядра
Код
cat .config | grep GPIO

у меня 9260 работает при таком выводе (сорри, лень сортировать):
Код
jury093@mydebian:~/sk-9260/linux-3.6$ cat .config | grep GPIO
CONFIG_GENERIC_GPIO=y
# CONFIG_GPIO_PCA953X is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
CONFIG_ARCH_NR_GPIO=0
# CONFIG_MTD_NAND_GPIO is not set
# CONFIG_MDIO_BUS_MUX_GPIO is not set
CONFIG_KEYBOARD_GPIO=y
# CONFIG_INPUT_GPIO_TILT_POLLED is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
CONFIG_I2C_GPIO=y
CONFIG_SPI_GPIO=y
CONFIG_PPS_CLIENT_GPIO=y
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
CONFIG_ARCH_REQUIRE_GPIOLIB=y
CONFIG_GPIOLIB=y
CONFIG_OF_GPIO=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_GENERIC=y
# Memory mapped GPIO drivers:
CONFIG_GPIO_GENERIC_PLATFORM=y
# CONFIG_GPIO_EM is not set
# I2C GPIO expanders:
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_SX150X is not set
# CONFIG_GPIO_ADP5588 is not set
# PCI GPIO expanders:
# SPI GPIO expanders:
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_74X164 is not set
# AC97 GPIO expanders:
# MODULbus GPIO expanders:
CONFIG_W1_MASTER_GPIO=y
# CONFIG_HTC_EGPIO is not set
# CONFIG_USB_GPIO_VBUS is not set
CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGER_GPIO=y

имхо, чего-то в конфиге не хватает, иначе об этой фигне было бы написано на каждом углу..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 17.02.2013 18:33 Сообщение: 5
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
Проблема решена. Нужно было в инициализации борды добавить инициализацию ноги как GPIO. В частности для AM1705 добавить строку:
ret=davinci_cfg_reg(DA830_GPIO3_14);
И все заработало. Я был до этого уверен, что функция export как раз и выполняет необходимые изменения с mux'ами.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.02.2013 19:03 Сообщение: 6
Jury093
4.58

Пункты: 54164
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Проблема решена. Нужно было в инициализации борды добавить инициализацию ноги как GPIO. В частности для AM1705 добавить строку:
ret=davinci_cfg_reg(DA830_GPIO3_14);
И все заработало. Я был до этого уверен, что функция export как раз и выполняет необходимые изменения с mux'ами.

как-то все странновато.. я ни в одном из случаев таких действий не совершал..

Код
ret=davinci_cfg_reg(DA830_GPIO3_14);

а по моим подсчетам - это будет gpio78, но не 72..
ну ладно.. работает и работает..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
JollyJoker
Добавлено 17.02.2013 19:29 Редактировалось 17.02.2013 19:29 Сообщение: 7
JollyJoker
0

Пункты: 698
Регистрация: 06.04.2010
С 72 это я выкладывал, так как она была последней, с которой я мучился. А началось все с 62 (в AM1705 16 ног в банке, а не 32).
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 17.02.2013 20:37 Сообщение: 8
Jury093
4.58

Пункты: 54164
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
(в AM1705 16 ног в банке, а не 32).

ок. я последний раз летом присматривался к этому процу, да привык что все по 32..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux