mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RFM12 - Software oder Hardware SPI


Autor: RFm - User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: RFm - User (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan K. (nukeman)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.