mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Idiotenfragen, u.a. wo ist beim RFM12 "CS"?


Autor: Simon S. (-schumi-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Community!

Ich möchte gern 2 AVRs dazu bringen mit RFM12s zu kommunizieren:
AVR1:
Atmega 32
Auf Funk-AVR-Evaluationboard von Pollin drauf, Daten ein-/ausgabe via 
UART im Terminal
Getaktet wird der AVR via 16 Mhz Quarz
AVR2:
Atmega32
Auf Steckbrett, 16*2 LCD für Datenausgabe
Taktung: Entweder intern oder mit den 10 Mhz vom RFM, weis noch nicht

Uart & LCD funzen schon mal.

Jetzt zu meinen Fragen:
1.
Hab mir mal den Quellcode für das RFM12 von Benedikt 
(Beitrag "Beispielprogramm für RFM12 433MHz Funk-Module") geholt. Da steht in der 
rf12.c folgendes drin:
>#define SDI    5 // PB5
>#define SCK    7 //PB7
>#define CS    // ?????
>#define SDO    6 //PB6
Welcher Pin am RFM12 ist CS? Alles Andere konnte ich finden

2.
Die Jumper muss ich nur für SDI, SD0, SCK, CS (??) und VCC setzen, oder?

3. Gibt es irgendwo ein gutes Tutorial für das RFM12? Also so ne 
wunderschöne Step by Step Anleitung?

Bin für jede Hilfe dankbar :-)
-schumi-

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Welcher Pin am RFM12 ist CS? Alles Andere konnte ich finden

CS -> Chip Select
nSEL -> Not SELect

Obacht, ersteres ist dem Namen nach active high, zweiteres (laut Name 
und laut Datenblatt) active low. Da der Code aber augenscheinlich für 
dem RFM12 geschrieben wurde nehme ich einfach mal an, dass da einer in 
der Namensgebung etwas nachlässig war.

> 2. Die Jumper muss ich nur für SDI, SD0, SCK, CS (??) und VCC setzen,
> oder?

Depends. Zweckmäßig wär für alles was Du anschließen willst :-)

> 3. Gibt es irgendwo ein gutes Tutorial für das RFM12? Also so ne
> wunderschöne Step by Step Anleitung?

Ja, das Datenblatt :-)  Vorzugsweise gleich das vom Silicon Labs SI4420 
(das ist der Tschipp der im RFM12 verbaut ist).

HTH

Autor: Simon S. (-schumi-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Antwort!
jetzt ist das ganze schon ein bischen klarer.

>CS -> Chip Select
>nSEL -> Not SELect

nSEL ist mit PB4 verbunden -> "#define CS    4"

Aber warum muss ich dann CS definieren und nicht gleich nSEL??
nSEL muss invertiert werden um CS zu erhalten. Wird das in Benedikts 
Software schon gemacht oder muss ich dass selbst nachtragen bzw. 
logik-IC dazwischen klemmen?

Das Datenblatt werde ich mir bei der nächsten Gelegenheit zu Gemüte 
führen.

Noch mal Danke für die Hilfe!
-schumi-

Autor: Mobius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Wenn du dir den Code von Benedikt zu Gemüte führst, wirst du schnell 
erkennen, dass CS (das define) schon in der Software active low 
gehandhabt wird. Als Beispiel kannst du dir die 1. Funktion rf12_trans 
anschauen, wo der 1. Befehl CS auf low zieht um das Modul auszuwählen. 
Das heißt, du musst nichts mit Gattern machen (wobei ich dir vor der 
Verwendung eines Inverters zu der Modifikation des Codes raten würde, 
ist einfacher ;) ).

Eine ganz korrekte Namensnennung hätte das Signal, wie schon g457 gesagt 
hat, als nCS deklariert.

gruß
Mobius

Autor: Simon S. (-schumi-)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch für deine Antwort ein Danke!

Aktueller Stand:
Jumper:
SD0, NSEL, SCK, SDI, VCC gesetzt, sonst alles frei
Einstellungen im Programm:
>#define RF_PORT  PORTB
>#define RF_DDR  DDRB
>#define RF_PIN  PINB

>#define SDI    5
>#define SCK    7
>#define CS    4 //entspricht !NSEL
>#define SDO    6

Ich hab noch ein paar mal Statusmeldungen via der beiden LEDs 
reingemacht und rausgefunden, dass das Programm anscheinend bei
>void rf12_ready(void)
>{  cbi(RF_PORT, CS);
>  while (!(RF_PIN&(1<<SDO))); // wait until FIFO ready
>}
hängen bleibt, wenn ich die Funktion "send();" aufrufe...

Werd mal Google und SuFu bemühen, für Tipps aber immer dankbar :-)

Autor: slashbrain (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Simon

ich bekomme den selben Fehler wie du, hast du inzwischen eine Lösung 
gefunden?

Gruß slashbrain

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.