Hallo, ich habe ein Embedded- / Industrial Board mit 8 GPIOs. Ich finde jedoch keine direkte Möglichkeit, diese zu verwenden. Bis auf dass sie direkt am "Intel® NM10 Express Chipset" über den "SMBus" angebunden(?) sind, schweigt der Hersteller... (shema1.png) Daher habe ich mir das NM10-Chipset Datasheet runtergeladen, und dort gibt es eine "riesen Liste" mit GPIOs und etwas Beschreibung. (shema2.png) Das ganze soll am besten unter Linux mit GCC funktionieren. Theorie// Wenn ich das jetzt richtig verstanden habe, muss ich die Basisadresse öffnen (0x48), und auf dieser "Adresse" die Pins setzen bzw. markieren, die dann ihre native Funktion ausschalten, und nur noch GPIO werden sollen. (0x48+0x00) Danach (0x48+0x04) festlegen, ob die Pins als Ein- oder Ausgang fungieren sollen. z.B WENN alle als Ausgang: Anschließend (auf 0x48+0x0C) festlegen, ob er High oder Low ist. Oder (auf 0x48+0x18) festlegen, ob er "Blinken" soll. Ich würde die 8 Pins (zum Testen) mal gerne Blinken lassen. ___ Also schreibe ich auf 0x48: 0xFFFFFF, damit alle Pins GPIOs sind. Dann schreibe ich auf 0x4C: 0x000000, damit alle als Ausgang fungieren. Und zuletzt auf 0x60: 0xFFFFFF, damit alle GPIOs blinken. //Theorie Kann das so klappen? Meine Frage ist außerdem, ob es einen Standard gibt, der Beschreibt wie welcher IO Pin auf den Header raus-geführt ist, oder ob ich da nur durch "Try & Error / Win" weiter komme? Muss ich die 8 von ca 30 GPIOs die ich benutzen darf praktisch erst durchklingeln? Oder erstmal nur die "Unmultiplexed" testen? und wie etwa sieht eine Codezeile zum setzen eines "Registers" für gcc aus? In der Richtung habe ich noch nie was gemacht... Modell: avalue EMX-CDT NM10 AtomD2550. https://www.avalue.com.tw/product/Embedded-Computing/Industrial-Motherboard/Mini-ITX/EMX-CDT_1883 [Die GPIOs sollen dann externe Geräte Einschalten oder Resetten können, indem sie per Optokoppler (mal schaun) an die entsprechenden Pins (Taster / oder GPIOs) der Geräte gehängt werden, für´n bissle Watschdog im 24/7] Danke schon mal für eventuelle Tipp´s...
:
Bearbeitet durch User
mal in den sourcen von lm?ensors schaun wie das mit dem SMBusgemacht wird? https://wiki.archlinux.org/index.php/Lm_sensors
Das (Anhang) schaut mir ein bisschen "Verdächtig" aus... Es soll doch 8 Pins heißen, denke ich... (Gpio 10-18). Ich will hald nich mit irgendwelchen Adressen das Board hochjagen - aber passieren kann ja fast gar nichts. (Oder? o_O) Achja danke für den URL... ;-)
:
Bearbeitet durch User
Tim S. schrieb: > Das ganze soll am besten unter Linux mit GCC funktionieren. Dann würde ich da möglichst nicht direkt am SMBus oder Registern rummachen, sondern wenn mgl. einen Kernel-Eigenen GPIO-Treiber verwenden, und den Zugriff darüber machen. https://www.kernel.org/doc/Documentation/gpio/sysfs.txt Schau dich also mal unter /sys/class/gpio um. Mein Desktop-Board findet mit dem gpio_ich - Treiber z.B. 76 GPIOs, die direkt am Chipset hängen. Diese könnte ich einfach in der Shell per "echo 555 > /sys/class/gpio/export" als devicenode verfügbar machen, auslesen, Richtung einstellen, Wert setzen... Aber: Ohne Info welcher GPIO-Pin am Mainboard wie (oder ob überhaupt) beschaltet ist, sind Experimente da russisch Roulette... Sobald du an der Kommandozeile deine GPIOs angesteuert bekommst, in dein C-Programm übernehmen. Gibt auch Libraries dafür. Bitte nicht sowas verbrechen:
1 | system("echo 1 > /sys/class/gpio42/value"); |
Sieht man ab und an bei RasPI-Projekten, meistens gefolgt von Beschwerden dass die GPIOs so furchtbar langsam sind und man da gar keine gute Software-PWM hinbekommt.....
Planlos schrieb: > Aber: Ohne Info welcher GPIO-Pin am Mainboard wie (oder ob überhaupt) > beschaltet ist, sind Experimente da russisch Roulette... Dann nimm die Multimeter/Scope und messe/teste die Beschaltung aus! Und kurzzeitig (<1s) ein Pin falsch zu konfigurieren macht i.d.R. nix kaputt.
Tim S. schrieb: > Muss ich die 8 von ca 30 GPIOs die ich > benutzen darf praktisch erst durchklingeln? Planlos schrieb: > Ohne Info welcher GPIO-Pin am Mainboard wie (oder ob überhaupt) > beschaltet ist, sind Experimente da russisch Roulette... Schaud euch das Bild an. Das ist eine Frechheit. Die Beschreibung kann man sich echt schenken. Was will man damit??? Echt seltsam, dass ein ganz normales Pinout bei einem sog. "Industrial Mainboard" nicht mitgeliefert wird!?!? Ich werde den Hersteller avalue wohl mal um einen Auszug des GPIO-Teil´s vom Schaltplan bitten. Bzw. einfach nur eine Liste anfordern. Oder hat jemand noch weitere Infos dazu?
C. A. Rotwang schrieb: > Dann nimm die Multimeter/Scope und messe/teste die Beschaltung aus! Und > kurzzeitig (<1s) ein Pin falsch zu konfigurieren macht i.d.R. nix > kaputt. Ich werde eher versuchen, was "extern blinkendes" zu lesen.
Bei einer ordentlichen Dokumentation hätte das so ausgesehen. (vom Hersteller Advantec)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.