RFM12 funktioniert nicht immer

OP #1222132
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:
1
void rf12_ready(void)
2
{  cbi(RF_PORT, SDI);  
3
  asm("nop");
4
  asm("nop");
5
  while (!(RF_PIN&(1<<SDO))); // wait until FIFO ready
6
  cbi(RF_PORT, CS);
7
}

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

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.
Angehängte Dateien:
#1222153
Richard B. wrote:
> Hallo zusammen,

Hallo.


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

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

Eine eigene Frage? Dieser Thread ist über 17 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.