Forum: Mikrocontroller und Digitale Elektronik Stromverbrauch SPI


von Gizmo (Gast)


Lesenswert?

Hallo,

wie gehe ich vor wenn ich den Stromverbrauch eines µC im SPI bzw I2C bzw 
UART Modus bestimmen möchte?

Mein Ansatz:
Eingangskapazität des SPI Chips: 15pF
High Spannung: 3,3V
Low Spannung: 0V
CLK Frequenz: 1kHz

Ich betrachte erstmal nur den Verbrauch durch die CLK Leitung!

C=Q*U -> Q=C/U -> Q=4,5*10^-12 Coulomb

Bei 1kHz muss ich alle 1ms einmal komplett auf 3,3V laden und dann 
wieder auf 0V entladen.
-> t=1/2000=0,5ms

I=dQ/dt=9,1nA mittlerer Verbrauch.
Leitungsaufnahme im Mittel: P=U*I=3,3V*9,1nA=30nW

da die Serial-In und Serial-Out Leitung mit der selben Frequenz laufen, 
dehme ich die Mittlere Leistungaufnahme mal drei.
P(gesamt)=3*30nW=90nW

... sitmmts oder ist das Bullshit?

Greets
Gizmo

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Gizmo schrieb:
> Hallo,
>
> wie gehe ich vor wenn ich den Stromverbrauch eines µC im SPI bzw I2C bzw
> UART Modus bestimmen möchte?

Das Datenblatt lesen. Da steht sowas drin.

von Gizmo (Gast)


Lesenswert?

Knut Ballhause schrieb:
> Das Datenblatt lesen. Da steht sowas drin.

http://ww1.microchip.com/downloads/en/devicedoc/21743a.pdf

Leider kann ich hier nichts finden ...
Mir erscheint das auch etwas unlogisch, da der Stromverbrauch ja mit der 
Clockfrequenz anwachsen sollte .. oder täusche ich mich da?

Greets
Gismo

von 6A66 (Gast)


Lesenswert?

Gizmo schrieb:
> ... sitmmts oder ist das Bullshit?

So wie du das gerechnet hast mag das stimmen - für die Treiber der 
Leitungen. Und die genaze Logik der SPI im uP/uC? Braucht die keinen 
Strom? Ein gutes Datenblatt gibt Dir ungefähr einen Anhaltspunkt was der 
uC an diesem Block braucht. Rest ist Interpolation oder aus den Fingern 
saugen :)

rgds

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Gizmo schrieb:
> Leider kann ich hier nichts finden ...

Da hast Du Recht, das Datenblatt taugt nichts. Bei ATMEL hat man sich 
seit Einführung der PicoPower-Technologie dazu durchgerungen, sämtliche 
Peripherie auf dem Chip seitens des Stromverbrauches bei den 
verschiedenen Taktraten im Datenblatt aufzuführen. Daran gewöhnt man 
sich schnell.

von Master S. (snowman)


Lesenswert?

> http://ww1.microchip.com/downloads/en/devicedoc/21743a.pdf
also ich sehe da "Normal Mode" = 250uA und das schliesst für mich SPI 
ein. ..OK, wenn du nur(!) den stromverbrauch der SPI haben willst, gebe 
ich zu, finde ich auch nichts.

von Stefan (Gast)


Lesenswert?

Es ist schon richtig, dass die Stromaufnahme von der Frequenz abhängt. 
Typischerweise nimmt die Stromaufnahme beinahe linear mit der Frequenz 
zu. Doppelte Frequenz = doppelte Stromaufnahme.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wenn man jetzt davon ausgeht, dass die CPU für SPI mindestens 4x so 
schnell wie der SPI-Takt laufen muss, dann kann man die Stromaufnahme 
des Gesamtcontrollers für die gegebene SPI-Frequenz berechnen, wobei der 
Strom für das SPI dann darin enthalten ist.

von c-hater (Gast)


Lesenswert?

Knut Ballhause schrieb:

> Wenn man jetzt davon ausgeht, dass die CPU für SPI mindestens 4x so
> schnell wie der SPI-Takt laufen muss

...dann hat man eine Milchmädchenrechnung verfaßt.

Das gilt allenfalls für den Slave-Mode oder im Multimaster-Betrieb.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ja und? Dafür hast Du dann wenigstens mal eine Hausnummer. Ohne Weitere 
Info vom OP, wofür er die Parameter braucht, ist das Ganze hier ohnehin 
über den Daumen...

von Falk B. (falk)


Lesenswert?

Man kann alles akademisch übertreiben. Klar, theoretisch braucht auch 
das SPI-Modul seinen Strom, abhängig von der Taktfrequenz. Praktisch 
fällt das unter ferner liefen, denn wenn SPI läuft, läuft auch die CPU 
unter Vollast, aka Active Mode. Siehe Sleep Mode. Die paar uA sind 
Peanuts, schließschlirch reden wir nur über bestfalls dreit Duztend 
rasselnde FlipFlops.

von Duenner Stapel (Gast)


Lesenswert?

Die clock frequenz auf dem SPI ist eher unwesentlich. Man sollte eher 
die Anzahl Flanken zaehlen. Natuerlich laeuft der Controller schon mit 
dem Uhrenquarz auf 32kHz.
Sonst waer's uebertrieben.

von Gizmo (Gast)


Lesenswert?

Hallo zusammen,

vielen Dank erstmal für die zahlreichen Antworten!

Vielleicht hätte ich gleich etwas konkreter fragen sollen ...
Den (SPI)Chip hatte ich nur exemplarisch ausgewählt um Zahlenwerte für 
die Eingangskapazität zu haben.
Die Frage die ich mir gestellt habe war folgende:

Neben dem Strom den mein µC braucht (MSP430 5x-Serie) möchte ich wissen, 
was sonst an Leistung verbraten wird, wenn ich per SPI mit IRGENDeinem 
SPI-fähigen Chip kommuniziere.
Meine Annahme ist:

Leistung: P(ges)=P(µC im SPI-Betrieb) + P(SPI-Chip) + P(Verluste durch 
Umladen der Eingangskapazität)

Stimmt das so?

Greets
Gizmo

von Falk B. (falk)


Lesenswert?

@  Gizmo (Gast)

>Leistung: P(ges)=P(µC im SPI-Betrieb) + P(SPI-Chip) + P(Verluste durch
>Umladen der Eingangskapazität)

>Stimmt das so?

Ja.

Die Formel für letzeres ist einfach
1
P = U^2 * C * f

Gilt auch für die meisten CMOS-ICs, wobei man aber meist nicht die 
parasitären Kapazitätn der ICs kennt. Bei den einfachen 74er ICs steht 
das noch im Datenblatt.

von Ich (Gast)


Lesenswert?

Super Diskussion, das Teil im Datenblatt ist doch nur ein 
Temperatur-Sensor.

Und da steht, dass der maximal 400µA braucht, 250µA typisch.
Und, und, und, da sind reichlich Angaben. :-)

Am Ende hilft sowieso nur nachzumessen, ob die Ziele erreicht wurden.

von Gizmo (Gast)


Lesenswert?

Ich schrieb:
> Super Diskussion, das Teil im Datenblatt ist doch nur ein
> Temperatur-Sensor.
Wie gesagt wollte ich das einfach mal generell wissen ... der 
Temperatursensor war nur als Beistpiel ausgewählt (Google:"SPI Sensor" 
-> 1.Treffer ...)

> Und, und, und, da sind reichlich Angaben. :-)
Wenn ich das richtig verstehe zeigen die mir aber nicht was mein 
Verbrauch NUR durch die SPI-Übertragung ist. Wenn Du mehr siehst, lass 
mich bitte nicht doof sterben ;)


>Falk Brunner schrieb:
>Die Formel für letzeres ist einfach
>P = U^2  C  f
>
>Gilt auch für die meisten CMOS-ICs, wobei man aber meist nicht die
>parasitären Kapazitätn der ICs kennt. Bei den einfachen 74er ICs steht
>das noch im Datenblatt.
Das ist was konkretes. Danke!
Die Ausgangskapazität ist mit 50pf angegeben. Kann ich mir das nun so 
vorstellen:
1)Tempsensor möchte eine 1 senden. Seine Ausgangskapazität sind 50pF.
2)Eingangskapazität von der Gegenstelle sind (zB) 30pf.
3)Die beiden Kapazitäten liegen parallel -> C(ges)=80pF.
4)Ich benötige also die Ladungsmenge (Q=C*U) um 80pf auf 3V aufzuladen 
um in diesem Fall einen 1 zu übertragen.
Kann man das so betrachten?

Greets
Gizmo

von Falk B. (falk)


Lesenswert?

@  Gizmo (Gast)

>Kann man das so betrachten?

Ja.

von Gizmo (Gast)


Lesenswert?

Hallo,

vielen Dank nochmals an alle die geholfen haben!!

Greets
Gizmo

von Axel S. (a-za-z0-9)


Lesenswert?

Falk Brunner schrieb:

> Die Formel für letzeres ist einfach
>
1
 P = U^2 * C * f
>
> Gilt auch für die meisten CMOS-ICs, wobei man aber meist nicht die
> parasitären Kapazitätn der ICs kennt. Bei den einfachen 74er ICs steht
> das noch im Datenblatt.

Ich würde das nicht parasitäre Kapazität nennen, sondern eher 
äquivalente Kapazität.

Bei einfachem, rein digitalem CMOS-Zeugs ist die statische Stromaufnahme 
praktisch 0. Die Stromaufnahme besteht dann nur noch aus dem dynamischen 
Anteil, der laut obiger Formel proportional zur Frequenz und zum Quadrat 
der Betriebsspannung ist. Der Proportionalitätsfaktor mit der Einheit 
einer Kapazität ist dann eine Kenngröße der Schaltung.

Bspw. habe ich erst kürzlich das Datenblatt des 74HC132 von NXP gesaugt 
(meine Kopie im Archiv war karpott). Die geben da einen Wert an:

C_pd (power dissipation capacitance) per gate = 24pF

So eine Angabe würde man sich von den µC Herstellern auch wünschen. Also 
z.B. C_pd des SPI-Moduls. Oder des ADC. Oder Timer 0. Oder was immer man 
im Betrieb an- und abschalten und/oder mit wählbarer Frequenz betreiben 
kann.


XL

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.