PIC18F45k22 brauch im Sleep 20µA

Gast #3357788
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
Angehängte Dateien:
Gast #3357801
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.
Gast #3357811
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;
Gast #3358055
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?
Gast #3358134
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren