RFM12 -- SPI Configuration

OP #2649792
Grüss euch,

Ich experimentiere gerade mit zwei RFM12 Modulen. Bevor ich aber mit der 
Initialisierung etc beginne, wollt ich sicher stellen, dass die SPI 
Kommunikation einwandfrei ist. In einen Beitrag hier hab ich gelesen, 
man könne direkt nach dem Einschalten das Statusregister abfragen und 
man bekomme 0x4000 als Antwort. Tja, aber alles was ich bekomme ist 
0x0000.

Hier ein paar Auszüge aus meinem Code:
1
#use spi(MODE=0, BITS=16, FORCE_HW)
1
setup_spi(SPI_MASTER | SPI_L_TO_H | SPI_CLK_DIV_16);
1
  output_low(pin_b2);    //SS
2
  value1 = spi_xfer(0x00);
3
  value2 = spi_xfer(0x00);
4
  output_high(pin_b2);  //SS



Direkt nach meiner SPI Sequenz geht nIRQ auf HIGH, also reagieren tut 
das Ding.

Beschaltung ist die Standart Mindestbeschaltung fürs RFM12. Aufgebaut 
auf ein kleiens Steckbrett, verbunden mit einem kleinem Demoboard.
PIC18F4550 + MPLAB + CCS
Ich verwende die Hardware SPI-Pins.

Vielleicht hat ja jemand eine Idee,

danke,
mfg alex,
Gast #2649809
Ich arbeite normal mit Atmel, aber bist du dir sicher, dass deine Init 
richtig ist?
Da steht doch was von 16 bits und du überträgst aber zwei mal 8 bit.

Gruß
OP #2649827
Servus,

Ich habs auch schon so probiert:
1
output_low(pin_b2);    //SS
2
spi_write(0x0000); 
3
value3 = spi_read();
4
output_high(pin_b2);  //SS
1
output_low(pin_b2);    //SS
2
value3 = spi_xfer(0x0000);
3
output_high(pin_b2);  //SS

Das BITS=16 im #use hab ich auch schon auskommentiert, bringt auch nix.


mfg,
alex,
#2650680
Guten Tag.

Ich würde mal empfehlen, nachdem du die Daten mit 0x00 angefordert hast 
sie mit 0xFF (NOP) raus zu schieben.

Dann solltest du 0x08 erhalten.
Hier mal meine UART konfiguration (ATmega8, vielleicht hilft dir das was 
in verbindung mit dem Datenblatt:
SPCR= 1<<SPIE | 1<<SPE | 1<<MSTR | 1<<SPR1;

Ich hatte zuerst den Fehler gemacht, das ich ohne Interrupts gearbeitet 
hatte und nicht ausreichen lange gewartet hatte weswegen nur Müll raus 
kahm.

Hoffe ich konnte helfen.
OP #2651319
Bin grad dabei das RFM12 zu initialisieren und dazu studiere ich gerade 
den RFM12 Artikel hier auf Mikrocontroller.net.

Kann es sein, dass da ein Fehler ist?
Bei "Bitrate (Data Rate C6xx)" gibts ja die Tabelle
1-0-0-0-0-1-1-0....Vorgabe 0xC623. Wenn ich aber den Hexwert umrechne, 
bekomm ich:
1-1-0-0-0-1-1-0....

mfg alex,

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.