RFM12 Verständnisprobleme

Gast #2122110
Lesenswert?
• ▲
▼
Hallo Freunde !

Ich möchte mich ein wenig mit drahtloser Datenübertragung beschäftigen, 
und bin auf das
Funkmodul RFM12 gestossen.

Dabei habe ich auch den Beitrag und den Sourcecode von Benedikt K. aus 
dem Forum und das
Datenblatt von Hope RF studiert.

Erstmal muß dem Benedikt K. meinen Respekt zollen - mit so einer 
Datenblattqualität die Sache so
hinzukriegen ist schon nicht schlecht.

Trotzdem habe ich noch einige Verständnisprobleme:

1)
    Die Anzahl der Statusbits laut Datenblatt ist 18 ?
    Wie kriege 18 Bits mit der StandardSpi Funktion des Atmega. Der 
Commandcode für
     das Statuswort ist 0X0000 d.h. ich sende 2 Bytes und kriege 2 Bytes 
aus der SPI Funktion
     zurück. Wie komme ich zu den restlichen 2 Bits ?

2)
  Für die Abfrage ob Daten im Buffer stehen (Polling) oder der 
Sendebuffer bereit ist, wird einfach die
  MISO Leitung abgefragt !
  Warum ist sichergestellt, daß an der MISO Leitung immer RGIT oder FFIT 
Bit ansteht ohne
  das Statuskommando abzusetzen.

(Auszug aus Source von Benedikt K.)
 void rf12_ready(void)
{
  cbi(RF_PORT, CS);
  cbi(RF_PORT, SDI);
  asm("nop");
  while (!(RF_PIN&(1<<SDO))); // wait until FIFO ready
}

unsigned rf12_data(void)
{
  cbi(RF_PORT, CS);
  cbi(RF_PORT, SDI);
  asm("nop");
  if(RF_PIN&(1<<SDO))
    return 1;
  else
    return 0;
}

Vielleicht kann jemand meine Konfusion etwas begrenzen.

Vielen Dank Peter
#2122142
Lesenswert?
• ▲
▼
Hallo,

wo hast Du 18 Statusbits her? Es sind nur 16.

Den jeweiligen Zustand von SDO hat der Hersteller der ICs festgelegt, 
steht auch so im Datenblatt. SDO hat den aktuellen Zustand von Bit0 im 
Statusword.

Abschnitt 15 Status Read Command beschreibt die Bits.
Im Diagramm ist auch zu sehen, daß der Status von SDO bereits gültig 
ist, sobald /nSEL aktiv wird.

Gruß aus Berlin
Michael
Gast #2122308
Lesenswert?
• ▲
▼
Durch schnell hinschauen daher meine 18Bits (eigentlich 19)


Hex = 0000
Bit-Syntax: 0000000000000000<000>
Rückgabe-Syntax: x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | x10 | 
x11 | x12 | x13 | x14 | x15 | x16 | x17 | x18
x0 -> x5 = Interrupt bits
x6 -> x15 = Status Bits
x16 -> x18 = FIFO
x0 = FFIT / RGIT (RGIT = TX-Register ist bereit neue Daten zu senden ... 
kann mit dem TX-Register gelöscht werden)
    (FFIT = Die Anzahl der Datenbits im FIFO-Puffer hat das eingestellte 
Limit erreicht.
     Kann mit einer der FIFO-Lesemethoden gelöscht werden)
x1 = POR (PowerOnReset)
x2 = FFOV / RGUR (RGUR = Der Datenstrom beim Senden ist abgerissen, da 
nicht schnell genug Daten nachgeladen wurden)
     (FFOV = Der RX-FIFO ist übergelaufen)
x3 = WKUP
x4 = EXT (Externer IRq vom nINT-Pin)
x5 = LBD (Low Battery Detected)
x6 = FFEM (Der FIFO-Puffer ist leer/EMpty)
x7 = RSSI/ATS (ATS = )(RSSI = Die Signalstärke ist über dem 
eingestelltem Limit)
x8 = DQD
x9 = CRL
x10 = ATGL
x11 = OFFS_6 (sign of offset)
x12 = OFFS_3
x13 = OFFS_2
x14 = OFFS_1
x15 = OFFS_0
x16 = FO
x17 = FO+1
x18 = FO+2

Peter

Antwort schreiben

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.

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.