Morgen zusammen! Kann mir jemand eventuelle Quellen für meinen hohen Stromverbrauch im Mikrocontroller nennen? Ich hatte gestern den Thread mit dem 1,8432MHz-Quarz und das Problem, dass die MCU bei höherem Takt verdammt viel mehr Strom zieht. Was brauchen MCUs so im Schnitt? Meiner läuft jetzt bei den besagten 1,8432MHz und zieht so ca. 2mA - ist das nciht ein bisschen viel? Ich mein, in manchen Werbungen steht "extrem niedriger Stromverbrauch: 160 µA bei 2,2 Volt und 1 MHz / 1,3 µA bei 2,2 Volt und 4 kHz"...und so sehr über 1 MHz liege ich ja nun nicht. Ich habe alle unbenutzten Port-Pins auf Masse, sie floaten also auch nicht. Was ich jedoch noch dran habe: Einen weiteren 32kHz-Quarz, aber daher wird der Verbrauch ja wohl nicht kommen, oder?
Datenblatt hilft: http://focus.ti.com/lit/ds/symlink/msp430f2418.pdf S. 32 2mA sind zu viel bei der Frequenz. Was hängt denn noch am µC?
Gero schrieb: > Ich habe alle unbenutzten Port-Pins auf Masse, sie floaten also auch > nicht. Hast du vielleicht Pull-Ups eingeschaltet?
Malte M. schrieb: > Was hängt denn noch am µC? Am uC hängen noch: DA-Wandler LCD AD-Wandler jeweils an einem eigenen USCI-Modul So, dann halt den Quarz mit 1,8432MHz (also nicht den DCO) und ein weiter 32kHz-Quarz. Intern benutze ich nichts, ausser die USCIs und den Timer. Den Strom messe ich genau vorm Microcontroller. Also die 2mA sind rein sein Eigenverbrauch. Pull-Ups habe ich nicht eingeschaltet, sondern die Pins selber auf Masse gelegt.
Hier nochmal meine Initialisierung, falsch da was falsch sein sollte:
1 | void configure_clock_module (void) |
2 | {
|
3 | // Initialization of clock source - Crystal 1.8432 MHz
|
4 | |
5 | // BCSCTL1: BASIC CLOCK SYSTEM CONTROL REGISTER 1
|
6 | // XT2OFF: XT2 oscillator (bit cleared: XT2 is now active)
|
7 | BCSCTL1 &= ~XT2OFF; |
8 | |
9 | // BCSCTL3: BASIC CLOCK SYSTEM CONTROL REGISTER 3
|
10 | // XT2Sx: XT2 range select (XT2S_1: 1-3 MHz)
|
11 | // XCAPx: Oscillator capacitor selection (XCAP_3: ~12,5pF)
|
12 | BCSCTL3 = XT2S_1 | XCAP_3; |
13 | |
14 | do
|
15 | {
|
16 | volatile uint16_t i = 0; |
17 | IFG1 &= ~ OFIFG; // Clear oscillator-fault-flag |
18 | for (i = 0xFF; i > 0; i--) // Time to get stable |
19 | {} // Loop |
20 | } while (IFG1 & OFIFG); // Do, until no fault present |
21 | |
22 | // BCSCTL2: BASIC CLOCK SYSTEM CONTROL REGISTER 2
|
23 | // SELMx: Select MCLK (SELM_2: XT2CLK)
|
24 | // SELS: Select SMCLK (bit set: XT2CLK)
|
25 | // DIVM: Divider MCLK (DIVM_1: /2)
|
26 | // DIVS: Divider SMCLK (DIVS_1: /2)
|
27 | BCSCTL2 = SELM_2 | SELS;// | DIVM_1 | DIVS_1; |
28 | }
|
Macht die Größe der Lastkapazität vom Quarz etwas aus beim Stromverbrauch?
Gero schrieb: > DA-Wandler > LCD > AD-Wandler Wie sind die angebunden ? Externe PullUps ? Interne PullUps in den Modulen ?
Ich würde die nicht benutzten Pin-Ports nicht an Masse legen ! sondern nur als Ausgänge definieren und offen lassen .
Erik schrieb: > Ich würde die nicht benutzten Pin-Ports nicht an Masse legen ! > sondern nur als Ausgänge definieren und offen lassen . OK. Und wo ist der Vor-/Nachteil bei den Möglichkeiten?
@ Gero (Gast)
>OK. Und wo ist der Vor-/Nachteil bei den Möglichkeiten?
Wenn du die Pins extern hart auf Masse legst und im Programm aus
Versehen auf High schaltest, ziehst du viel Strom und killst ggf. den
IO-Pin.
MfG
Falk
Es fließt über die Ausgänge kein Strom ! hat das ding keinen eigenen AD Wandler ? denn wenn du ein haufen externe Beschaltung hast die brauch zum ansteuern auch Strom .
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.