Hallo, ich bin auf der Suche nach einem USB GPIO Expander für Linux, der GPIOs im sysfs (/sys/class/gpio) anlegt. Dafür gibts scheinbar zig Bastellösungen mit diversen FTDI Chips, ich suche aber eine Ready-to-use Lösung. Daher folgende Bedingungungen: - funktioniert mit Distributionskernel (Debian) - Als Produkt fertig kaufbar in DE - Lösung funktioniert an einem Desktop PC. Kennt jemand ein entsprechendes Produkt? Muss nicht zwingend USB sein, alternative Lösungen sind willkommen. Danke!
Suche mal lieber nach PCI(E) Karten. Dafür sehe ich im Kernel Tree ein paar Treiber. Die haben anders als die USB Teile auch kein Latenzproblem. Was ist Dein Anwendungsfall denn genau? Eventuell tut es ja auch ein I²C/SPI nach GPIO Chip, den man einfach an einen der PC-internen I²C Busse klemmt...
Martin W. schrieb: > ich bin auf der Suche nach einem USB GPIO Expander für Linux, der GPIOs > im sysfs (/sys/class/gpio) anlegt. Ist sysfs ein Muß? Wenn nicht wird die Auswahl wesentlich einfacher. Apropos Basteln mit USB und sysfs-GPIOS, da werden Erinnerungen wach: http://www.linuxtag.org/2013/fileadmin/www.linuxtag.org/slides/Christoph_Fritz_-_Basteln_mit_USB.e294.pdf
Ist in der Firma, daher scheidet Löten am PC und zeitintensives Selbstbauen von Adaptern aus. Ich brauche das ganze fürs Debuggen einer Embedded Linux Anwendung. Das Debuggen auf dem x86 System ist erheblich komfortabler :-). Diese Anwendung greift auf das sysfs Interface zu, daher wäre das mein bevorzugter Weg. Latenz ist unkritisch. Ein paar 100 ms sind vollkommen ausreichend. USB wäre bevorzugt da so ein Adapter auch mit Laptops und VMs funktioniert. Die Notlösung wäre den GPIO von der tatsächlichen Hardware per SSH in das Hostsytem einzubinden, aber ein Teil das man ansteckt und funktioniert würde ich bevorzugen... Wo finde ich die Teile im Kernel Tree?
:
Bearbeitet durch User
Wäre ein MPSSE-Kabel genehm? Da ist ein FT232H drin, und der gesamt Port A wird herausgeführt. http://www.ftdichip.com/Products/Cables/USBMPSSE.htm http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_C232HM_MPSSE_CABLE.PDF fchk
Martin W. schrieb: > Ich brauche das ganze fürs Debuggen einer Embedded Linux Anwendung. Dann würde ich eher zu einem der FT2232H-basiertem JTAG Adapter greifen, und mit OpenOCD arbeiten. Anders als die - billigeren - FT232H Adapter hätten die oft auch noch einen 2. UART fürs serielle Terminal.
Danke für die Antworten. Ich entnehme dem ganzen das es keinen fertigen Adapter (im Sinne von Hardware UND Software) gibt. Tagelanges Gebastele ist mir die Sache einfach nicht Wert. Ich kann auf dem Embedded Linux System per Remote GDB arbeiten. Auf dem x86 geht es nur einfach noch ein Stückchen schneller und bequemer :-).
Bin nun doch noch fündig geworden. - Board mit CH341 - Diesen Treiber compilieren und in Kernel laden: https://github.com/gschorcht/i2c-ch341-usb Out of the Box sind 8 GPIOs im Sysfs aufgetaucht.
:
Bearbeitet durch User
Martin W. schrieb: > Ich brauche das ganze fürs Debuggen einer Embedded Linux Anwendung. Das > Debuggen auf dem x86 System ist erheblich komfortabler :-). Diese > Anwendung greift auf das sysfs Interface zu, daher wäre das mein > bevorzugter Weg. Gehts Dir nur darum, zwecks Testing die Anwendung auf einem 0815-PC laufen zu lassen ? Wenn ja, wie wär's denn mit einfach /sys/class/gpio/... über's Netz zu mounten ? Sind ja nur triviale FS-Operationen, sollte also mit 9P oder NFS trivial gehen. > Wo finde ich die Teile im Kernel Tree? Üblicherweise unter ./drivers/gpio/ - ein paar andere Devices (aus anderen Ecken können aber auch noch gpio's mitbringen) ... By the way hab ich grad ein etwas ähnliches Problem - nur suche ich ein Relais-Modul für 230V mit USB-Anbindung. Finde da (abgesehen von alles selbst zusammen löten) grad nix. Sollte schon etwas fertiges zum einfach hinstellen sein. Die großen 19'' power switches scheiden aus (zu groß, zu schwer, zu teuer). Hat jemand einen Tip ? Kann auch gut damit leben, falls es noch keine richtigen Treiber gibt (solange das Protokoll sauber beschrieben ist). Kernel-Treiber schreiben gehört ja schließlich zu meinem täglich Brot. --mtx
Enrico W. schrieb: > By the way hab ich grad ein etwas ähnliches Problem - nur suche ich ein > Relais-Modul für 230V mit USB-Anbindung. Finde da (abgesehen von alles > selbst zusammen löten) grad nix. Sollte schon etwas fertiges zum einfach > hinstellen sein. Die großen 19'' power switches scheiden aus (zu groß, > zu schwer, zu teuer). Ist zwar etwas gebastel, aber du koenntest dir z.B. so eine Master-Slave Steckdosenleiste mit USB Relais kaufen und auseinander bauen: https://www.amazon.de/Gembird-PCW-MS-5fach-Master-%C3%9Cberspannungsschutz/dp/B000KPS3FY/ Ueber USB kann man die Leiste dann Ein- und Ausschalten. Ich habe so ein Teil mal mit einem uC angesteuert. Da reicht es dann einfach einen Pin zu setzten + vielleicht einen Transistor als Treiber. Man braucht also kein Protokoll als steuerung (also, kommt natuerlich auf die konkrete Leiste an!). Muesstest dann nur halt gucken wie du unter Linux an dem USB-Pin wackeln kannst. Kabel fuer USB und 230V sind auch schon dran, fuer gut 20 Euro. Vielleicht hilft dir das ja. Gruesse
Kaj schrieb: > Da reicht es dann einfach einen Pin > zu setzten + vielleicht einen Transistor als Treiber. Man braucht also > kein Protokoll als steuerung (also, kommt natuerlich auf die konkrete > Leiste an!). Muesstest dann nur halt gucken wie du unter Linux an dem > USB-Pin wackeln kannst. Vergiss was ich schrieb. Bei der Leiste die ich hatte (ich glaube es war die verlinkte) muss man am Vcc Pin (roter Draht im USB-Kabel) wackeln. Und ich bin mir nicht sicher ob man das ueber das OS hinbekommt. Oder kann man einen einzelnen USB-Port abschalten (also stromlos)?
Kaj schrieb: > Bei der Leiste die ich hatte (ich glaube es war > die verlinkte) muss man am Vcc Pin (roter Draht im USB-Kabel) wackeln. > Und ich bin mir nicht sicher ob man das ueber das OS hinbekommt. Oder > kann man einen einzelnen USB-Port abschalten (also stromlos)? hmm, ja, kann man - über's Power-Management. Ist aber auch nervig ... muß man erstmal zur Laufzeit rausbekommen, an welchem Port das Ding hängt (blöd, wenn man öfters umsteckt :o) und dann das Port schlafen legen (sofern der Controller das per Port kann). Sofern man keinen Hub dazwischen hat. Und da haben wir das nächste Problem - mir werden schnell die Ports ausgehen, sodaß ich einen Hub dazwischen legen müßte :( Hast Du das Ding zufällig noch irgendwo rumliegen ? Dann könnten wir ja mal schauen, ob da eine MCU dranhängt, mit der man evtl. reden kann. Schön wäre es zumindest, wenn sich das Ding enumerieren ließe - dann könnte man das auch probe'n und ggf. gleich einen Treiber basteln, der das Ding ins LED-Subsystem einklinkt (zwecks einfachen schaltens via cmdline). Hab mir unterdessen mal ein sonoff s20 aus China bestellt (mal sehen, ob's noch in diesem Jahr ankommt :o). Die Dinger haben auch WLAN. Sind zwar für die Klaut gebaut (irks, will ich garnicht), aber man kann die wohl auch austricksen, daß sie mit einem eigenem Server reden. Gibt dann allerlei schräges websockets-Gebastel, aber das kann ich mir ja in den R4D reinpatchen ... Alternativ hätt ich eine andere Idee: Falls es hier paar Leute gibt, die sich an eine richtige Produktentwicklung rantrauen (mit all dem Abhahme-Krams, den man da so braucht), könnten wir das ja gern mal in Angriff nehmen. Irgendein 0815 SoC, auf dem Linux läuft, Ralais per GPIO angeflanscht und 'ne richtige Buchse dran. Um die Software-Seite würde ich mich kümmern, aber der schaltungstechnische Teil ist nix für mich :o. --mtx
Martin W. schrieb: > Ich brauche das ganze fürs Debuggen einer Embedded Linux Anwendung. Das > Debuggen auf dem x86 System ist erheblich komfortabler :-). Diese > Anwendung greift auf das sysfs Interface zu, daher wäre das mein > bevorzugter Weg. > > Latenz ist unkritisch. Ein paar 100 ms sind vollkommen ausreichend. > > USB wäre bevorzugt da so ein Adapter auch mit Laptops und VMs > funktioniert. Die Notlösung wäre den GPIO von der tatsächlichen Hardware > per SSH in das Hostsytem einzubinden, aber ein Teil das man ansteckt und > funktioniert würde ich bevorzugen... Ich würde ja einfach einen Raspberry Pi 3 nehmen, der liefert die GPIOs gleich mit. Auf dem läuft ein Linux, man hat also die gewohnte Umgebung und wenn man die Daten wirklich auf dem PC benötigt, dann kann man ja die Netzwerkfunktionalität des Raspberry Pi nutzen und die Daten an den PC weiterleiten.
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.