RFM12 - Software oder Hardware SPI

Gast #1129571
Lesenswert?

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ß
Gast #1129871
Lesenswert?

@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ß
Persönliche Seite #1129874
Lesenswert?

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.
#1129877
Lesenswert?

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.
#1582885
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren