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
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.