Forum: Mikrocontroller und Digitale Elektronik RFM12 kein Lebenszeichen


von Jens (Gast)


Lesenswert?

Hallo,

ich bastel zurzeit mit dem RFM12 rum.
Ich denke auch, dass er korrekt angeschlossen ist.

uC  <---->  RFM12
SDI <-----  SDO
SDO ----->  SDI
SCK ----->  SCK

nSel wird vor jeder Übertragung auf low gezogen.
nIRQ ist angeschlossen, verwende ich aber nicht.
nFFS ist auf +5V

Ich kann mit dem Oszi sehen, dass fröhlich Daten übertragen werden,
aber vom RFM12 kommt nix (also RFM12 SDO Pin).

Ich versuche zurzeit 0x80 & 0x00 zu senden.

Kann mir einer von Euch einen Tipp geben, was ich dem Ding senden muss 
damit ich irgendetwas zurück kriege?

Daten habe ich auf Idle zu Activ und andersrum probiert.... leider kein 
Erfolg.

Danke Euch schonmal... wird nämlich langsam nervig :-(

von Ziegenpeter (Gast)


Lesenswert?

Du musst auch VCC und GND anschliessen (GND sogar zwei mal).

von Jens (Gast)


Lesenswert?

Ok,

ja, das hatte ich auch schon gemacht :-)

von Jens (Gast)


Lesenswert?

Also an CLK kann ich ein Signal messen, was für mich soviel heisst, dass 
das Ding grundsätzlich "schwingt".

Ich müsste jetzt nur noch irgendwas zu senden haben, bei dem irgendwas 
zurück kommt.

von derwissel (Gast)


Lesenswert?

wenn du in der glücklichen lage bist, ein oszi zu besitzen, dann kannst 
du zb auch einfach mal den clock des rfm12 von 1MHZ auf 10MHZ 
umschalten, und dir an clk ausgeben lassen. da siehst du ja dann direkt, 
ob du mit dem rfm reden kannst. ?

tipp: http://www.mikrocontroller.net/articles/AVR_RFM12

unter treiber sind 2 funktionierende sourcen. hab ich beide schon 
benutzt, gehen beide. da kannst du dir vorallem mal die init ansehen, da 
steht auch wie du den clock des RFM umschalten/ausgeben kannst.
-> auch hier beschrieben : http://www.mikrocontroller.net/articles/RFM12

von Michael U. (amiga)


Lesenswert?

Hallo,

als erstes nach Einschalten Status auslesen (Command 0x0000) muß 
gesetztes Bit POR ergeben.
Ansonsten z.B. externen Clock umschalte und Frequenz am Taktausgang 
messen.

nFFS gehört über 10k PullUp an 5V, das ist in bestimmten Betriebsarten 
ein Ausgang.

Wenn es nicht klappt, einfach mal per Software-SPI ansteuern, da hat man 
Clock und Daten zeitlich erstmal selbst in der Hand.

Gruß aus Berlin
Michael

von Jens (Gast)


Lesenswert?

Hallo nochmal,

die Tipps sind super.
Hab mir eine Soft-Routine zusammengebastelt und die Frequeznz 
hochgesetzt.
Hat super geklappt. Hab jetzt 10MHz. Aber ich kann immernoch nicht den 
Status auslesen.

Es kommt aber auch garnix vom aus dem SDO am RFM12.

Nochmal zum Verständnis: Wenn ich da ein 0x0000 reinwerfe, dann sollte 
doch zeitgleich was am SDO wieder rauskommen oder?

von Michael U. (amiga)


Lesenswert?

Hallo,

Jens schrieb:
> Nochmal zum Verständnis: Wenn ich da ein 0x0000 reinwerfe, dann sollte
> doch zeitgleich was am SDO wieder rauskommen oder?

Ja. Direkt nach dem PowerOn ist POR auf 1. Nur dann! Es wird durch Lesen 
des Status zurückgesetzt. Die anderen Statusbits müßte ich jetzt 
nachschauen, sind ja abhängig von den aktuellen Einstllungen des RFM12.
Achte darauf, wann Du SDO einliest. Bei Soft-SPI direkt nachdem Du SCK 
von L auf H geschaltet hast. Intern wechselt der RMF zum nächsten Bit 
bei der H/L Flanke.

Gruß aus berlin
Michael

von Jens (Gast)


Lesenswert?

Langsam werde ich bröselig...

Ich hab ein ganz normales RFM12 und betreibe es mit 5V aus dem usb 
Adapter meines iphone (macht eigentlich saubere 5V).

Kann das noch ein Problem mit der Spannung sein?
Ich habe keine besonderen Kondensatoren oder ähnliches verwendet.

Reinschreiben scheint ja zu klappen, nur raus kommt nix, jedenfalls 
nicht per SPI, nicht ein winziges Zucken :-(

von Eumel (Gast)


Lesenswert?

Du hast aber daran gedacht, dass du beim lesen noch ein dummy Byte 
hinterher schicken musst? Sonst wird ja nichts rausgeschoben!

von Jens (Gast)


Lesenswert?

Ich hab alle möglichen Sachen in einer Schleife reingeschickt... immer 
16Bit... auf dem SDO Pin kam leider garnix. Frage mich langsam, ob man 
den einzeln irgendwie kaputt machen kann...

von Eumel (Gast)


Lesenswert?

Dann zeig doch mal deinen Code her :)

von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Hier der Code zum senden.
Dazu muss man wissen, dass ich derzeit nur mit dem Oszi auf den SDO 
gucke.
Der ist zusammengebastelt aus dem Datenblatt und ein paar anderen 
Sourcen. Ist also eher Testcode. Angehangen ist ein Zwischenstand, ich 
hab schon 1000 andere Sachen probiert.

Aber auch hier wird nicht ein Zucken auf dem SDO ausgelöst.

von Jens (Gast)


Lesenswert?

Ergänzung:

Die Bezeichnungen für SDI und SDO sind verwirrend.
Der Mist ist auch dem Hope Datenblatt. Also SDO im Code bezieht sich auf 
SDO am RFM12... ich hab das so übernommen, obwohl es gruselig is.

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe nur kurz rübergeschaut, irgendwie sehe ich da nichts, was 
sinnvoll sendet/empfängt?

Ich habe hier jetzt nur Teile eines alten Projekts zur Hand, ich habe 
sie mal rangehangen.
Gelesen werden die Statusbits da garnicht, habe ich dort nicht 
gebraucht.

Vielleicht hilft es...

Gruß aus Berlin
Michael

von Jens (Gast)


Lesenswert?

Hallo,

jetzt habe ich endlich ein Lebenzeichen,
wenn ich diesen ganzen kram reinschicke:

WriteCMD(0x80D7);  // EL,EF,12.0pF
WriteCMD(0x8208);  // !er,!ebb,!ET,ES,EX,!eb,!ew,!DC (in Bereitschaft 
gehen)
WriteCMD(0xC4E7);  // @PWR,autotune: -10kHz...+7,5kHz,!st,!fi,OE,EN
WriteCMD(0xA640);  // A140=434MHz
WriteCMD(0xC647);  // 4,8kbps
WriteCMD(0xC2AC);  // Data Filter
WriteCMD(0x94A0);  // VDI,FAST,134kHz,0dBm,-103dBm
WriteCMD(0xCA81);  // FIFO8,SYNC,!ff,DR
WriteCMD(0x9850);  // !mp,9810=30kHz,MAX OUT
WriteCMD(0xE000);  // NOT USE
WriteCMD(0xC800);  // NOT USE
WriteCMD(0xC000);  // kein WDT, kein Batteriewächter

krieg ich bei diesem Befehl:
WriteCMD(0x0000);

genau 1 Bit bzw. einen Impuls zurück. Ich konnte den auf meinen analogen 
Oszi einfach nich sehen... Hab es jetzt mal in der Schule mit einen 
Digital-Oszi probiert.

Ist das wirklich so, dass der ansonsten nix zurück gibt?
Falls das so richtig ist, hab ich den zumindestens halb am laufen :-)

von BerndB (Gast)


Lesenswert?

Ich glaube, dass das so richtig ist.
Soweit ich weiss, kriegst Du nur Antworten, wenn Du z.B. den FIFO 
ausliest.

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.