Forum: Mikrocontroller und Digitale Elektronik RFM12 empfängt nur einmal und stürzt dann ab


von Günther H. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

nach einigem Testen und Ausprobieren habe ich den RFM12 nun in eine 
Schaltung eingelötet und musste leider fesstellen, dass er nur einmal 
empfängt und dann abstürzt. Aus diesem Grund habe ich die Schaltung in 
drei Teile modularisiert: den 7805, den AVR, und eben den RFM12. Doch 
leider empfängt der RFM12 wieder nur einmal und dann nichts. Es ist so 
schlimm, dass ich nicht mehr weiter weiß und deswegen hier um Rat frage. 
Hat jemand schon mal etwas ähnliches erlebt und weiß wie ich das Problem 
lösen kann?

Zur Problembeschreibung:
- Ich habe diesselbe Schaltung schon mit verschiedenen AVR und RFM12 
ausprobiert und immer dasselbe.
- Mit einem geregelten Netztteil (welches das 7805-Modul speist) tritt 
der Fehler nicht auf, und der RFM12 bleibt auch nach dem Empfangen 
empfangsbereit.
- Nachdem der RFM12 abgestürzt ist, hilft es nur den Strom komplett 
auszuschalten
- Nachdem der RFM12 abgestürzt ist, wird der 7805 heißer
- Aufgrund der Modularisierung konnte ich fesstellen, dass der Fehler 
irgendwo im AVR-Teil der Schaltung liegt, denn wenn ich das AVR-Modul 
auf einem Steckbrett aufbaue und mit dem 7805-Modul und dem RFM12 Modul 
verbinde, funktioniert es, und der RFM12 bleibt nach dem Empfangen 
empfangsbereit
- Um irgendwelchen Interferenzen vorzubeugen habe ich auch 
Stabilisierungskondensatoren an das AVR- und das RFM12 Modul angefügt, 
die aber das Problem nicht beheben.
- ich habe auch schon versucht nach dem Empfangen, den RFM12 neu zu 
initialisieren, aber das bringt auch nichts
- manchmal empfängt der RFM12 auch 2mal (sehr selten), und stürzt dann 
aber ab
- habe auch schon verschiedene Batterien (9V - 4,5V) ausprobiert - 
nichts hilft
- mein erster Versuch mit der Schaltung (nicht modularisiert) hatte 
einen komplett anderen Aufbau auf der Platine (ich vermute, dass 
einfaches Layout-Ändern nichts hilft)

Aus diesem Grund habe ich Bilder meines Schaltplans und der 
Lochrasterschemen meiner Modulteile in einem Zip-File beigefügt. 
Vielleicht kann hier jemand mal drüberschauen und mir sagen, woran es 
liegen könnte, denn wie gesagt, wenn ich das 7805-Modul und das RFM12 
Modul an das Steckbrett anschließe (mit dem AVR), dann läuft die 
Schaltung sehr robust (RFM12 stürzt nicht ab).
Die Schaltung ist so aufgebaut, dass wenn der RFM12 bereit ist, aber 
nichts empfängt periodisch eine blaue LED leuchtet:
1
Sub Rf12_ready                                              'ready Empfangen
2
  Reset Spi_cs
3
  ' In die Whileschleife wird nur gegangen, wenn RFM* nichts empfangen hat.
4
  Schleifencount = 0
5
  While Spi_sdo = 0
6
    Schleifencount = Schleifencount + 1
7
    If Schleifencount = 0 Then
8
      Toggle Portc.3                                        ' blaue Kontroll LED
9
    End If
10
    If Count >= Maxchar Then
11
      Countl = 0
12
      County = 0
13
      For Count = 1 To Maxchar
14
        Print Bin(rfdata(count))
15
        If Rfdata(count) = L Then
16
          Countl = Countl + 1
17
          Print "L"
18
        Elseif Rfdata(count) = Y Then
19
          County = County + 1
20
          Print "Y"
21
        End If
22
        Rfdata(count) = 0
23
      Next Count
24
      If Countl >= 3 And County >= 3 Then
25
         Print "PORTD.7 && PORTC.5 && PORTC.4"
26
         Portd.7 = 1
27
28
         Portc.5 = 1
29
         Wait 1
30
         Portc.5 = 0
31
         Waitms 500
32
         Portc.4 = 1
33
         Wait 1
34
         Portc.4 = 0
35
         Waitms 500
36
37
        Portd.7 = 0
38
      End If
39
      Countl = 0
40
      County = 0
41
      Count = 1
42
    End If
43
  Wend
44
End Sub

Ist Spi_sdo aber 1, d.h. der RFM12 ist abgestürzt geht der Code einen 
Schritt zurück und eine rote LED leuchtet periodisch:
1
Sub Rf12_rxdata(byval Maxchar As Byte)
2
  Temp = Rf12_trans(&H82c8)
3
  Temp = Rf12_trans(&Hca81)
4
  Temp = Rf12_trans(&Hca83)
5
  Count = 0
6
  Avrcount = 0
7
  Do
8
    If Avrcount = 0 Then                                     ' rote Kontroll LED
9
      Toggle Portb.0
10
    End If
11
    Rf12_ready
12
    Temp = Rf12_trans(&Hb000)
13
    Rfdata(count) = Temp
14
    Count = Count + 1
15
    Avrcount = Avrcount + 1
16
  Loop
17
  Temp = Rf12_trans(&H8208)
18
End Sub

Wenn das AVR-Modul am Steckbrett angeschlossen ist leuchtet nach dem 
Empfangen immer die blaue LED (sehr robust). Nutze ich dagegen mein 
eingelötetes AVR-Modul, dann "springt" der Code zurück und nur die rote 
LED leuchtet periodisch, weswegen ich annehme, dass der RFM12 abgestürzt 
ist, denn er geht nicht mehr in der Bereit-Modus.
Vielleicht könnte sich jemand im Forum mal mein Lochrasterplatinenschema 
anschauen, vielleicht ist dort etwas auffällig, was zu obiger 
Fehlerbeschreibung passt.

Vielen Dank im vorraus
Günther

von Michael U. (amiga)


Lesenswert?

Hallo,

jeweils 100n DICHT an den Anschlüssen VCC/GND und AVCC/AGND des Mega 
sind ohnehin Pflicht, wozu also zeit verschwenden mit / ohne 
Kondensatoren?

Meine RFN12 legen Wert darauf, daß dicht an den Spannungsanschlüssen ein 
Elko 4,7µ-10µ höngt, ein 100n reichte allein dort nicht.

Streifenraster ist mir allerdinsg etwas unsympathisch, die langen Bahnen 
und die großen Abstände bei Dir auch. Sind alles Kapazitäten, die durch 
Übersprechen und Verkopplungen für Störungen sorgen können.

Gruß aus Berlin
Michael

von Günther H. (Gast)


Lesenswert?

Hallo Michael,

als erstes habe ich jetzt im RFM12-Modul anstatt dem 100n einen 10u Elko 
eingelötet. Da trat das Problem immer noch auf. Dann habe ich einen 100n 
direkt zwischen AVCC/AGND hinzugefügt - und es läuft besser! Dankeschön!

Ich habe jetzt einige Langzeittests durchgeführt, und festgestellt, dass 
mit einer 9 Volt Blockbatterie diesselben Probleme auftreten. Mit 4,5 
Volt dagegen läuft es. Deswegen habe ich einen 100n direkt zwischen 
VCC/GND gelötet. Aber es läuft immer noch nicht mit 9 Volt. Nur der 7805 
wird extrem heiß.

Hast du noch eine Idee wie man den RFM12 mit 9 Volt betreiben könnte 
(das Schaltungslayout und Gehäuse sind für eine 9V Blockbatterie 
ausgelegt).

MfG
Günther

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.