Hallo
Entweder bin ich zu blöd oder ich hab irgendetwas Wichtiges vergessen,
aber ich versuche schon den ganzen Nachmittag bzw. Abend zumindest einen
GPIO Pin eines SAM9G45 anzusprechen (ich verwende ein ICnova Modul). Die
Linuxkernelversion ist 2.6.33.2 Ich bin kompletter Anfänger in der
embedded Linux Welt und weis jetzt einfach nicht mehr weiter. Zum Setzen
der GPIOs verwende ich die eingebaute GPIO- Lib. Ich hab mich auch
vergewissert, dass die GPIOs auch wirklich GPIOs sind und nicht
vielleicht durch andere Pinfunktionen überschrieben werden. Wenn ich nun
einen Pin als Ausgang setzen will geht das auch problemlos in der
Debugkonsole. Es gibt keine Fehlermeldungen oder dergleichen. Wenn ich
mir mit "cat direction value" die aktuellen Werte des GPIO Pins ansehe,
dann steht da auch ganz richtig " out 1".
Am Board selbst kann ich an dem entsprechenden Pin auch 3.3V messen.
Diese 3.3V kommen aber offensichtlich vom Pullupwiderstand, denn wird
der Pin etwas mehr belastet als mit den paar Megaohm des Multimeters
(mit einer LED + Vorwiderstand die 3mA bei 3,3V fließen lassen sollte),
dann sackt die Spannung an dem Pin sofort auf Werte um die 2V. Das
deutet darauf hin, dass die Pins noch immer als Eingänge definiert sind.
Habe es schon mit den verschiedensten Pins ausprobiert.
Hardwaredefekte sind auch weitestgehend auszuschließen, da ich an
anderen Pins des gleichen I/O Ports, die dedizierten Funktionen
zugeordnet sind, (z.B. LCD Controller) eindeutig die Konfiguration als
Output nachweisen kann (LED leuchtet).
1 | BusyBox v1.13.2 (2010-12-17 12:12:21 CET) built-in shell (ash)
|
2 | Enter 'help' for a list of built-in commands.
|
3 |
|
4 | $ su -
|
5 |
|
6 |
|
7 | BusyBox v1.13.2 (2010-12-17 12:12:21 CET) built-in shell (ash)
|
8 | Enter 'help' for a list of built-in commands.
|
9 |
|
10 | # cd /sys/class/gpio
|
11 | # l
|
12 | -sh: l: not found
|
13 | # ls
|
14 | export gpiochip160 gpiochip64 unexport
|
15 | gpiochip128 gpiochip32 gpiochip96
|
16 | # echo 106 > export
|
17 | # cd gpio106
|
18 | # ls -als
|
19 | 0 drwxr-xr-x 2 root root 0 Dec 31 17:01 .
|
20 | 0 drwxr-xr-x 8 root root 0 Dec 31 17:00 ..
|
21 | 0 -rw-r--r-- 1 root root 4096 Dec 31 17:01 active_low
|
22 | 0 -rw-r--r-- 1 root root 4096 Dec 31 17:01 direction
|
23 | 0 -rw-r--r-- 1 root root 4096 Dec 31 17:01 edge
|
24 | 0 lrwxrwxrwx 1 root root 0 Dec 31 17:01 subsystem -> ../../ gpio
|
25 | 0 -rw-r--r-- 1 root root 4096 Dec 31 17:01 uevent
|
26 | 0 -rw-r--r-- 1 root root 4096 Dec 31 17:01 value
|
27 | # echo out > direction
|
28 | # echo 1 > value
|
29 | # cat direction value
|
30 | out
|
31 | 1
|
32 | #
|
Ich hoffe es kann mir jemand bei meinem Problem helfen
MfG