- LiFePO4 Speicher Test         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: RFM01 /02 Modul korrekt angeschlossen?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    12.03.2008
    Beiträge
    53

    RFM01 /02 Modul korrekt angeschlossen?

    Anzeige

    E-Bike
    Hallo,
    und bitte nicht steinigen da ich mir das RFM01/02 und nicht das RFM12 Modul geholt habe. Nun zur Sache: Ich habe eine Schaltung realisiert die mir Temperatur und Geschwindigkeitsdaten ausliest und an ein Display übergibt. Funktioniert auch alles nun will ich die Sensorik + Atmega8 und das Display mit Atmega8 über das Funkmodul kommunizieren lassen. Ich habe mir das C Beispiel von Pollin durchgelesen, darin steht auch die Beschaltung der Pins:
    Pinbelegung RFM01
    -----------------------
    ATMEGA8 RFM01
    -----------------------
    SCK SCK
    MISO SDO
    MOSI SDI
    SS nSEL
    INT0 nIRQ
    PD5 LED2
    PD6 LED1
    PD4 Module-Power

    Das hier GND und VDD nicht aufgeführt sind verstehe ich noch aber was ist mit der DATA Leitung? Darüber laufen doch die eigentlichen Daten, oder?
    Was mich noch wundert ist die "Module-Power" <- Was soll das sein und brauche ich das? DIe Leds hab ich weggelassen.

    Nun noch 2 Fragen die mich beschäftigen: Warum hat das RFM02 Modul 6x GRND ? Und, kann ich nicht auch 2 Tiny2313 anschliessen, oder geht das nicht weil denen "SS" fehlt ?


    Ich entschuldige mich falls diese Fragen zu stupide sind, aber ich habe mich noch nie mit Funkmodulen beschäftigt.

    Vielen Dank im Vorraus

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    183
    Hallo,

    Keine Sorge: So doof, wie du dich gerade fühlst, bist du nicht:
    Der Wischlappen, den Pollin mit dem Modul ausliefert ist leider genau das: Unvollständig und enthält Fehler.

    Glücklicherweise haben schon genug leute Arbeit reingesteckt, um dieses Modul zum funktionieren zu bewegen:
    http://www.mikrocontroller.net/articles/AVR_RFM12

    Irgendwo hier gibt es auch Hinweise für die Varianten ohne Fifo:
    http://www.mikrocontroller.net/topic/67273

    Aber mit der richtigen Dokumentation sind diese Module eine echte Wunderwaffe.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    12.03.2008
    Beiträge
    53
    So ich habe jetzt schonmal den Code für den RFM02 in Bascom abgeändert, Funktioniert scheinbar aber nicht einwandfrei. Hab mittels einer LED getestet wie weit er kommt. Er geht bis zum anfang der Rf12_init funktion und dann wars das. Und ich weiß nicht warum. Hier der Code:

    Code:
    ' generated. Take care that the chip supports all fuse bytes.' ########################################################################
    ' ### RF12-Test in Bascom
    ' ### Basiert auf Code von Benedikt K.
    ' ### Joachim Fossie Bär Reiter 04/2007
    ' ########################################################################
    
    
    $regfile = "m88def.dat"
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 10                                               'default use 10 for the SW stack
    $framesize = 40
    
    '$PROG &HFF,&HFF,&HD9,&H00' generated. Take care that the chip supports all fuse bytes.
    
    $crystal = 8000000
    $baud = 19200
    Baud = 19200
    
    Declare Sub Rf12_init
    Declare Function Rf12_trans(byval Wert As Word) As Word
    Declare Sub Rf12_setfreq(byval Freq As Single)
    Declare Sub Rf12_setbandwith(byval Bandwith As Byte , Byval Gain As Byte , Byval Drssi As Byte)
    Declare Sub Rf12_setbaud(byval Rfbaud As Long)
    Declare Sub Rf12_setpower(byval Outpower As Byte , Byval Fskmod As Byte)
    Declare Sub Rf12_ready
    Declare Sub Rf12_txdata(byval Maxchar As Byte)
    Declare Sub Rf12_rxdata(byval Maxchar As Byte)
    
    Const Rf12freq = 433.92
    Const Rf12baud = 19200
    Const Maxchar = 32
    
    'config the SPI in master mode.The clock must be a quarter of the slave cpu
    ' Hier ggf. den SoftSPI reinmachen
    Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128 , Noss = 1
    
    ' werden benötigt für rf12_ready
    Spi_cs Alias Portb.2                                        ' SS-Pin
    Config Spi_cs = Output
    Spi_sdo Alias Pinb.3                                        ' MOSI-PIN
    Set Spi_cs
    Config Portc.4 = Output
    Led Alias Portc. 4
    Led = 1
    'init the spi pins
    Spiinit
    
    ' was so gebraucht wird
    Dim Count As Byte
    Dim Temp As Word
    Dim Rfdata(32) As Byte
    Dim Text As String * Maxchar At Rfdata Overlay
    
    Print "Init"
    Waitms 1000
    Call Rf12_init                                              ' ein paar Register setzen (z.B. CLK auf 10MHz)
    
    
    ' ########################################################################
    ' ###### Hauptproggi
    ' ########################################################################
    Waitms 1000
    Led = 0
    Waitms 1000
    Text = "Dies ist eia 433MHz Test !!!!!{013}{010}"
    
    ' Je nachdem ob Sender oder Empfänger die entsprechenden Zeilen aktivieren
    Do                                                          'Ewigschleife
    
    
    ' Hier ist die Senderoutine
      Print "Sende"
      Call Rf12_txdata(maxchar)
    
      Wait 1
      Toggle Portc.4
    
    Loop
    
    
    End                                                         'end program
    
    
    ' ########################################################################
    ' ###### Unterroutinen
    ' ########################################################################
    
    Sub Rf12_init:
       Toggle Portc.4
      Waitms 1000
      Temp = Rf12_trans(&Hcc00)
      Toggle Portc.4
      Waitms 400
      Temp = Rf12_trans(&H8b61)
      Toggle Portc.4
      Temp = Rf12_trans(&Ha640)
      Toggle Portc.4
      Temp = Rf12_trans(&Hd040)
      Toggle Portc.4
      Temp = Rf12_trans(&Hc823)
     Toggle Portc.4
      Temp = Rf12_trans(&Hc220)
     Toggle Portc.4
      Temp = Rf12_trans(&Hc039)
     Toggle Portc.4
    End Sub
    
    
    
    Sub Rf12_txdata(byval Maxchar As Byte)
      Temp = Rf12_trans(&H8238)
      Rf12_ready
      Temp = Rf12_trans(&Hb8aa)
      Rf12_ready
      Temp = Rf12_trans(&Hb8aa)
      Rf12_ready
      Temp = Rf12_trans(&Hb8aa)
      Rf12_ready
      Temp = Rf12_trans(&Hb82d)
      Rf12_ready
      Temp = Rf12_trans(&Hb8d4)
      Rf12_ready
      For Count = 1 To Maxchar
        Rf12_ready
        Temp = &HB800 + Rfdata(count)
        Temp = Rf12_trans(temp)
      Next Count
      Rf12_ready
      Temp = Rf12_trans(&H8208)
    End Sub
    
    
    
    
    
    Function Rf12_trans(byval Wert As Word) As Word
      Local Lowbyte As Byte
      Local Highbyte As Byte
    
      Lowbyte = Wert And 255
      Shift Wert , Right , 8
      Reset Spi_cs
    
      Highbyte = Spimove(wert)
      Lowbyte = Spimove(lowbyte)
      Set Spi_cs
    
      Temp = Highbyte * 256
      Temp = Temp + Lowbyte
      Rf12_trans = Temp
    End Function
    
    
    Sub Rf12_ready
      Reset Spi_cs
      While Spi_sdo = 0
      Wend
    End Sub

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    183
    Wahrscheinlich das Modul nicht korrekt Verkabelt. Wie sieht deine momentane Verkabellung aus? Pullup dran?

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    12.03.2008
    Beiträge
    53
    ich hab an die Data Leitung einen 10k Widerstand und dann an Vcc. Andere Widerstände habe ich nicht verbaut.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    183
    Pullup ist korrekt.
    Ansonsten sind nur SDO, SEL, SCK, SDI angeschlossen?
    -Dann ist alles richtig.

    Das sich der trans-Routine aufhängt hatte ich, als ich den Pullup vergessen hatte.

    Du benutzt bascom, was natürlich gefährlich ist, da der fifo-Kram aus dem rf12 Code rausgeworfen werden muss.

    Zuerst würde ich den C-Code kurz testen. Wenn der funktioniert kannst du zumindest davon ausgehen, daß es nicht an der Hardware liegt.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    12.03.2008
    Beiträge
    53
    Die SDO, SEL, SCK, SDI Leitungen sind alle so angeschlossen wie sie im comwebnet stehen.
    Inwiefern ist der Fifo Kram gefährlich? Das habe ich nicht verstanden.
    Ja, den C Code testen...... Mit C habe ich den Mikrocontroller noch nie Programmiert, hab also kein Programm dafür. Ich würde also jede andere Bascom Lösung vorziehen.

    Ich will für den anfang nur ein einfaches Bascom Programm welches mir am Empfänger eine LED ein und aus schaltet.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Defiant
    Registriert seit
    17.04.2005
    Ort
    Hamburg
    Beiträge
    183
    Weil die RFM01/02 im Gegensatz zu dem RFM12 keinen FIFO haben.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    12.03.2008
    Beiträge
    53
    aha............................................... ...............

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    12.03.2008
    Beiträge
    53
    das wußte ich noch nicht. Das erklärt einiges. Dann kann das modifizierte RFM12 Programm auch schlecht funktionieren wenn ich das richtig sehe. Dann werde ich wohl erstmal auf meine RFM12 866mhz Module warten bevor ich mich weiter in arbeit stecke und die RF01/02 Module eintüten.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress