Guten Abend,
ich habe mal eine Frage bezüglich des SPI Busses am PI.
Ich hatte vor einen MCP2515 und einen ENC28J60 am PI anzuschließen.
Beide Chips können ganz einfach über den Devicetree eingehangen werden.
Aber wie wird das mit dem Chipselect geregelt?
Woher weiß der Devicetree welcher Chip an welchem Chip Select hängt?
Und wie schnell ist der ENC28J60 am PI?
Verringert sich die Geschwindigkeit wenn gleichzeitig der MCP2515 verwendet wird?
Meine Idee wäre es jetzt den MCP2515 an den anderen zweiten separaten SPI Bus des PI's anzuschließen.
Wie müsste ich dann die Devicetree Datei verändern?
2 Geräte an einem SPI Bus
-
petit_miner -
27. Juni 2016 um 20:50 -
Erledigt
-
-
2 Geräte an einem SPI Bus? Schau mal ob du hier fündig wirst!
-
-
-
Ok Danke für die Info.
Und wie sieht es so mit der Geschwindigkeit aus?
Der PI arbeitet nur als IOT Gerät und braucht eigentlich nur eine geringe Bandbreite. -
Hallo.
Und wie sieht es so mit der Geschwindigkeit aus?
Der PI arbeitet nur als IOT Gerät und braucht eigentlich nur eine geringe Bandbreite....das kann man nicht generalisieren.
Das ist abhängig von Leitungslänge, Anzahl der Frames die übertragen werden und Taktfrequenz.
Du musst dir nur eines vor Augen halten:
Der Master (Pi) macht einen Request an Slave 0. Slave 0 antwortet. Master reagiert mit ACK/NAK.
Dann erst kann Slave 1 requestet werden.CE0/CE1 ist softwaretechnisch nichts anderes als ein Wechselschalter. Wenn Ausgang1 0 ist, ist Ausgang2 1, und umgekehrt.
Siehe >hier<gruß root
-
Vielen Dank für das umfangreiche Dokument :thumbs1:
Wie sieht es jetzt mit der zweiten und sogar der dritten SPI Schnittstelle am Pi aus?
Ich habe vor eine eigene Platine mit dem Compute Modul zu erstellen.
Am Compute Modul sind 3 seperate SPI Schnittstellen vorhanden.
Wie finde ich weitere Infos zu den Schnittstellen?
Und was muss ich am Kernel verändern so dass ich SPI1 und SPI2 als Schnittstelle verwenden kann?
Wenn ich 2 unterschiedliche und separate SPI Schnittstellen verwende dürften sich die beiden Chips ja nicht in den Weg kommen.
Pinout Compute Modul -
...
Am Compute Modul sind 3 seperate SPI Schnittstellen vorhanden.
Wie finde ich weitere Infos zu den Schnittstellen?...recht einfach:
Guck deinen link oben in Beitrag #6 an, und merke/drucke dir das mit dem Banking.
Dann bemüht man Tante goggle, wird fündig unter diesem >diesem> link, und druckt sich die Banking/Operation-Datasheets aus.
Der Rest Logik und bischen Fleisarbeit.Banking... geile Sache mit der >pigpio< Lib.
unter anderem:Zitat
gpioRead_Bits_0_31 Read all GPIO in bank 1
gpioRead_Bits_32_53 Read all GPIO in bank 2gpioWrite_Bits_0_31_Clear Clear selected GPIO in bank 1
gpioWrite_Bits_32_53_Clear Clear selected GPIO in bank 2gpioWrite_Bits_0_31_Set Set selected GPIO in bank 1
gpioWrite_Bits_32_53_Set Set selected GPIO in bank 2
d.h. damit es es möglich, ohne das lästige rauspressen einzelner Bit an die GPIO's, ne Bank zu beschreiben, und die Bits erscheinen automatisch an den entspr. GPIO's.
Lesen ebenfalls.
Hab damit mal ne Centronic's (parallel)-Schnittstelle emuliert.
Einfach ein Macro definieren:Zitat
#define CHK_BIT(var,pos) ((var) & (1<<(pos)))
In der Befehlszeile wird das Bit x in "var" an "pos" getestet, und ne 1 in die Bank geschrieben, wenn Bit x = 1. Ansonsten passiert nichts.Logischerweise wird die Bank vorher gelöscht.
Mit einer Befehlszeile ein beliebiges Bytemuster in ne Bank, -> GPIO's sind gesetzt...perfekt....denn viel Erfolg.
gruß root
///Edit ... ähmmm... bin oben aus versehen auf die Note gekommen... kann's nicht mehr wegclicken...
-
Wurde jetzt bei den DT Overlays fündig:
Github
Mithilfe 3 Overlay Dateien kann man problemlos alle SPI Schnittstellen am PI aktivieren.ZitatName: spi2-1cs
Info: Enables spi2 with a single chip select (CS) line and associated spidev
dev node. The gpio pin number for the CS line and spidev device node
creation are configurable.
N.B.: spi2 is only accessible with the Compute Module.
Load: dtoverlay=spi2-1cs,<param>=<val>
Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0).
cs0_spidev Set to 'disabled' to stop the creation of a
userspace device node /dev/spidev2.0 (default
is 'okay' or enabled).
Jetzt muss ich nur noch die .dts Datei für den ENC28J60 bearbeiten, so dass dieser auch an SPI2 funktioniert. :thumbs1:
Vielen Dank für eure Hilfe -
Hatte jetzt mal was Zeit mit dem ENC28J60 zu spielen.
Am wichtigsten war natürlich der Speedtest
Dafür das der ENC über SPI angeschlossen ist sind die Werte beachtlich :):thumbs1:CodeRetrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from Deutsche Telekom (93.232.209.36)... Selecting best server based on latency... Hosted by hotspot.koeln (Cologne) [28.18 km]: 38.547 ms Testing download speed........................................ Download: 4.11 Mbit/s Testing upload speed.................................................. Upload: 3.27 Mbit/s
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!