Hi, habe ein problem mit dem RFM12 von Pollin. Ich versuche die Funkmodule schon seit Tagen auf dem HCS12DP512 von freescale ans laufen zu bekommen, aber leider läuft nichts. Möchte das ganze über die Hardware SPI-Schnittstelle steuern. Anbei habe ich mal den Quellcode den ich mit Hilfe dieses Forum aufgebaut habe dran gehangen. Bedanke mich schon einmal im Vorraus. Bis dann
Hallo, der Prozessor ist nicht meine Spielwiese, trotzdem: hat die doppelte Initialisierung in rf12_init eine tiefere Bedeutung? Redet Dein µC denn mit dem RFM? Erkennbar daran, daß er CLKOUT auf die 10MHz umschaltet. Allgemein meine Erfahrung: 10-20µ halbwegs dicht an den Betriebsspannungsanschlüssen des RFM12 sind zu empfehlen, speziell, wenn es ein Versuchsaufbau mit ungünstiger Leitungsführung ist. 100ms Wartezeit können den Modulen nach PowerOn durchaus auch zu kurz sein. Als erstes nach PowerOn noch vor der Initsequenz das Statusbyte lesen, der Inhalt ist eigentlich egal, es geht nur um das Kommando zum Auslesen. Zumindest sorgen diese Sachen bei mir jetzt schon seit ein paar Monaten für absolut stabilen Betrieb meiner Sensormodule und des Webservers mit RFM12. Gruß aus Berlin Michael
Hi, danke schon einmal für die schnelle Antwort. Ich habe RFM_Init 2 mal vorgenommen da ich an einem Microkontroller 2 RFM12 Module habe und die ja über die SPI1 und SPI2 schnittstelle betreibe. So mit muss ich doch um beide Funkmodule zu Initallisieren einmal auf SPI1 und einmal auf SPI2 durchführen, oder? Wie kann ich den überprüfen ob der clkout auf die 10Mhz umschaltet? Bis dann und Danke
Hallo Forum, kennt sich einer mit den RFM12 und kann mir bei den oben genannten Problem helfen. Wäre sehr nett komme nicht weiter :-((
Hallo Stephan, man würde ja vielleicht helfen aber hast du zufällig mal ein Bild von der Hardware, Zeichnung, Bild, Schaltplan,Platinenlayout, Stückliste oder weitere Informationen zu Temperatur,Datenblatt, Sendefrequenz und Empfangsfrequenz, Filter, Standort Abstände Antennen... damit man sich mal ein Bild machen kann.
Hi, ja hier ist das Datenblatt vom RFM12. Benutze 2 davon an einem Mikrocontroller. Der Abstand zwischen beiden Funkmodulen sind nur ca. 10cm.
Hallo, mit welcher Taktfrequenz rennt dein S12X? Ich hab jetzt nicht in das Datenblatt des RFM12 geschaut, aber evtl. ist die Baudrate zu hoch. Deine SPI Baudratenprescaler stehen auf 0 -> höchste Baudrate. Außerdem, warum hast du die SPI Interrupts (auch wenn du sie scheinbar nicht benutzt) zum XGate (RQST=1) geroutet? Invertierte Logik, oder nur der Kommentar falsch?
1 | PTH &= ~0x80; //Port H3 an |
2 | PTH |= 0x80; //Port H3 aus |
Ist das dein Slave select? Warum hast du dann den automatischen eingeschaltet? Generell solltest du nach jedem SPI-Byte-Schreiben auch den Puffer auslesen, ansonsten gibt das irgendwann Murks - glaubs mir. So z.B.
1 | uint8_t Spi_Transfer(uint8_t txData) |
2 | {
|
3 | /* write */
|
4 | while (!SPI0SR_SPTEF) |
5 | {
|
6 | /* wait for empty TX buffer */
|
7 | }
|
8 | SPI0DR = txData; |
9 | |
10 | /* read */
|
11 | while (!SPI0SR_SPIF) |
12 | {
|
13 | /* wait for rx data */
|
14 | }
|
15 | |
16 | return (SPI0DR); |
17 | }
|
Gruß, Christian
Hallo, Stephan schrieb: > Hi, ja hier ist das Datenblatt vom RFM12. Benutze 2 davon an einem > Mikrocontroller. Der Abstand zwischen beiden Funkmodulen sind nur ca. > 10cm. Ob das so klug ist? zumindest mußt Du dafür sorgen, daß die Register beim Senden bzw. Empfangen auch pünktlich bedient werden. Der Empfänger ist darauf angewiesen, daß die Daten ohne Pause kommen, sonst kommt die Bitclock-PLL aus dem Tritt. Deshalb auch nicht zuviele Daten ohne Pegelwechsel senden (0x00 oder 0xFF). Die PLL syncronisiert mit der Präambel (den 0x0AA) und ist dann darauf angewiesen, daß oft genug ein Flankenwechsel kommt, sonst läuft sie weg. Die 10MHz (oder was Du beim Init programmierst) findest Du am CLK-Pin des Moduls. Ist zwar alles AVR und auch Soft-SPI, aber vielleicht findest Du bei meinen Sensoren noch Hinweise: http://www.avr.roehres-home.de/ Gruß aus Berlin Michael
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.