www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RFM12 funktioniert nicht immer


Autor: Richard B. (rbrose)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein komisch Problem. Im Dateianhang sieht man wie ich meine 
RFM12 angeschlossen habe.

Zu Problem:
1. Senden ging überhaupt nicht ... bis ich im Code diese Zeilen:
void rf12_ready(void)
{  cbi(RF_PORT, SDI);  
  asm("nop");
  asm("nop");
  while (!(RF_PIN&(1<<SDO))); // wait until FIFO ready
  cbi(RF_PORT, CS);
}

in folgende geändert habe:
void rf12_ready(void)
{  cbi(RF_PORT, SDI);
  cbi(RF_PORT, CS);
  asm("nop");
  asm("nop");
  while (!(RF_PIN&(1<<SDO))); // wait until FIFO ready
}

Jetzt funktioniert das senden ab und zu. Heißt ich gebe Strom ... geht 
nicht ... schalte ich aus ... gebe Strom wider Strom ... dann gehts usw.

Das komische ist ... wenn ich ISP Stecker von AVR Dragon Stecken lasse 
und ein Reset mit Dragon mache ... geht es immer.

ISP Stecker dran -> geht immer.


Was könnte das Problem sein? Irgendwie komme ich nicht drauf :-(


Vielen Dank für eure Ratschläge im voraus.

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richard B. wrote:
> Hallo zusammen,

Hallo.


> Zu Problem:
> 1. Senden ging überhaupt nicht ... bis ich im Code diese Zeilen:
>
>
> void rf12_ready(void)
> {  cbi(RF_PORT, SDI);
>   asm("nop");
>   asm("nop");
>   while (!(RF_PIN&(1<<SDO))); // wait until FIFO ready
>   cbi(RF_PORT, CS);
> }
> 
>
> in folgende geändert habe:
>
>
> void rf12_ready(void)
> {  cbi(RF_PORT, SDI);
>   cbi(RF_PORT, CS);
>   asm("nop");
>   asm("nop");
>   while (!(RF_PIN&(1<<SDO))); // wait until FIFO ready
> }
> 

Kein Wunder, der Chip Select Pin muss ja auch auf Low gezogen werden, 
damit der RFM überhaupt in die SPI Leitung "sprechen" darf.


> Jetzt funktioniert das senden ab und zu. Heißt ich gebe Strom ... geht
> nicht ... schalte ich aus ... gebe Strom wider Strom ... dann gehts usw.
> Das komische ist ... wenn ich ISP Stecker von AVR Dragon Stecken lasse
> und ein Reset mit Dragon mache ... geht es immer.
> ISP Stecker dran -> geht immer.
> Was könnte das Problem sein? Irgendwie komme ich nicht drauf :-(

Da hast höchstwahrscheinlich nen Masse Problem. Löte noch mal alle 
Massepunkte des RFM auf der Platine nach.


Gruß

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.