Forum: Mikrocontroller und Digitale Elektronik PIC18F45k22 brauch im Sleep 20µA


von PIC18 (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mir eine Uhr mit dem PIC18F45k22 gebaut. Damit die Zeit bei 
einem Stromausfall nicht verloren geht habe ich eine CR2030 Batterie 
eingebaut.
Um Strom zu sparen geht der PIC in den Sleep-Modus wenn die 
Stromversorgung von Netzteil ausfällt (RB5=0). Ich habe gemessen dass 
aus der Batterie im Sleep 30µA fliesen. Ich versorge nur den PIC mit der 
Batterie, der Rest der Schaltung (LED-Anzeige) ist mit einer Diode 
(SK13) abgetrennt.

Der PIC hat einen Uhrenquarz am Secondary Oscillator für den Timer1. Die 
CPU lauft mit dem internen Oszillator auf 250kHz. Der PIC wird jede 
sekunde vom Timer1 geweckt. Bevor der PIC schlafen geht werden alle 
Ausgänge auf 0 gesetzt. Wäre es sinnvoll sie als Eingänge zu 
konfigurieren?

Weiß jemand wie ich den Stromverbrauch des PIC reduzieren könnte?

Im Datenblatt des PICs steht:
1
Extreme Low-Power Management with nanoWatt XLP:
2
• Sleep mode: 20 nA, typical
3
• Watchdog Timer: 300 nA, typical
4
• Timer1 Oscillator: 800 nA @ 32 kHz
5
• Peripheral Module Disable

Die Config des PIS sieht so aus:
1
#pragma config FOSC = INTIO67, PLLCFG = OFF, PRICLKEN = OFF  //FOSC = Internal oscillator block
2
#pragma config PWRTEN = OFF, BOREN=NOSLP, BORV = 220
3
#pragma config WDTEN = OFF
4
#pragma config CCP2MX = PORTB3    // CCP2 Input/Output is multiplexed with RB3

von PIC18 (Gast)


Lesenswert?

Habe mich in Text vertippet: Es sind 20µA wie in Titel steht...

von Jens G. (jensig)


Lesenswert?

Rechts hast Du R98+99 zw. +5V und Masse bzw. RB5. Hängen die auch noch 
mit an der Batterie? Müsste dann aber viel mehr Strom ziehen.

von usuru (Gast)


Lesenswert?

> Wäre es sinnvoll sie als Eingänge zu konfigurieren?
Was hindert Dich, es auszuprobieren?

Hast Du den 18F45k22 oder den 18LF45k22? Dann schau mal auf Page 431 des 
Datenblattes.

Watchdog, Brown-out, DAC, ADC, Comparator und sonstige 
Hardware-Bausteine im PIC sind abgeschaltet? Auf Page 431 stehen die 
ganzen Stromfresser.

von PIC18 (Gast)


Lesenswert?

Jens G. schrieb:
> Rechts hast Du R98+99 zw. +5V und Masse bzw. RB5. Hängen die auch noch
> mit an der Batterie? Müsste dann aber viel mehr Strom ziehen.

Nein. Die +5V kommen von Netzteil. Die Batterie ist über die Diode D2 
mit VCC des PICs verbunden. D1 verhindert das Strom von der Batterie zu 
den +5V fliest.

Ich verwende ein 18F45k22 ohne 'L'.

Ich habe folgendes ausgeschalten:
1
  #pragma config PWRTEN = OFF, BOREN=NOSLP, BORV = 220
2
  #pragma config WDTEN = OFF
3
4
  .
5
  .
6
  .
7
  .
8
9
  PMD0=0b11111100;
10
  PMD1=0b11111110;  
11
  PMD2=0b11111111;  // Disable all Peripheral Modules except Timer 1 & 2 and CCP1
12
13
  T2CONbits.TMR2ON=0;  
14
  T3CONbits.TMR3ON=0;  
15
  T4CONbits.TMR4ON=0;  
16
  T5CONbits.TMR5ON=0;
17
  T6CONbits.TMR6ON=0;
18
  ADCON0bits.ADON=0;
19
  HLVDCONbits.HLVDEN=0;
20
  CM1CON0bits.C1ON=0;
21
  CM2CON0bits.C2ON=0;
22
  VREFCON1bits.DACEN=0;

von Kein Name (Gast)


Lesenswert?

Hast du das OSCCON.IDLEN schon angeschaut? Bei anderen Pics muss man 
damit für das sleep() den Oscillator abschalten; nur der Uhrenquarz 
läuft weiter.

von PIC18 (Gast)


Lesenswert?

OSCCON.IDLEN hab ich auf 0 = Device enters Sleep mode on SLEEP 
instruction

von Kein Name (Gast)


Lesenswert?

Schade, IDLEN=0 sollte ideal sein, sleep schaltet den Oscillator aus, 
der Timer1 Interrupt wieder ein.

Und noch was, die uln2803 haben Widerstände zwischen Eingang und Masse. 
Hast du schon mal ausprobiert, alle Ausgänge auf 0 bzw als Eingang 
konfiguriert?

von PIC18 (Gast)


Lesenswert?

Ausgänge habe ich alle auf 0. Die Eingänge auf eins bin ich momentan bei 
Programmieren. Werde mich melden wenn ich das Resultat habe...

von Wilhelm F. (Gast)


Lesenswert?

Zwar habe ich keinen PIC18F, sondern einen kleinen PIC12F. Dort muß ich 
bei der Initialisierung erst mal ADC und Comparator deaktivieren, weil 
die Default ON sind. Pullups an den Ports sollten auch deaktiviert sein.

von PIC18 (Gast)


Lesenswert?

Wilhelm F. schrieb:
> Pullups an den Ports sollten auch deaktiviert sein.

Das macht’s schlimmer, da die Eingänge an denen Taster hänge jetzt 
floaten und mehr Strom verbrauchen.

Die Ausgänge mit den ULN2803 als Eingänge zu konfigurieren ändert nichts 
am Stromverbrauch.

von Wilhelm F. (Gast)


Lesenswert?

PIC18 schrieb im Beitrag #3358122:

> Wilhelm F. schrieb:
>> Pullups an den Ports sollten auch deaktiviert sein.
>
> Das macht’s schlimmer, da die Eingänge an denen Taster hänge jetzt
> floaten und mehr Strom verbrauchen.

Sorry, ich konnte mir den Plan von oben noch nicht anschauen. Mein PC 
scheint im Augenblick was gegen GIF-Dateien zu haben.

von Dirk (Gast)


Lesenswert?

Wilhelm F. schrieb:
> Sorry, ich konnte mir den Plan von oben noch nicht anschauen. Mein PC
> scheint im Augenblick was gegen GIF-Dateien zu haben.

Tu doch endlich mal dein Windows 3.1 upgraden ;-)

von Wilhelm F. (Gast)


Lesenswert?

Dirk schrieb:

> Wilhelm F. schrieb:
>> Sorry, ich konnte mir den Plan von oben noch nicht anschauen. Mein PC
>> scheint im Augenblick was gegen GIF-Dateien zu haben.
>
> Tu doch endlich mal dein Windows 3.1 upgraden ;-)

Also Vista habe ich ja schon. Der mit Windows 3.1 wurde im Dezember von 
der Elektronikentsorgung abgeholt.

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.