Forum: Mikrocontroller und Digitale Elektronik RFM69 Sleep Mode


von JojoS (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe mir einen FS20 Sender gebaut mit einem RFM69, LPC812 und PIR 
Modul. Das Ganze soll mit Batterien versorgt werden und deshalb nutze 
ich die max. Stromsparmodi.
Das PIR Modul ist ok, braucht ca. 50-60 µA. Die CPU im deep power down 
Mode braucht nur 0,2 µA, auf dem Steckbrett aufgebaut und gemessen, auch 
ok. Aber die Schaltung mit dem RFM im sleep, CPU im deep power down und 
ohne PIR zieht ca. 80 µA. Laut Datenblatt soll das RFM im Sleep mode 
aber auch nur 0,1 µA ziehen. Hat hier jemand Erfahrung mit dem RFM69 im 
Batteriebetrieb?
Im angehängten Schaltplan fehlt noch eine Verbindung von P0_17 nach DIO2 
für die OOK Modulation.

RFM Initcode:
1
bool RFM69::initializeOOK()
2
{
3
  const uint8_t CONFIG[][2] =
4
  {
5
    /* 0x01 */ { REG_OPMODE, RF_OPMODE_SEQUENCER_OFF | RF_OPMODE_LISTEN_OFF | RF_OPMODE_STANDBY },
6
    /* 0x02 */ { REG_DATAMODUL, RF_DATAMODUL_DATAMODE_CONTINUOUSNOBSYNC | RF_DATAMODUL_MODULATIONTYPE_OOK | RF_DATAMODUL_MODULATIONSHAPING_00 }, // no shaping
7
    /* 0x03 */ { REG_BITRATEMSB, 0x03}, // bitrate: 32768 Hz
8
    /* 0x04 */ { REG_BITRATELSB, 0xD1},
9
    /* 0x19 */ { REG_RXBW, RF_RXBW_DCCFREQ_010 | RF_RXBW_MANT_24 | RF_RXBW_EXP_4}, // BW: 10.4 kHz
10
    /* 0x1B */ // { REG_OOKPEAK, RF_OOKPEAK_THRESHTYPE_PEAK | RF_OOKPEAK_PEAKTHRESHSTEP_000 | RF_OOKPEAK_PEAKTHRESHDEC_000 },//
11
    /* 0x1B */ { REG_OOKPEAK, RF_OOKPEAK_THRESHTYPE_FIXED | RF_OOKPEAK_PEAKTHRESHSTEP_000 | RF_OOKPEAK_PEAKTHRESHDEC_000 },
12
    /* 0x1D */ { REG_OOKFIX, 6 }, // Fixed threshold value (in dB) in the OOK demodulator
13
    /* 0x26 */ { REG_DIOMAPPING2, RF_DIOMAPPING2_CLKOUT_OFF }, // DIO5 ClkOut disable for power saving
14
    /* 0x29 */ { REG_RSSITHRESH, 140 }, // 140 RSSI threshold in dBm = -(REG_RSSITHRESH / 2)
15
    /* 0x6F */ { REG_TESTDAGC, RF_DAGC_IMPROVED_LOWBETA0 }, // run DAGC continuously in RX mode, recommended default for AfcLowBetaOn=0
16
    {255, 0}
17
  };
18
19
RFM Sleep schreibt eine 0 in das Opmode Register. Das zeigt auch Wirkung, der Strom geht von einigen mA auf die 80 µA runter, aber es sollte <1 µA sein.

von JojoS (Gast)


Lesenswert?

hurra, habe die Ursache gefunden:
durch den deep power down mode der CPU floaten die SPI Leitungen. Und 
das mag das RFM nicht. Habe jetzt 47k pull up's an NSS, MOSI und SCK 
angelötet und alles schläft mit sparsamen 0,3 µA wie es sein soll.

von Andreas (Gast)


Lesenswert?

Hallo,

habe ein ähnliches Problem.
Ich komme beim RFM69HW im Sleep-Mode nicht unter 1.2 uA, wobei die CPU 
(bei mir AVR) davon nur 0.13 uA zieht.
Muss der RFM69 ausser für den Sleep mode sonst noch irgendwie besonders 
konfiguriert werden, z.B. PA disable etc.?
Floaten sollten die Pins bei mir nicht, da der AVR ja die gesetzten 
PORTS/PINS auch im power-down weiter hält.
Ausser den SPI Leitungen habe ich noch DIO1 und DIO2 verbunden - und 
auch mit/ohne Pull-Ups alle Möglichkeiten durchprobiert.

Hat jemand den RFM69HW erfolgreich im Sleep-Mode mit den spezifizierten 
0.1 uA?

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.