1

Temat: Szukanie GPIO - expr: syntax error

Witam wszystkich

Posiadam D-link DIR-300 z wgranym Openwrt 15.05. Nie znalazłem w internecie rozpiski pinów GPIO, więc postanowiłem poszukać. Skorzystałem z tego poradnika : https://wiki.openwrt.org/doc/hardware/port.gpio a dokładnie ze sktypu blink.

Utworzyłem plik gpio za pomocą vi, wkleiłem skrypt i odpaliłem zgodnie z instrukcją. Wcześniej musiałem zmienić uprawnienia, bo wywalał błąd Permission denied. Ale po uruchomieniu wywala błąd expr: syntax error

Pozdrawiam

2

Odp: Szukanie GPIO - expr: syntax error

Pokaż zawartość tego pliku.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez mcz 2016-02-13 11:12:28)

Odp: Szukanie GPIO - expr: syntax error

#!/bin/sh
 
GPIOBASE=`cat /sys/class/gpio/gpiochip*/base | head -n1`
GPIOmin=`expr $1 + $GPIOBASE`
GPIOmax=`expr $2 + $GPIOBASE`
nums=`seq $GPIOmin $GPIOmax` 
 
cd /sys/class/gpio
for i in $nums; do
echo $i > export; echo out >gpio$i/direction
done
 
while true; do
  for i in $nums; do
     echo 0 > gpio$i/value
 done
  sleep 1
  for i in $nums; do
     echo 1 > gpio$i/value
  done
  sleep 1
done

Zapisałem go jako gpio.sh

EDIT:

Zmieniłem argument $GPIOBASE na 0 , bo taka baza wyszła mi po wpisaniu samego polecenia i udało mi się, znalazłem gpio.

root@OpenWrt:~# ls /sys/class/gpio/
export     gpio17     gpio2      gpio22     gpio4      gpio7
gpio1      gpio18     gpio20     gpio23     gpio5      gpiochip0
gpio11     gpio19     gpio21     gpio3      gpio6      unexport

4

Odp: Szukanie GPIO - expr: syntax error

Kolejne pytanie odnośnie szukania GPIO

Czemu po wyłączeniu zasilania kasuje się zawartość /sys/class/gpio i usuwa wszystkie gpio ? Czy jest to normalne ?

5

Odp: Szukanie GPIO - expr: syntax error

Oczywiście. Bo gpio są robione przez system w momencie startu, więc zrób sobie skrypt który będzie robił to co chcesz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: Szukanie GPIO - expr: syntax error

Ok, czyli w przyszłości jeżeli w końcu znajdę te GPIO, to będę musiał napisać skrypt, który uruchomi się wraz z systemem i stworzy odpowiedni folder w GPIO?

Jeszcze jedno pytanie, w jaki sposób mogę przypuszczać, że dane wyjście na płytce jest tym od GPIO ? Mam w sumie dwa wolne miejsce, jedne jest od diody, a drugie od przycisku, więc przypuszczam, że w tym miejscu może być GPIO.

Przylutowałem diode wg. schematu który znalazłem na https://wiki.openwrt.org/doc/hardware/port.gpio

Dałem wszystkie gpio na echo out > /sys/class/gpio/gpio*/direction później echo 0 > /sys/class/gpio/gpio*/value, lecz to nie działa, więc wszystkie dałem na 1 - echo 1 > /sys/class/gpio/gpio*/value ; lecz nic się nie zmienia, żadnej zmiany stanu.

7

Odp: Szukanie GPIO - expr: syntax error

Jak nie zmienia stanu to albo to wyjście jest np. na stałę do masy lub vcc podłączone lub to nie jest to gpio.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Szukanie GPIO - expr: syntax error

Chyba się poddam z szukaniem tych GPIO na PCB, chyba, że masz jakąś sugestię ?

Na chwile obecną napisałem sobie trzy skrypty. Pierwszy do utworzenie GPIO po resecie, bo bardzo często podczas spradzania wyprowadzeń na komponentach SMD router mi się resetuje.

gpio.sh

#!/bin/sh

cd /sys/class/gpio
echo 1 > export; echo out > gpio1/direction
echo 18 > export; echo out > gpio18/direction
echo 20 > export; echo out > gpio20/direction
echo 23 > export; echo out > gpio23/direction
echo 5 > export; echo out > gpio5/direction
echo 11 > export; echo out > gpio11/direction
echo 19 > export; echo out > gpio19/direction
echo 21 > export; echo out >  gpio21/direction
echo 3 > export; echo out > gpio3/direction
echo 6 > export; echo out > gpio6/direction
echo 17 > export; echo out > gpio17/direction
echo 2 > export; echo out > gpio2/direction
echo 22 > export; echo out > gpio22/direction
echo 4 > export; echo out > gpio4/direction
echo 7 > export; echo out > gpio7/direction

Kolejny do zmiany stanu na stan wysoki jeden.sh i podobny zero.sh

 #!/bin/sh
cd /sys/class/gpio/

echo 1 > gpio1/value
echo 1 > gpio18/value
echo 1 > gpio20/value
echo 1 > gpio23/value
echo 1 > gpio5/value
echo 1 > gpio11/value
echo 1 > gpio19/value
echo 1 > gpio21/value
echo 1 > gpio3/value
echo 1 > gpio6/value
echo 1 > gpio17/value
echo 1 > gpio2/value
echo 1 > gpio22/value
echo 1 > gpio4/value
echo 1 > gpio7/value

Za pomocą diody przylutowanej do GND sprawdziłem chyba wszystkie komponenty SMD i wyjścia w celu odnalezienia tych pinów. Lecz w ogóle nie mogę ich znaleźć. Próbowałem także przylutować odwrotnie diodę tj. do 3.3 - lecz efekt jest ten sam.

W miejscach które oznaczyłem kółkami spodziewałem się GPIO i cały czas wierzę, że są w tym miejscu. Może robię coś źle ?

dir300