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