Hallo,
ich versuche mich gerade an der Funkübertragung mittels zweier
RFM12-Module mit 868MHz.
Ich verwende die Software von Ulrich Radig, Benedikt K. & Juergen Eckert
von http://www.ulrichradig.de/home/index.php/avr/usb-funk
, wobei ich in der rf12.h das Macro RF12FREW wie folgt geändert habe:
#define RF12FREQ(freq) ((freq-860.0)/0.005)
Dabei habe ich den Mega8 mit dem Modul wie folgt ohne weitere Bauteile
verdrahtet (aus dem verlinkten Schaltplan):
RFM12 | AVR
----------------+-----
SDO | MISO
nIRQ | INT0
FSK/DATA/nFFS | PD4
DCLK/CFIL/FFIT | PD5
CLK | -
nRES | -
GND | GND
ANT | -
VDD | VCC
GND | GND
nINT/VDI | INT1
SDI | MOSI
SCK | SCK
nSEL | SS
Am Sender ist eben der Stromversorgung ist nur noch der ISP dran. Der
Empfänger hat an C0-C5 und D0 noch ein LCD zur Ausgabe dran hängen.
Als Programmer nutze ich einen Atmel AVRISP MKII.
Mein Problem ist nun, dass sowohl Sender als auch Empfänger erst ihre
(Funk-)Arbeit aufnehmen, wenn ich den ISP eingesteckt habe. Als
Beispiel: Sender hat den ISP nicht eingesteckt -> kein Funk. Dann stecke
ich den ISP an, mache aber sonst nichts damit -> es funkt. Danach kann
ich den MKII wieder abstecken und es funkt weiter. Die µC's arbeiten
aber was ich u.a. an der Ausgabe am Display erkennen kann.
Da nach dem "Fremdstarten" mittels ISP-Stecker die Software
funktioniert, vermute ich den Fehler eher Hardware-seitig.
Kann mir jemand einen Rat zur Problemlösung geben?
Vielen Dank,
Norbert
Hallo Florian,
danke für deine Antwort.
> Pullup + Kondensator am Atmel Reset Pin?
Nein, beides nicht. Auf den Widerstand habe ich aus Gründen der
Einfachheit bisher verzichtet. Da aber der µC das Display korrekt
initialisiert, nehme ich an, er funktioniert wie er soll. Einen
Kondensator am Reset Pin habe ich noch nie gemacht. Meist du evtl. der
soll an VCC?
Ich werde mal den Reset-Widerstand einlöten, und von das Ergebnis
berichten.
> Alle Massepins sauber verbunden?
Hab's per Durchgangsprüfer und optisch überprüft und es scheint zu
passen.
> Versorgungsspannung von µC und RFM12 korrekt?> Es gibt 3,3V und 5V RFMs.
Lt. beiliegendem Pollin-Datenblatt wollen die Dinger 2,2-5,4V. Ich bin
also mit meinen 5V aus dem Netzteil im richtigen Bereich für beide
Bauteile.
Irgendwas mach der MKII, wenn ich ihn anstecke, damit der RFM12 startet,
bzw. das das SPI anspringt. Die µC's laufen zuvor schon, das zeigen die
Displayausgaben bzw. LED's, die ich mal zu Testzwecken dran hatte und
blinken lies. Nur die Funkmodule schweigen. Stecke ich dann bei Sender
und Empfänger je den ISP kurz an geht alles. Dann kann ich auch den
ISP-Stecker abziehen und die Übertragung läuft weiter.
Norbert
Hallo Max,
ich habe mal die empfohlenen Reset-Widerstände verbaut und festgestellt,
dass beide gelegentlich sauber starten. Das ist also schon eine
Verbesserung, da es vorher nur mit "Fremdstarten" mittels MKII ging.
Beim weiteren experimentieren habe ich dann festgestellt, dass wenn ich
die einzelnen Komponenten der Reihe nach mit Strom versorge, also erst
das LCD, dann den Empfänger, dann den Sender, startet alles immer
richtig. Ich vermute daher mittlerweile mein Problem bei der stabilen
Stromversorgung und werde es mal mit Stützkondensatoren versuchen.
Gib doch vllt. Rückmeldung, ob's bei dir geholfen hat.
Norbert
Hast Du auch 47nF an Atmel Reset gegen Masse? Manche sagen, dass es
nicht nötig ist, ich hatte schon andere Erfahrungen.
Du solltest mindestens 0,1 µF pro mA an der Versorgungsspannung haben.
Mehr kann nicht schaden.
An jedem Versorgungspin dann nochmal 100nF.
Am RFM12 würde ich zusätzlich 10µF machen.
Wie erzeugst Du Deine Versorgungsspannung?
Hallo Florian, Hallo Max,
ja, das war's.
Aber der Reihe nach.
> Hast Du auch 47nF an Atmel Reset gegen Masse? Manche sagen, dass es> nicht nötig ist, ich hatte schon andere Erfahrungen.
Den Reset-Kondensator habe ich immer noch nicht drin. Danke aber für den
Hinweis. Bei der nächsten Platine werde ich ihn mal berücksichtigen.
> Du solltest mindestens 0,1 µF pro mA an der Versorgungsspannung haben.> Mehr kann nicht schaden.> An jedem Versorgungspin dann nochmal 100nF.> Am RFM12 würde ich zusätzlich 10µF machen.
Ich habe Testweise mal einen 4,7µF Elko (den habe ich als erstes in der
Kiste gefunden) zwischen VCC<->GND gesteckt und seit dem starten beide
Platinen immer sauber und senden/empfangen wie sie sollen.
> Wie erzeugst Du Deine Versorgungsspannung?
Per (billigen) Steckernetzteil 5V/2A über eine Buchse auf ein Steckbrett
und von da weiter zu den beiden Platinen.
@Florian: vielen Dank für deine Hilfe. Auf eine instabile
Stromversorgung wäre ich im Leben nicht gekommen, nachdem der µC ja sein
LCD initialisiert hatte und dort Ausgaben machen konnte. Werde mich aber
in Zukunft nach deiner Faustformel (>0,1µF/mA und die einzelnen Pin's)
danach richten.
@Max: Hoffe es hat auch dir geholfen.
Norbert