Hi, bin auf der Suche nach einem Low-Power Mikrocontroller. Die MSP430 sollen ja schon gut sein. Gibt es da schon bessere? Wichtig ist mir eine niedrige Versorgungsspannung. Bin bei weiteren Recherchen auf den C8051F93x von "Silicon Labs" gestoßen. Dieser soll mit 0.9 V laufen. Benutzt dafür nen internen Step-Up Wandler (DC-DC Converter), der die 0.9 V auf 1.8 wandelt. Leider blicke ich nicht ganz durch das Datenblatt durch, wie viel er denn jetzt verbraucht mit aktivierten Step-Up-Wandler. Die 0.9 V sind natürlich schön, jedoch wird der Stromverbrauch entsprechend steigen bei aktivierten Wandler. Die MSP430 haben ja ne schöne Angabe von 165µA/MHz. Sowas finde ich leider bei dem C8051F93x nicht, bzw ist das Datenblatt ein wenig kompliziert. https://www.silabs.com/Support%20Documents/TechnicalDocs/C8051F93x-92x.pdf Verbraucht er nu weniger, als die MSP430 oder tut sich da nich viel, was die Gesamtleistung betrifft(bei aktiviertem DC-DC Converter). Die 0.9 V sind natürlich schön. Vielleicht kennt sich ja jemand damit aus und kann mir helfen. Vielen Dank Günther S.
Die AVR sind auch nicht so schlecht. Falls man sich in die Stromspartechnologie einarbeitet ist man mit vielerlei details konfrontiert. Zum Einen muss man die externe Peripherie beruecksichtigen, die moeglicherweise bei den niedrigen Spannungen nicht richtig laeuft. Pullups, die schnell mal ein Mikroampere verpuffen, zum Anderen muss man das Timing, resp den Programmfluss anpassen, um die CPU maximal lang im Sleep lassen zu koennen.
Die MSP430 sind auch nicht schlecht. Falls man sich in die Stromspartechnologie einarbeitet ist man mit vielerlei details konfrontiert. Zum Einen muss man die externe Peripherie beruecksichtigen, die moeglicherweise bei den niedrigen Spannungen nicht richtig laeuft. Pullups, die schnell mal ein Mikroampere verpuffen, zum Anderen muss man das Timing, resp den Programmfluss anpassen, um die CPU maximal lang im Sleep lassen zu koennen. Es ist halt überall das selbe.
PICs ... Da hab ich schon im letzten Jahrtausend drüber gelacht. War so etwa 1983/4 rum. Hat sich seit dem irgendwas getan?
> Hat sich seit dem irgendwas getan?
Jap...es gibt Flash-Speicher, denn kannst du mehrfach beschreiben ;)
Ausserdem ist das mit dem Bankswitching wesentlich einfacher geworden.
Und die Peripherie is auch nich schlecht geworden. Z.b. soll es auch
Pics mit USB und Ethernet geben
Kannst Du Low Power mal etwas besser definieren? Es gibt z.B. einen ARM9, der laeuft bei 0,9V bis zu 13 MHz schnell, braucht weniger als 10 mAs dabei und hat eine Rechenleistung falls es um 32-bit geht wie ein 8051/AVR/PIC bei 60-100 MHz. Waere also sehr niedrig im Stromverbrauch. Allerdings sind die Standby Werte also Ruhestrom absolut besch... Soll der micro die ganze Zeit laufen, z.B. auf Batterie? Ist er die meiste Zeit im Ruhezustand? Muss er die Daten halten? Muss er sehr haeufig aufwachen, z.b. jede millisecond etwas abfragen..... Diese Fragen definieren deinen speziellen Fall von Low Power. Ein MSP430 startet z.B. sehr schnell vom internen Oszillator, man kann damit alle ms einen Wert einlesen und trotzem noch >90% "schlafen". Ein externer Quartz braucht bereits so lange zum Anschwingen, also keine Ruhephasen. Mehr Info von Deiner Seite kann Dir bessere Hilfe bringen Robert
Danke für die Antworten. Also eine niedrige Betriebsspannung ist wichtig und der Ruhestrom ist auch wichtig. Batteriebetrieben wäre natürlich schön. Was mich mehr interessiert ist der C8051F93x. Kann mir jemand sagen, wie die Stromaufnahme aussieht bei aktivierten DC-DC Converter? Habe jetzt angaben gefunden von 170µA/MHz, nur weis ich leider nicht, wie viel der Aufwärtswandler verbraucht(oder ob das schon mitreingerechnet ist). Er soll ja sehr effizient sein. Geben eine Effizient von 80-90% an. Wie viel Strom verbraucht denn so ein Wandler, wenn er die 0.9 V auf 1.8 heben muss. Ein Betrieb an einer Knopfzelle wäre natürlich optimal. mfG Günther S.
@ Günther S. (Gast) >Was mich mehr interessiert ist der C8051F93x. >Kann mir jemand sagen, wie die Stromaufnahme aussieht bei aktivierten >DC-DC Converter? Keine Ahnung. Aber sag doch mal, was du insgesamt vorhast. Der MSP430 und AVR sind schon kleine Stromsparwunder, andere Controller auch. So um die 200uA/MHz sind sehr wenig, und man kann damit sehr viel machen. Been There, done that. Meistens wird man den Sleep Mode nutzen, da die meiste Zeit nix zu tun ist. Aus ner Knopfzelle kann man heute fast jeden Controller betreiben, siehe Versorgung aus einer Zelle. MFG Falk
Das Reizvolle gerade beim MSP430 ist die zur Laufzeit umkonfigurierbare Taktversorgung. So kann, wenn es lange Zeit gar nichts zu tun gibt, mit einem Uhrenquarz mit 32 kHz Takt gearbeitet werden - das genügt für Dinge wie Temperaturmessungen und zyklische Abfragen irgendwelcher Kontakte etc. Dazwischen kann mit den verschiedenen Low-Power-Modi noch mehr Strom gespart werden. Der LF-Oszillator verbraucht in diesen weniger Strom als der prozessorinterne DCO bzw. externe HF-Oszillatoren. Kommt es dann, aufgrund eines Ereignisse, auf Rechenleistung an, kann leicht auf eine höhere Taktfrequenz umgeschaltet werden, indem der betreffende Oszillator angeworfen und auf dessen Einschwingen gewartet wird. Werden diese Techniken geschickt eingesetzt, kann so mit sehr geringem Leistungsbedarf gearbeitet werden. Es gibt eine Musterapplikation von TI, bei der eine Photodiode als Stromquelle eingesetzt wird. Ein realer Anwendungsbereich für MSP430 sind beispielsweise die elektronischen "Heizkostenverteiler". In diesen wird ein µC über einen Zeitraum von zehn Jahren mit einer Lithiumbatterie betrieben.
> Was mich mehr interessiert ist der C8051F93x. > Kann mir jemand sagen, wie die Stromaufnahme aussieht bei aktivierten > DC-DC Converter? > Er soll ja sehr effizient sein. Geben eine > Effizient von 80-90% an. Wie viel Strom verbraucht denn so ein Wandler, > wenn er die 0.9 V auf 1.8 heben muss. > Ein Betrieb an einer Knopfzelle wäre natürlich optimal. Datenblatt S. 43/44 226 uA / MHz (F < 10 MHz) genauer 90 uA + 226 uA / MHz 120 uA / MHz (F > 10 MHz) Bei F > 10 MHz soll man folgendermaßen rechnen 4.1 mA - (25 MHz - F) * 120 uA/MHz z.B. F = 16 MHz -> 4.1 mA - 1.08 mA = 3.02 mA Für Eingangsspannungen < 1.8 V gilt für den Batteriestrom: IBatt = (VCC * I) / (eta * VBatt) VCC = Ausgangsspannung des DC-DC-Wandlers I = Strom von oben eta = Wirkungsgrad des DC-DC-Wandlers bei Last x (Datenblatt S. 47 - 49) VBatt = Eingangsspannung
@ Arc Net (arc) >226 uA / MHz (F < 10 MHz) genauer 90 uA + 226 uA / MHz Da ist der MSP430 deutlich besser, vor allem wenn es um Ultra Low Power in diesem Bereich <100uA geht. MFG Falk
Falk Brunner wrote: > @ Arc Net (arc) > >>226 uA / MHz (F < 10 MHz) genauer 90 uA + 226 uA / MHz > > Da ist der MSP430 deutlich besser, vor allem wenn es um Ultra Low Power > in diesem Bereich <100uA geht. > > MFG > Falk Kommt auf die Anwendung an... Beispiel: 999 ms Sleep + 1 ms @ 16 MHz MSP430F2370: Sleep = LPM3 32 kHz Takt an 999 ms * 0.0007 mA + 1 ms * 6.5 mA = 7 uA F9xx: Sleep = smaRTClock an 32 kHz 999 ms * 0.0006 mA + 1 ms * 3.01 mA = 3 uA d.h. der F9xx könnte auch 2 ms mit 16 MHz laufen Die Aufwachzeiten liegen, bei gleicher VCC, in ähnlichen Bereichen (1 - 2 us) Edit: Wobei der MSP noch das Problem hat, dass er, wenn man sich ans Datenblatt hält, bei 1.8 V nicht mit 16 MHz läuft
Hi, Danke für die Antworten. Zur Anwendung (meine Idee): Also der µC soll mit über einen Kondensator gespeist werden. Darum möglichst wenig Energie verbrauchen. Er wird bei erreichen der nötigen Spannung(am Kondensator) in den aktiven Modus versetzt, macht seine Arbeit und geht danach wieder schlafen.Es wird dann im µC bestimmte Berechnungen ausgeführt(an die verfügbare Energiemenge angepasst). Eine niedrige Spannung wäre also schön, so könnte der Kondensator auf eine hohe Spannung aufgeladen werden und versorgt den µC bis die Spannung nicht mehr reicht. Das Aufladen des Kondensators sei hier mal nicht von Interesse. Die Frage ist nun, welcher µC dem Kondensator am langsamsten seine Energie entzieht. Also nen gutes Verhältnis von Stromverbrauch und niedrigeer Spannung (längere Versorgung). Dabei werden im µC nur Berechnungen durchgeführt und externe Peripherie sollte komplett abgeschaltet werden können (ausser evntl. ein paar Ports), so dass möglichst wenig Energie nötig ist. Vielen Dank mfG Günther S.
Hinzugefügt: Die Frage die ich mir jetzt stelle ist: Ist der MSP430 mit 1.8 V evtl sparsamer, als der F9xx mit aktiviertem DC-DC Wandler. Denn man könnte dann den µC schon ab einer Spannung von 0.9 V betreiben. Darum interessiert mich der Stromverbrauch des F9xx mit DC-DC-Wandler, ob sich das evtl wieder ausgleicht, wenn der Kondensator zwar schon ab 0.9 V benutzt werden kann, sich dann aber durch erhöhten Stromverbrauch (DC-DC Wandler) schneller entlädt. Oder ob insgesamt der MSP430 besser ist, ich ihn zwar erst ab 1.8 V benutzen kann. Der Energieverbauch aber evtl niedrieger ist (weil ohne DC-DC Wandler). Vielen Dank für die kompetenten Antworten ( @ Arc Net: >226 uA / MHz (F < 10 MHz) genauer 90 uA + 226 uA / MHz Was bedeutet denn dieses "oneshot active" oder "oneshot bypassed" bei der "Frequency Sensitivity" Angabe? Und warum wird auf S.44 nochmal ne Angabe mit 95µA/MHz gemacht?? Wozu zählen die jetzt? Irgendwie ist das doch kompliziert gemacht, aber ich denke ich blicke durch die Struktur des DB nicht durch. Vielen Dank ) mfG Günther S.
Mein 3GHz Quad-Core Pentium läuft auch mit 0.9V, ist der somit auch ein Low-Power. (Boahjeh dafür sauft er 200 Ampere...)
@Günther S. (Gast) >Zur Anwendung (meine Idee): Also der µC soll mit über einen Kondensator >gespeist werden. Das ist immer noch nicht der Kern des Problems. Du denkst, dass man es so lösen muss, was aber oft nciht der Fall ist. Siehe Versorgung aus einer Zelle und http://www.mikrocontroller.net/articles/Speicher#EEPROM_Schreibzugriffe_minimieren >nötigen Spannung(am Kondensator) in den aktiven Modus versetzt, macht >seine Arbeit und geht danach wieder schlafen.Es wird dann im µC Logisch, klassiche Anwendung des Sleep Mode. >Das Aufladen des Kondensators sei hier mal nicht von Interesse. Das glaube ich weniger. Erzähl mal, was WIRKLICH gemacht werden soll. >Ports), so dass möglichst wenig Energie nötig ist. Nimm ne Lithiumzelle ;-) MFg Falk
Die Variante mit dem DC-DC-Wandler ist nahezu zwangsläufig weniger effizient: . der Wandler hat einen Wirkungsgrad < 1 . der Wandler muss selbst dann laufen, wenn der Prozessor schläft Damit ist sowas eher für Situationen geeignet, bei denen man zwar genügend Energie zur Verfügung hat, aber nur wenig Spannung, bspw. Betrieb aus einem Fotoelement. Deine Kondensator-Idee hat einen prinzipiellen Haken: was soll der Controller tun, wenn die Kondensatorspannung zu klein für einen sicheren Betrieb ist? In dem Moment besteht das Risiko, dass der Flash nicht mehr korrekt gelesen wird und damit unsinniger Code ausgeführt wird. Der normale Umgang damit ist, eine brown-out detection zu aktivieren, allerdings kickt den den Controller bei zu kleiner Spannung in den Reset. Dieser wiederum braucht viel mehr Strom als der Sleep, sodass deine letzte Energie des Kondensators sofort alle ist. Ein Picopower-AVR mit "sleeping BOD" könnte Abhilfe sein: bei ihm wird die brown-out detection (BOD) während des Sleep deaktiviert und erst beim Aufwachen wieder aktiviert. Du müsstest damit nur noch sicher stellen, dass beim Erreichen der minimalen Betriebsspannung ein fester Tiefschlaf eingenommen wird, der erst wieder verlassen wird, wenn der Kondensator wieder genügend Energie hat. Wie Falk schon schrieb: erkläre mal die komplette Applikation, statt hier nur Häppchen deiner eigenen Gedanken zu präsentieren.
Bleibt noch zu erwähnen dass der C8051F9xx eine klassische Akkumulator Architektur besitzt, während die AVR's und der MSP430 Registermaschinen sind. Dies bringt beiden letzteren Performancevorteile gegenüber dem 8051. Somit lässt sich die Zeit im Active-Mode und somit der mittlere Stromverbrauch deutlich reduzieren...
Dazu bliebe noch zu erwähnen, daß der CPU-Kern des MSP430 mit 16 Bit arbeitet, was bei Integer-Arithmetik gewisse Vorteile mit sich bringt. Zudem ist er als Von-Neumann-Maschine auch unkomplizierter in C zu programmieren als die Harvard-Architektur des AVR (kein "pgmspace.h" etc. erforderlich). Allerdings gibt es nach wie vor keinen einzigen MSP430 mit externem Speicherinterface, was bei RAM-intensiven Anwendungen das K.O. darstellen dürfte. Außerdem kosten MSP430 relativ viel; Angelika will für einen '1611 knapp 18 EUR haben.
Hi, also Anwendung soll ein durch ein RF Feld gespeister µC sein. Es wird wohl eine SPannungsvervielfacherschaltung und der Kondensator + ein Spannungsregler noch drauf Platz finden. Die meiste Zeit wird er im Sleep Modus laufen. Die Anwendung wurde mit dem MSP430 schon realisiert. Wollte jetzt wissen, ob ich durch den C8051F9xx noch mehr Energie sparen kann. Darum die Frage zum DC-DC-Wandler, wie viel Strom er denn jetzt benötigt. Ob sich der Energieverbrauch insgesamt dadruch erhöht obwohl 0.9 V. Preis ist nebensächlich. mfG Günther S.
Versuch doch mal den Power Calculator von Silicon Labs. Klar wird der sicherlich die Werte etwas "schönen" ;)
Wobei das fehlende Speicherinterface beim MSP430 eine Philosophie-Frage ist...in dem Moment, wo ich einen externen RAM dranhänge, ist es halt kein Ultra-Low-Power mehr! Viele Grüße, Mika
Mika wrote: > Wobei das fehlende Speicherinterface beim MSP430 eine Philosophie-Frage > ist...in dem Moment, wo ich einen externen RAM dranhänge, ist es halt > kein Ultra-Low-Power mehr! Warum nicht? Was ist der Unterschied zum internen SRAM? Beide sind voll statisch und brauchen ohne Takt daher nur Leckstrom.
Soweit die ideale Sicht der Dinge. In Wirklichkeit, und gerade mit kleiner werdenden Technologien, vebraucht auch SRAM im Vergleich sehr viel Strom. Betrachten wir einfach mal den CY7C1012DV33 von Cypress (weil das Datenblatt hier gerade liegt), der verbraucht im Standby 25mA, das ist 250000 so viel wie der MSP im Standby verbraucht. Es lohnt sich in dem Moment einfach nicht mehr, einen Ultra-Low-Power Mikrokontroller zu verwenden, der dementsprechend tendenziell auch teurer ist. Mika PS: Es gibt bestimmt auch energiesparendere SRAMs, aber das grundsätzliche Problem sollte klar geworden sein.
Das Cypress-Teil ist allerdings eine eher krasse Variante für sehr hohe Geschwindigkeit (8ns), vergleichbar zu den Cache-SRAMs wie sie aus alten 486er und P5-Kisten bekannt sind. Die sind kompromisslos auf Tempo getrimmt. Typischer für Microcontroller ist wohl die verbreitete 512Kx8 55-70ns Klasse, am Beispiel vom Hynix HY628400A(LL): 30µA (max) im Standby, 10mA aktiv. Und wenn da 30µA max steht, dann wird das unter Normalbedingungen viel weniger sein.
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.