Hallo, ich möchte die RFM12 Module einsetzen, habe zwei Devices am SPI - Bus dran, so dass ich eine Software und eine Hardware - Lösung nehmen möchte. Ist es möglich die RFM12 Module am Hardware SPI eines Mega32 zu betreiben? Ich habe leider bisher im Archiv Beträge gefunden, in denen von einer Softwarelösung die Rede ist. Ist die Ansteuerung nur so möglich? Gruß
Mal andersherum gefragt, wieso sollten die RFM12 nur per software SPI und nicht per hardware SPI funktionieren? Ich betreibe zwei RFM12 an einem LPC936 per hardware SPI ohne Probleme. Ciao, Rainer
RFm - User wrote: > Hallo, > > ich möchte die RFM12 Module einsetzen, habe zwei Devices am SPI - Bus > dran, so dass ich eine Software und eine Hardware - Lösung nehmen > möchte. Andere Frage: Hast du soviel Datenverkehr, dass man nicht eine SPI-Schnittstelle nehmen kann? Ist ja eigentlich gerade der Sinn eines Bussystems.
@Christoph, ich habe lediglich ein RFM12 und einen AD7322 am SPI - Bus, daher eig. kein Problem. Zumal das RFM-Modul das Ergebnis der Wandlung überträgt. Lediglich die Frage, wie ich den SS-Pin gestallte, hat mich auf hardwre und Softwarelösung gebracht. Einfach mit einen X-beliebigen Pin den entsprechenden Device SS-Pin auf low und dann das HW-SPI benutzen? So, wie ich das bisher verstanden habe, muß mal bei jedem Device, vor der Übertragung auf low ziehen und nach 8bit, wieder auf high. Was ist nun Richtig? SS-Pin nach Transmission wieder auf High oder SS-Pin nach jedem Byte/Befehl auf high? Gruß
RFm - User wrote: > @Christoph, > > ich habe lediglich ein RFM12 und einen AD7322 am SPI - Bus, daher eig. > kein Problem. Zumal das RFM-Modul das Ergebnis der Wandlung überträgt. > Lediglich die Frage, wie ich den SS-Pin gestallte, hat mich auf hardwre > und Softwarelösung gebracht. > Einfach mit einen X-beliebigen Pin den entsprechenden Device SS-Pin auf > low und dann das HW-SPI benutzen? Ja, genau. > So, wie ich das bisher verstanden habe, muß mal bei jedem Device, vor > der Übertragung auf low ziehen und nach 8bit, wieder auf high. Was ist > nun Richtig? Der Pin bleibt für die Dauer der Übertragung low, du kannst also mehrere Bytes auf einmal übertragen. > SS-Pin nach Transmission wieder auf High oder SS-Pin nach jedem > Byte/Befehl auf high? Wie gesagt, nach der ganzen Übertragung. Und noch am Rande: Benutze den SS-Pin des Atmegas nicht als Eingang (egal für was), da der Atmega bei einem low-Impuls am SS-Pin und aktiviertem Hardware-SPI seinen Master-Mode verlässt und zum Slave wird.
RFm - User wrote: > Einfach mit einen X-beliebigen Pin den entsprechenden Device SS-Pin auf > low und dann das HW-SPI benutzen? Bei einem reinen SPI-Master hat der SS-Pin keine besondere Funktion. Zumindest nicht wenn als Ausgang programmiert. Es ist daher reine Gewohnheit, ihn als Slave-Select zu verwenden. Jeder andere Pin tut es auch. Manchmal muss man sogar, weil bei älteren LPC2000 der SS Pin dabei garnicht verwendbar ist. Es ist durchaus üblich, das gleiche Hardware-SPI für mehrere Slaves zu verwenden. Mit einen Select-Pin pro Slave, von denen maximal einer aktiv (0) ist.
Nachdem ich schon mehrfach in den Threads hier von Problemen mit der HW-SPI gelesen habe. Wollte ich eben auf eine mögliche Fehlerquelle hinweisen. Bin selbst drauf reingefallen und es hat ein paar Stunden gedauert, bis ich drauf gekommen bin: Den RFM kann man nur auslesen, wenn man seinen -eigentlich elektrisch unabhängigen- Dateneingang SDI, also MOSI auf Low hält. Bei der Hardware-SPI bedeutet das, man kann nicht "irgenwas" reintakten um die Clock zu erzeugen, sondern es muss eine 0 sein. Gruß Stefan
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.