Автор Тема: Вкл/выкл через GPIO  (Прочитано 390 раз)

Оффлайн ParadoxX27

Вкл/выкл через GPIO
« : Июнь 08, 2017, 07:43:39 am »
Приветствую!

Использую OpenELEC. Возникла надобность отправлять в сон и пробуждать железку не штатной кнопкой, а с пинов GPIO. Искал и наткнулся на такое:
[wakeup_src_para]
wakeup_src_bt = port:PL03<6><default><default><0>
В эту секцию надо добавить запись вида "wakeup_src_*" с указанием нужного пина. И не забыть поднять пин до 3V3. Пин должен замыкаться на землю и тогда железка проснется. Сделал так:
[wakeup_src_para]
...
wakeup_src_gpio = port:PG07<6><default><default><0>
Но все равно не работает (PG07). Пин сделал выходом и присвоил 1.

Кто-нибудь в курсе такой проблемы?
Orange Pi PC

Оффлайн ua3nbw

  • Посвященный
  • ***
  • Сообщений: 169
  • Лайков: 78
  • Карма: +10/-0
  • Orange Pi PC
    • Просмотр профиля
Re: Вкл/выкл через GPIO
« Ответ #1 : Июнь 08, 2017, 05:02:20 pm »
Приветствую!
Кто-нибудь в курсе такой проблемы?

А вы уверены , что драйвер GPIO, обрабатывает функцию пробуждения.
По логике пин надо сделать входом и повесить на пин резистор подтяжки к 3.3V


Оффлайн ParadoxX27

Re: Вкл/выкл через GPIO
« Ответ #2 : Июнь 09, 2017, 12:42:24 am »
А вы уверены , что драйвер GPIO, обрабатывает функцию пробуждения.
Не уверен. Как проверить?
По логике пин надо сделать входом и повесить на пин резистор подтяжки к 3.3V
Мне казалось, что все проще. Приведу цитату jernej с форума armbian:
Цитировать
So, if you want to wake-up by GPIO, then you have to specify wanted pin in FEX. Find something like:
[wakeup_src_para]
wakeup_src_bt = port:PL03<6><default><default><0>
You can add some wakeup_src_* entries here. Full name of the entry doesn't matter, but it must start with "wakeup_src_" You have to reboot before it will take an effect.
Цитировать
Addition: Pin should be pulled up to 3V3 and when you want to wake it up, you have to connect pin to GND. Check schematic for any other board, which has power button.
Если я правильно понял, то пин как раз надо сделать выходом и поднять на нем 3.3V, далее замыкать на землю. Может неверно понял?
Orange Pi PC

Оффлайн ua3nbw

  • Посвященный
  • ***
  • Сообщений: 169
  • Лайков: 78
  • Карма: +10/-0
  • Orange Pi PC
    • Просмотр профиля
Re: Вкл/выкл через GPIO
« Ответ #3 : Июнь 09, 2017, 09:15:15 am »
Не уверен. Как проверить?
смотреть исходники драйвера на предмет wakeup.

Цитировать
Если я правильно понял, то пин как раз надо сделать выходом и поднять на нем 3.3V, далее замыкать на землю. Может неверно понял?

надо взять схему платы и посмотреть как подключена кнопка power.

Оффлайн ParadoxX27

Re: Вкл/выкл через GPIO
« Ответ #4 : Июнь 09, 2017, 09:53:36 am »
смотреть исходники драйвера на предмет wakeup.
В этом совсем не разбираюсь, к сожалению :( Но за информацию большое спасибо!
Orange Pi PC

Оффлайн ParadoxX27

Re: Вкл/выкл через GPIO
« Ответ #5 : Июнь 09, 2017, 09:58:17 am »
надо взять схему платы и посмотреть как подключена кнопка power.
По схеме ничего не понятно :(
Orange Pi PC

Оффлайн ua3nbw

  • Посвященный
  • ***
  • Сообщений: 169
  • Лайков: 78
  • Карма: +10/-0
  • Orange Pi PC
    • Просмотр профиля
Re: Вкл/выкл через GPIO
« Ответ #6 : Июнь 09, 2017, 09:13:03 pm »
надо взять схему платы и посмотреть как подключена кнопка power.
По схеме ничего не понятно :(
вот кнопка power
во вложении
« Последнее редактирование: Июнь 09, 2017, 09:16:04 pm от ua3nbw »

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 412
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Вкл/выкл через GPIO
« Ответ #7 : Июнь 09, 2017, 10:27:09 pm »
Подключаете правильно, через резистор на +3,3 вольта и кнопка на массу.
Указывая в script.fex:
wakeup_src_gpio = port:PG07<6><default><default><0>
Вы переключаете соответствующий вывод в "6-ю функцию" - а это для портов PA PG и PL - режим "External Interrupt" внешнее прерывание.
Обратите внимание, чтоб этот PG07 в других секциях script.fex -а не был больше никуда назначен.
Его не нужно делать ни входом ни выходом GPIO, его в GPIO вообще быть не должно, он должен быть только "входом внешнего прерывания", ну и софт соответственно должен уметь это прерывание обрабатывать, хотя для пробуждения это возможно и не обязательно.

Оффлайн ParadoxX27

Re: Вкл/выкл через GPIO
« Ответ #8 : Июнь 10, 2017, 04:25:39 am »
Большое спасибо за разъяснение, теперь понятно ;)
Подключаете правильно, через резистор на +3,3 вольта и кнопка на массу.
А вот этот момент не совсем понял, а именно: как подтянуть пин через резистор на 3.3V? Т.е. кинуть провод с пина, на котором есть 3.3V через резистор на пин PG07 и сюда же подключить кнопку PG07 -> масса, так?
Orange Pi PC

Оффлайн AlDemin

  • Житель
  • ****
  • Сообщений: 412
  • Лайков: 110
  • Карма: +14/-1
  • OPi, OPi+, OPiOne, OPiZero, OPiPC2, BPi, RPiB.
    • Просмотр профиля
Re: Вкл/выкл через GPIO
« Ответ #9 : Июнь 10, 2017, 07:54:04 am »

Оффлайн ParadoxX27

Re: Вкл/выкл через GPIO
« Ответ #10 : Июнь 10, 2017, 11:39:14 am »
Спасибо, буду пробовать
Orange Pi PC

Оффлайн ua3nbw

  • Посвященный
  • ***
  • Сообщений: 169
  • Лайков: 78
  • Карма: +10/-0
  • Orange Pi PC
    • Просмотр профиля
Re: Вкл/выкл через GPIO
« Ответ #11 : Июнь 10, 2017, 07:17:23 pm »
Спасибо, буду пробовать

посмотрите cat /sys/power/wakeup_src
надо  что то прописать перед переходом в standby

Оффлайн ParadoxX27

Re: Вкл/выкл через GPIO
« Ответ #12 : Июнь 13, 2017, 01:41:54 am »
посмотрите cat /sys/power/wakeup_src
надо  что то прописать перед переходом в standby
Смотрел в этот файл, долго думал, но так и не понял, что туда прописать нужно :(
Orange Pi PC