MOSI, MISO,SPI Umschalten zwischen zwei RFID-RC522 am Mega 2560 ....?

Hallo Zusammen,

ich habe folgenden Aufbau:

Mega 2560, 2x RFID-RC522

PIN 50 an Beide Module --> MISO
PIN 51 an beide Module --> MOSI
PIN 52 an beide Module --> SCK

PIN 53 an Modul 1 --> SDK
PIN 49 an Modul 2 --> SDK

Beide Module RST auf HIGH (Macht die RFID.ccp statisch beim Initialisieren)

Ich möchte an dem Mega zwei RFID Module betreiben, da ich zwei Lesestellen mit verschiedenen Funktionen auf Grund der registrierten Chips brauche. (Garagentor + Nebentüre um der Sache einen Namen zu geben.)

Zum testen starte ich mit Modul 2 (PIN 49) --> geht.
Dann starte ich mit Modul 1 (PIN 53) --> geht nicht.
Trenne ich jetzt beim Modul 2 die MISO geht Modul 1.

Irgend wie blockiert das Modul 2 den Bus auf der MISO Leitung. (Hat ja zuletzt gesendet, hält aber offensichtlich die MISO auf HIGH.)

Wo ist mein Denkfehler?

Wenn ich die Module über kreuz tausche bleibt der Fehler am Steckplatz 1.
Wenn ich nur eines der Module stecke geht es an jedem Platz mit jedem Modul.

Muss ich dem Modul 2 vor der "Busumschaltung" noch etwas besonderes schicken, damit es den Bus frei gibt?

Ich Check das nicht. (Beim MOSI, MISO Googeln finde ich nichts was ich verstehen kann.)

VG Spaxer0815

SPI ist ein Bus. Du brauchst daher lediglich eine andere Chip Select/Slave Select Leitung pro Device. Die wird dann auf Low gezogen um das jeweilige Gerät zu aktivieren und am Ende wieder auf High.

JEahhhhhhhhhhhhh....

wie es gleich geht, wenn man den unbenutzten nicht der RFID.cpp überlässt, sondern selbst ein HIGH auf das unbenutzte Molul hinter her schiebt.

Vielen Dank!

Wenn nur alles so einfach wäre :sunglasses:

hi,

der denkfehler ist, daß Du glaubst, Du startest die module.
mit slave select sagst Du dem modul nur, daß es DAS ANGESPROCHENE ist.
2 auf einmal geht nicht, da kennt sich ja keiner mehr aus...

gruß stefan

Hallo,

jetzt geht es einwandfrei ....

Step 1:

  1. Modul 1 und Modul 2 mit High an SDA bedienen. =OFF
  2. Der RFID.cpp den PIN für Modul 1 geben und die RFID.cpp das Modul ansprechen lassen.
  3. Antwort auswerten
  4. Modul 1 und Modul 2 mit High an SDA bedienen. =OFF
  5. Der RFID.cpp den PIN für Modul 2 geben und die RFID.cpp das Modul ansprechen lassen.
  6. Antwort auswerten
    7 = loop zu 1.

Ich kann jetzt vor beide Leser einen Chip halten und ich bekomme abwechselnd die ID's zurück.

Der Rest ist Auswertung.

Danke nochmal.