Gast
#6241356
Guten Tag, ich habe ein etwas merkwürdiges Phänomen: Ich habe eine Applikation auf einem STM32F407 geschrieben, die im Interruptcontext Floating point Operationen durchführt. (Ich weiß langsam bla bla. Ist mir aber erstmal egal. Vielleicht wird das noch in die Main-Loop verlagert). Der Interrupt kommt von einem Timer-gesteuerten ADC und im Intterupt wird der ADC Wert durch Floating Point Arithmetik gefiltert (Tiefpass + Kerbfilter). Das klappt auch einwandfrei. Sobald ich in der Main-Loop auch Floating point Operationen verwende (quasi die gesamte Rechenzeit), steigt die Stromaufnahme meines STMs um ca. 10 mA an. Den absoluten Wert kann ich nicht sagen, da noch andere Dinge am Board hängen. Sobald ich die Floating point Arithmetik in der Main-Loop wieder deaktiviere (nicht neu kompilieren; Ich kann über eine serielle Schnittstelle die Berechnungen deaktivieren) sinkt die Stromaufnahme wieder. Nun ist meine Frage: Ist es normal, das FPU Operationen signifikant Strom benötigen? Durch die Nutzung der FPU im Hauptprogramm wird zudem im Interrupt nötig, dass die FPU Register gesichert werden (Lazy Stacking). Das ist auch zusätzlicher Aufwand. Aber, dass da gleich 10 mA zusammen kommen, kommt mir etwas spanisch vor. Bei den FPU Operationen handelt es sich lediglich um Additionen und Multiplikationen. Ich habe allerdings im Disassembly nicht nachgeprüft, ob der Compiler mir nicht noch was anderes komisches einbaut). Könnt ihr bei euren Controllern soetwas auch beobachten? Der STM ist bei Mouser gekauft (also zu 99% ein Original Teil). Habe noch ein weiteres Board mit einem Chip, den ich in China gekauft habe. Werde morgen versuchen, ob dieses Board dasselbe Verhalten zeigt. Vielen Dank und gute Nacht M. H.