Hallo zusammen, Ich habe eine Frage zum initialisieren des RFM12. Ich habe schon einige Beispielcodes durchforstet aber habe keine Lösung gefunden. Wenn ich am RFM12-Funkmodul nichts einstelle (Werte wie sie laut POR im Datenblatt angegeben sind), müsste man trotzdem das Statusregister auslesen können, oder? Also 0x0000 senden und dann zwei Dummybytes um das Register dann auszulesen. So richtig?? Ich meine damit, Spannung anlegen und dann Status auslesen. Viele Grüße und nen schönen Abend, Marcel
Ich habe es zwar ohne Initialisierung noch nicht getestet, aber theoretisch sollte es gehen. Auf was genau willst du eigentlich hinaus mit deiner Frage? Ciao, Rainer
Ja, das geht. Direkt nach dem Powerup kommt 0x4000, zurück. Schöner Test um zu sehen, ob die SPI Kommunikation funktioniert. Aber du brauchst keine zwei Dummy bytes hinterher zu schicken.
Hallo Ihr beiden, Danke für eure Antworten!! @Rainer: Ja, was ich will hätte ich schon etwas genauer ausdrücken können, sorry! Ich möchte wissen ob generell meine Komunikation zum Modul funktioniert. (ATMega 16 auf STK500) Ich wusste nicht, so wie es Urs schreibt, dass das Modul die 0x4000 nach dem einschalten sendet. Was mich jetzt etwas verwundert ist, dass ich keine Dummy bytes senden muss. Das heißt ja, dass das Modul selbstständig sendet und das dann mein µC nur ein Slave ist? Jetzt bin ich total verwirrt!! Habe ich da etwas falsch verstanden? Danke nochmal und viele Grüße, Marcel
Marcel K. wrote: > Ich wusste nicht, so wie es Urs schreibt, dass > das Modul die 0x4000 nach dem einschalten sendet. Was mich jetzt etwas > verwundert ist, dass ich keine Dummy bytes senden muss. Das heißt ja, > dass das Modul selbstständig sendet und das dann mein µC nur ein Slave > ist? Jetzt bin ich total verwirrt!! Habe ich da etwas falsch verstanden? Ich denke, das hast du jetzt etwas missverstanden. Er meinte mit "direkt nach dem Powerup kommt 0x4000 zurück", daß du ohne vorherige Initialisierung nach dem Starten gleich das Status Register auslesen kannst. Das RFM12 sendet natürlich nicht unaufgefordert, denn dies würde dem SPI Protokoll widerstprechen. Wenn du das Statusbyte lesen willst, sendest du 0x0000 (das sind 2 Bytes) an das RFM12 und gleichzeitig empfängst du den Inhalt des Statusregisters (ebenfalls 2 Bytes). Das Senden und Empfangen per SPI geschieht parallel und nicht hintereinander. Die 0x4000 beim ersten Auslesen besagen, daß das Bit POR (Power On Reset) gesetzt ist und wird nach dem ersten Auslesen automatisch gelöscht. Ciao, Rainer
@ Rainer, Super!! Vielen dank für deine Erklärung! Jetzt noch eine Frage zum Telegramm. Ich möchte das ganze über die Hardware SPI machen. Dort können ja nur 8 Bit Packete versendet werden. Das heißt ich kann nach dem senden der ersten 8 Bit die ersten 8 Bit vom Modul in meinem Empfangsregister auslesen und nach dem sende der letzten 8 Bit die zweiten 8 Bits vom Modul? Das heißt auch, dass ich beim ersten auslesen die 0x4000 bekomme und dann die 0x0000 beim zweiten auslesen!! So richtig :) Grüße, Marcel
Marcel K. wrote: > @ Rainer, > Super!! Vielen dank für deine Erklärung! Jetzt noch eine Frage zum > Telegramm. Ich möchte das ganze über die Hardware SPI machen. Dort > können ja nur 8 Bit Packete versendet werden. Das heißt ich kann nach > dem senden der ersten 8 Bit die ersten 8 Bit vom Modul in meinem > Empfangsregister auslesen und nach dem sende der letzten 8 Bit die > zweiten 8 Bits vom Modul? Genau. Du schickst die ersten 8 Bit und empfängst die ersten 8 Bit. Dann sendest du die zweiten 8Bit und empfängst die zweiten 8Bit. Du musst dabei über den Zeitraum der beiden Byte die SS Leitung aktiv lassen, damit das RFM12 die beide zusammen auch als 16Bit erkennt. > Das heißt auch, dass ich beim ersten auslesen die 0x4000 bekomme und > dann die 0x0000 beim zweiten auslesen!! Fast. Beim ersten Auslesen erhälst du 0x40 (8Bit) und beim zweiten Auslesen 0x00 (8Bit). Macht zusammen 0x4000 (16Bit). ;) Ciao, Rainer
Hi Rainer, Danke für die genaue Erklärung!! Mein letzter Beitrag war wieder etwas unersichtlich. Ich meinte, so wie Fox schrieb, dass ich bei ersten auslesen des Statusregisters die 0x4000 empfange und dann soll ja das POR- Bit selbststädig gelöscht werden. Dann empfange ich beim zweiten auslesen die 0x0000. Das meinte ich. Aber trotzdem 1000 Dank für die genaue Erklärung. Ich denke ich komme heute Abend noch zum ausprobieren!! Viele Grüße aus der Nähe Heidelberg, Marcel (",)
Hallo Rainer, also es geht jetzt bei mir. Generell sollte das SS Signal mal auf High gesetzt werden. (am besten in der INIT) Dann kann man die Leitung verweden wie man sie braucht. So klappt es jetzt auch bei mir ;o) Danke nochmal und viele Grüße, Marcel
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.