- 12V Akku mit 280 Ah bauen         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 45

Thema: rfm01, Rfm02 Rfm12 Pollin Funkmodul mit bascom

  1. #21
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Anzeige

    Powerstation Test
    Hallo Eisbaeeer,
    Ich habe den Optokoppler eingebaut.
    Der Spannungsrgler wurde heiss das man ihn nicht mehr anfassen
    kann.
    Was passiert:
    Beim Start des Boards steigt der Strom auf 170mA,
    schaltet der Optokoppler durch,sinkt zwar der Strom auf seine
    Nennstärke aber die Schleife bleibt stehen.Sie muss geresettet
    werden und dann geht das Spiel von vorne los.
    Durch meine Drahtbrücke wird der RFM12 sofort mit Spannung
    versorgt und der Nennstrom bleibt konstant bei 60mA.
    Muss mich korrigieren, nehm den Optokoppler raus.
    Warum das so ist weiss ich noch nicht.
    Die Schleife muss aber auch ohne RFM 12-Spannungsversorgung
    laufen.Macht sie bei mir jedenfalls.

    Wigbert

  2. #22
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Nachtrag,
    bei meinem Eigenbau-RFM12 Board habe ich diesen "Stromanstieg"
    wie bein Pollinboard nicht. Werde das mal weiter untersuchen.

    Wigbert

  3. #23
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Ich noch mal,
    Ich habe jetzt mal zwischen dem Öffnen des Optokopplerpins
    und des weiteren Codes ein Wait 1 reingesetzt.
    (In der Zeit wird doch wohl der RFM12 wach sein)
    Der o.g.Code bleibt bei eingebauten Optokoppler trotzdem stehen.
    An VDD des RFM12 liegen dann gute 4V an,wärend das restliche
    System mit 5V versorgt wird.

    Wigbert

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    27.05.2007
    Beiträge
    67
    Hallo

    Zitat Zitat von Picht
    Auf dem Pollinboard wurde ein 10K Widerstand zwischen FSK und
    VDD am RFM12 gelegt.
    Wigbert
    So, ich hab jetzt statt dem Optokoppler 2 Stifte eingelötet. Mit einem Jumper kann ich jetzt dauernd einschalten. Was ich aber nicht gefunden habe, ist der 10K Widerstand. Laut Schaltplan ist an FSK nichts angelegt, ausser Portb.3 .
    Nachdem ich den Portb.3 auf High gesetzt hab, läuft nun die Schleife. Weiteres konnte ich jetzt noch nicht testen. Hier noch 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 = "m32def.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 = 16000000
    $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
    
    Config Portd.5 = Output
    Config Portd.6 = Output
    Config Portb.3 = Output
    
    Portb.3 = 1
    
    ' werden benötigt für rf12_ready
    Spi_cs Alias Portb.4                                        ' SS-Pin
    Config Spi_cs = Output
    Spi_sdo Alias Pinb.6                                        ' MISO-PIN
    Set Spi_cs
    
    '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"
    Call Rf12_init                                              ' ein paar Register setzen (z.B. CLK auf 10MHz)
    Print "Set Frequenz"
    Call Rf12_setfreq(rf12freq)                                 '  Sende/Empfangsfrequenz auf 433,92MHz einstellen
    Print "Set Bandwith"
    Call Rf12_setbandwith(4 , 1 , 4)                            '  200kHz Bandbreite, -6dB Verstärkung, DRSSI threshold: -79dBm
    Print "Set Baudrate"
    Call Rf12_setbaud(rf12baud)                                 '  19200 baud
    Print "Set Power"
    Call Rf12_setpower(0 , 6)                                   '  1mW Ausgangangsleistung, 120kHz Frequenzshift
    
    
    ' ########################################################################
    ' ###### Hauptproggi
    ' ########################################################################
    
    
    Text = "Dies ist ein 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
    
    ' Hier ist die Empfangsroutine
    '  Print "Empfange"
    '  Call Rf12_rxdata(maxchar)
    '  For Count = 1 To Maxchar
    '    Print Chr(rfdata(count)) ; "-";
    '  Next Count
      Print
    
    Toggle Portd.6
    Loop
    
    
    End                                                         'end program
    
    
    ' ########################################################################
    ' ###### Unterroutinen
    ' ########################################################################
    
    Sub Rf12_init:
      Waitms 150
      Temp = Rf12_trans(&Hc0e0)
      Temp = Rf12_trans(&H80d7)
      Temp = Rf12_trans(&Hc2ab)
      Temp = Rf12_trans(&Hca81)
      Temp = Rf12_trans(&He000)
      Temp = Rf12_trans(&Hc800)
      Temp = Rf12_trans(&Hc4f7)
    End Sub
    
    
    Sub Rf12_setfreq(byval Freq As Single)
    
      Freq = Freq - 430.00
      Temp = Freq / 0.0025
      If Temp < 96 Then
        Temp = 96
      Elseif Temp > 3903 Then
        Temp = 3903
      End If
      Temp = Temp + &HA000
      Temp = Rf12_trans(temp)
    End Sub
    
    
    Sub Rf12_setbandwith(byval Bandwith As Byte , Byval Gain As Byte , Byval Drssi As Byte)
      Drssi = Drssi And 7
      Gain = Gain And 3
      Temp = Bandwith And 7
      Shift Temp , Left , 2
      Temp = Temp + Gain
      Shift Temp , Left , 3
      Temp = Temp + Drssi
      Temp = Temp + &H9400
      Temp = Rf12_trans(temp)
    End Sub
    
    
    Sub Rf12_setbaud(byval Rfbaud As Long )
      Local Ltemp As Long
    
      If Rfbaud < 663 Then Exit Sub
    
      If Rfbaud < 5400 Then
        Temp = 43104 / Rfbaud
        Temp = Temp + &HC680
      Else
        Ltemp = 344828 / Rfbaud
        Temp = Ltemp
        Temp = Temp + &HC600
      End If
      Decr Temp
      Temp = Rf12_trans(temp)
    End Sub
    
    
    Sub Rf12_setpower(byval Outpower As Byte , Byval Fskmod As Byte)
      Outpower = Outpower And 7
      Temp = Fskmod And 15
      Shift Temp , Left , 4
      Temp = Temp + Outpower
      Temp = Temp + &H9800
      Temp = Rf12_trans(temp)
    End Sub
    
    
    Sub Rf12_txdata(byval Maxchar As Byte)
    Toggle Portd.5
      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
    
    
    Sub Rf12_rxdata(byval Maxchar As Byte)
      Temp = Rf12_trans(&H82c8)
      Temp = Rf12_trans(&Hca81)
      Temp = Rf12_trans(&Hca83)
      For Count = 1 To Maxchar
        Rf12_ready
        Temp = Rf12_trans(&Hb000)
        Rfdata(count) = Temp
      Next Count
      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
      nop
      While Spi_sdo = 0
      Wend
    End Sub
    Grüße Eisbaeeer

  5. #25
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Hallo Eisbaeeer,
    ein Stück weiter
    die 10 K sind nicht Standard und habe ich aus anderen Foren.
    Da der M8 und der m32 beschaltet ist ,einfach auf eine leere Fassung
    stecken. Richtiger Pin natürlich.
    Hast Du das Funkmodul nicht angeschaltet?
    Ich nutze den FSK Pin nicht (jumper auf)
    Leg mal Deine E-Mailadr. in mein Postfach.
    und Deine m32 Fuse dazu.
    Das Ding muss laufen.

    Wigbert

  6. #26
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Ich noch mal,
    hab mal schnell probiert, ohne den zusätzlichen 10K Widerstand
    bleibt meine Schleife auch stehen.
    Also 10K rein und den Pin in Ruhe lassen.

    Anbei mal die Beschaltung des geistigen Vaters des Codes
    VDD -> VCC
    GND -> GND
    SDI -> MOSI (PB5, Pin 6)
    SDO -> MISO (PB6, Pin 7)
    SCK -> SCK (PB7, Pin 8 )
    nSel -> SS (PB4, Pin 5)
    FSK -> R 10k Pullup (also an +5V) !!!!!


    Wigbert

  7. #27
    Benutzer Stammmitglied
    Registriert seit
    27.05.2007
    Beiträge
    67
    Zitat Zitat von Picht
    Hallo Eisbaeeer,
    die 10 K sind nicht Standard und habe ich aus anderen Foren.
    Ich hab den FSK mit dem obigen Script auf High. Das ist ja jetzt vergleichbar mit 10k Pullup. Wenn ich mal von einem hochohmigen Eingang ausgehe. Die Datenblätter (die sich nur so nennen dürfen) sind ja furchtbar.

    Da der M8 und der m32 beschaltet ist ,einfach auf eine leere Fassung
    stecken. Richtiger Pin natürlich.
    Wow, ich saß gerade auf der Leitung. Aber ich hab gerade kapiert, was du von mir willst. Einfach die Fassung vom M8 benutzen, um den 10k Widerstand zu stecken.

    Hast Du das Funkmodul nicht angeschaltet?
    Ich nutze den FSK Pin nicht (jumper auf)
    Leg mal Deine E-Mailadr. in mein Postfach.
    und Deine m32 Fuse dazu.
    Das Ding muss laufen.

    Wigbert
    Ich werde das mit dem 10k Widerstand gleich heut Abend testen.

    Grüße Eisbaeeer

    P.S.: Wenn das ganze mal läuft, werde ich das mal richtig dokumentieren.

  8. #28
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Hallo Leute,
    ein Bild sagt mehr als Tausen Worte.....
    Hab mal unter:

    http://www.mikrocontroller.net/attac...4/PICT0158.JPG

    meine Modifikation des Pollinboards für den o.g.Code
    hinterlegt.


    Ich hab den FSK mit dem obigen Script auf High. Das ist ja jetzt vergleichbar mit 10k Pullup
    Irgendwann wirst Du den FSK-Pin brauchen, ich denke mit dem
    10KOhm Pullup-Widerstand ist das die klügere Entscheidung.

    Wigbert

  9. #29
    Benutzer Stammmitglied
    Registriert seit
    27.05.2007
    Beiträge
    67
    Hi

    Zitat Zitat von Picht
    Irgendwann wirst Du den FSK-Pin brauchen, ich denke mit dem
    10KOhm Pullup-Widerstand ist das die klügere Entscheidung.

    Wigbert
    Ja schon klar.
    Hat eigentich jemand ein vernüftiges Datenblatt? Ich hab das von Pollin (für den Mülleimer) und das Hope RF.
    Der FSK ist doch "Frequenzy-Shift-Keying" oder?
    Wie wird denn jetzt die Information übertragen, wenn nicht über FSK?
    Grüße Eisbaeeer[/quote]

  10. #30
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2006
    Beiträge
    118
    Hallo Eisbaeeer,
    ich hab die selben Datenblätter,da aber bei mir jeder Nachbau
    auf Anhieb funktioniert (komischerweise) bin ich immer erst
    gezwungen das DBL zu studieren wenn es weitergeht.
    Na,ja vielleicht nicht ganz so.
    Da ich Empfang und Senden duch externen gesteuerten Interrupt
    vornehme,kann ich mir vorstellen das auch der Pin zu was gut
    ist. Im Moment erfolgt die Datenübertragung ja mit hard.SPI.
    Oder wird FSK als Ablage benutzt? Muss mal doch lesen.

    Wigbert

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests