Gast
#6230339
Hallo zusammen! Ich habe bei mir dieses Hutschienenmultimeter (https://www.conrad.de/de/p/entes-epm-06cs-din-programmierbares-3-phasen-din-schienen-ac-multimeter-epm-06cs-din-spannung-strom-frequenz-betrieb-103280.html) verbaut. Das Teil hat eine RS485 Schnittstelle die ich mit einem RasPi + RasPiComm- Karte auslese. Für die RS485 Schittstelle wird vom Hersteller der RasPiComm Karte ein Kernelmodul zur Verfügung gestellt, welches ich auch installiert habe. Die RS485 Schnittstelle wird via SPI über einen MAX3140 realisiert. Das Ganze funktioniert auch erst mal schon seit einiger Zeit. Jetzt wollte ich das ganze mit einer PiFace Digitalkarte erweitern die ebenfalls über den SPI Bus läuft. Auf der PiFace Karte ist ein MCP23S17SP verbaut, der ebenfalls über SPI gesteuert wird. Beide sollten eigenlich zusammen am SPI Bus funktionieren, da man ja 2 Kanäle CE0 (/dev/spidev0.0) und CE1 (/dev/spidev0.1) zur Verfügung hat. Theoretisch sollte es sogar mit einem Kanal funktionieren, da die RS485 mit CE0=1 und die Interfacekarte mit CE0=0 aktiviert wird. Das Problem ist das das Kernelmodul für die RS485 beim Laden die /dev/spidev* Devicefiles entfernt. Damit ist die Interfacekarte über diese Devicefiles nicht mehr ansprechbar. Eigentlich soll das Kernelmodul nur /dev/spidev0.0 entfernen, aber er entfernt beide. Ich kann zwar das Devicefile wieder anlegen aber es wird nicht erkannt oder geblockt. Also habe ich mir gedacht, verzichtest Du halt auf das Kernelmodul und schreibste halt was Eigenes. Es gibt da eine Bibliothek (bcm2835) mit der man SPI Gedöns relativ einfach ansprechen kann. Dies scheint auch zu funktionieren und für das PiFace gibt es auch genug Dokumentation so das man da eine passende Befehlssequenz hin bekommt. Beim MAX3140 sieht es da relativ dünne aus. Es gibt da lediglich ein Datenblatt wo am Ende etwas zur Programmierung steht, aber da werde ich nicht wirklich schlau draus. Habe mich versucht im Netz kundig zu machen aber daa hält man sich auch eher bedeckt. Deshalb meine Frage: Hat da jemand schon mal was in der Richtung oder kennt zumindest die Befehlssequenzen mit der der MAX3140 zu Mitarbeit zu bewegen ist. Also solche Sachen wie kann ich abfragen ob das Teil überhaupt vorhanden ist, wie erreiche ich das ein Byte per RS485 gesendet wird usw. Da ich da schon eine Weile sitze bin ich für jeden Hinweis dankbar. Das kann doch nicht so schwer sein. Achso die Abfrage der RS485 muß nicht permanent erfolgen, so wie beim Kernelmodul. Ich frage die Daten eh nur einmal pro Minute ab. Evtl. würde es auch reichen wenn man es hinbekommt das Löschen der spi-Devicefiles durch das Kernelmodul zu verhindern.