Pollin Funkmodule

OP #2732781
Hallo,
Ich versuche seit einiger Zeit die Funkmodule RFM01 und RMF02 von Pollin 
zum laufen zu kriegen. Mitlerweile ist es mir sogar gelungen das RFM02 
korrekt anzusteuern, leider regt sich seit mitlerweile 1.5Monaten noch 
immer nichts bei dem RFM01. Der Code stammt aus diesem Beitrag: 
Beitrag "Beispielprogramm für RFM12 433MHz Funk-Module" von Benedikt K.. Der 
verwendete Mikrocontroller ist ein Atmega23(programmiert in c) mit einem 
16MHz Quarz(beim Sender wurden die 10MHz des Funkmoduls verwendet).

Ich vermute, dass die Frequenz des SPI nicht stimmt(von diesem Problem 
haben einige berichtet), leider habe ich nicht herausgefunden wie ich 
die Taktrate des SPI anpassen kann?!
1
#define RF_PORT  PORTB
2
#define RF_DDR  DDRB
3
#define RF_PIN  PINB
4

5
#define SDI    5  // SDI,  -> RF02
6
#define SCK    6  // SCK,  -> RF02
7
#define CS    7  // nSEL, -> RF02
8
#define SDO    0  // SDO,  <- RF02
9

10
// nFFS: 1-10k Pullup an Vcc !!!
11

12
static unsigned char sdrssi, sgain;
13

14
void rf01_trans(unsigned short wert)
15
{  unsigned char i;
16

17
  cbi(RF_PORT, CS);
18
  for (i=0; i<16; i++)
19
  {  if (wert&32768)
20
      sbi(RF_PORT, SDI);
21
    else
22
      cbi(RF_PORT, SDI);
23
    sbi(RF_PORT, SCK);
24
    wert<<=1;
25
    _delay_us(0.2);
26
    cbi(RF_PORT, SCK);
27
  }
28
  sbi(RF_PORT, CS);
29
}
30

31
void rf01_init(void)
32
{  unsigned char i;
33
  RF_PORT=(1<<CS);
34
  RF_DDR=(1<<SDI)|(1<<SCK)|(1<<CS);
35

36
  for (i=0; i<11; i++)
37
    _delay_ms(10);      // wait until POR done
38

39
  rf01_trans(0xC2E0);      // AVR CLK: 10MHz
40
  rf01_trans(0xC42B);      // Data Filter: internal
41
  rf01_trans(0xCE88);      // FIFO mode
42
  rf01_trans(0xC6F7);      // AFC settings: autotuning: -10kHz...+7,5kHz
43
  rf01_trans(0xE000);      // disable wakeuptimer
44
  rf01_trans(0xCC00);      // disable low duty cycle
45
}

Ich hoffe ihr könnt/wollt mir helfen :)

MfG Daniel
Gast
>> leider habe ich nicht herausgefunden wie ich
>> die Taktrate des SPI anpassen kann?!

>SPI Control Register – SPCR

Macht bei Software SPI keinen Sinn;)
Ich würde mal an den delays rumfummeln.
Gast
Was meinst du mit regt sich nichts?
Versuch mal nicht das init auszuführen sondern einfach mal nach dem 
Start
Int result = rf01_trans(0x0) auszuführen.
Kommt dort was zurück?

Bei mir war meistens wenn's garnicht geklappt hat die verkabelung 
schuld.

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.