Forum: Mikrocontroller und Digitale Elektronik Stromaufnahme atmega8 zu hoch??


von Darko D. (darlo)


Lesenswert?

Hallo. Ich habe schon gelesen, dass die delay_ms und waitMs funktionen 
mehr strom verbrauchen. Laut dieser tabelle

http://www.mikrocontroller.net/articles/Leistungsaufnahme_von_Mikrocontrollern

 soll der Verbrauch des atmega8 2,3 mA brauchen. Meiner braucht aber 
11,4 mA

Liegt das wirklich am Programm? Kann ich und darf ich die Taktzahl 
drosseln?

Danke für die Info!!

von Max H. (hartl192)


Lesenswert?

Darko Dragojevic schrieb:
> Hallo. Ich habe schon gelesen, dass die delay_ms und waitMs
> funktionen mehr strom verbrauchen.
Mehr Strom als was?

> soll der Verbrauch des atmega8 2,3 mA brauchen. Meiner braucht aber
> 11,4 mA
Ist das nur der uC alleine oder misst du auch den Strom von 
Spannungsreglern, LEDs, usw. mit? Mit welcher Freqzenz und Spannung 
läuft dein uC?

> Kann ich und darf ich die Taktzahl
> drosseln?
Ob du kannst weiß ich nicht, du darfst es wenn der uC seine Aufgaben mit 
der gewählten Frequenz immer noch schnell genug erledigt.

: Bearbeitet durch User
von M. K. (sylaina)


Lesenswert?

Darko Dragojevic schrieb:
> soll der Verbrauch des atmega8 2,3 mA brauchen. Meiner braucht aber
> 11,4 mA

Mit welcher Taktrate läuft dein Atmega? Was wird noch versorgt? 11 mA 
ist nicht viel, hat man schnell zusammen.

von грунер троль (Gast)


Lesenswert?

Allenfalls muss man den Controller nicht mit der maximal spezifizierten 
Frequenz laufenlassen. Miss doch mal die Antwortzeit und die Auslastung.

von Peter D. (peda)


Lesenswert?

Darko Dragojevic schrieb:
> Ich habe schon gelesen, dass die delay_ms und waitMs funktionen
> mehr strom verbrauchen.

Als was?

Darko Dragojevic schrieb:
> Meiner braucht aber
> 11,4 mA

Bei was?

von Darko D. (darlo)


Lesenswert?

Guten Morgen!
ich habe den Strom gemessen der für die Einspeisung des atmega zuständig 
ist, also rein der uC. Ohne LED ohne taster oder LM317.

Darko Dragojevic schrieb:
> Ich habe schon gelesen, dass die delay_ms und waitMs funktionen
> mehr strom verbrauchen.

Als was?


antwort: Mehr als ohne verwendete delayfunktionen, oder ist das egal für 
den Stromverbrauch was im Quellcode steht?



Darko Dragojevic schrieb:
> Meiner braucht aber
> 11,4 mA

Bei was?

antwort: wenn ich gar nichts schalte, also der minimalverbrauch.

Wenn ich den taster drücke, dann kommen 2mA dazu, weil das ja son Pull 
resistor ist.

Danke nochmal, dass ihr mir da so weiterhelft!

von Darko D. (darlo)


Lesenswert?

Achso, da war ja noch ne taktrate.

die ist 3684000

also knapp 4 Mio.


Es sollen nur 1 taster und 4 ausgänge genutzt werden. wie tief darf ich 
das denn stellen kann ich das auf 200.000 stellen. Das wäre ja für das 
programm immer noch klasse! ist wie gesagt nur ein taster und 4 digitale 
ausgänge...

LG aus Cuxhaven

von Peter II (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> Es sollen nur 1 taster und 4 ausgänge genutzt werden. wie tief darf ich
> das denn stellen kann ich das auf 200.000 stellen.

stellen kann du überhaupt nichts. du musst einen passenden Quarz 
verbauen oder wenn vorhanden den internen Teiler verwenden.

von Hubert G. (hubertg)


Lesenswert?

Im KFZ kannst du doch den Stromverbrauch vergessen.

von Peter D. (peda)


Lesenswert?

Darko Dragojevic schrieb:
> oder ist das egal für
> den Stromverbrauch was im Quellcode steht?

Ja, die CPU braucht immer den gleichen Strom.
Weniger wirds erst, wenn man Sleep-Modis benutzt, z.B. Idle.

von Karl H. (kbuchegg)


Lesenswert?

Darko Dragojevic schrieb:

> antwort: Mehr als ohne verwendete delayfunktionen, oder ist das egal für
> den Stromverbrauch was im Quellcode steht?

dem ATMega ist es egal, ob er mittels delay_ms Däumchen drehen soll oder 
ob er ein paar teuflisch schwierige quadratische Gleichungen lösen soll.
Der braucht da immer den gleichen Strom.

Was einen Unterschied macht, das ist, wenn man ihn zwischendurch 
schlafen legen kann. Betrachte ich mir aber deine Programmierkünste, 
dann solltest du dieses Thema aber noch verschieben. Mindestens 3 bis 4 
Monate. Und in der Zwischenzeit fleissig üben.

von M. K. (sylaina)


Lesenswert?

Darko Dragojevic schrieb:
> Achso, da war ja noch ne taktrate.
>
> die ist 3684000
>
> also knapp 4 Mio.
>
>
> Es sollen nur 1 taster und 4 ausgänge genutzt werden. wie tief darf ich
> das denn stellen kann ich das auf 200.000 stellen. Das wäre ja für das
> programm immer noch klasse! ist wie gesagt nur ein taster und 4 digitale
> ausgänge...
>
> LG aus Cuxhaven

Einen µC sollte man nur so schnell laufen lassen wie nötig. Hier sollte 
man sich also die Frage stellen wie schnell man reagieren muss auf die 
Eingaben und wie schnell der Ausgang dann schalten soll.

Zu deinem Stromverbrauch: Was hängt denn an den Ausgängen so dran? Dann 
solltest du noch berücksichtigen, dass dein Atmega mit 4 MHz nur typisch 
2.3 mA Strom braucht, es kann aber auch locker doppelt so viel sein.

von Peter R. (pnu)


Lesenswert?

Bei Deinen Angaben lassen sich zwei Ursachen für Stromverbrauch 
ausmachen:

Stromverbrauch der Ausgänge.
Stromverbrauch durch den Programmablauf.

Stromverbauch der Ausgänge: Da ist ganz klar, durch die Beschaltung 
bestimmt und wie die Ausgänge belastet werden. Da nichts weitres zum 
Programmablauf bekannt ist, kann  man auch nichts sagen dazu.

Stromverbrauch durch die Programmverarbeitung: Ob das Programm in einer 
Warteschleife(wait..) abläuft oder im normalen Teil, ändert das kaum 
etwas am Stromverbrauch, wenn nicht gerade an den Ausgängen 
herumgeschaltet wird.
Da ist Taktfrequenz maßgebend. Je langsamer der Takt, desto weniger 
Strom.
AVRs dürfte man sogar auf ganz niedrige Taktfrequenzen im kHz-Bereich 
einstellen.

Am Strom etwas per Takt zu sparen, ist aber Drehen am falschen Knopf.

Zum Stromsparen muss man Andres tun, das mehr für Fortgeschrittene ist:
Den Kontroller immer dann "schlafen" lassen, wenn keine Aufgabe ansteht 
und ihn von Wartezeiten befreien.

Beispiel: nicht mit "wait..." warten lassen, sondern einen Timer 
starten, der z.B. 1ms lang, ohne Programmeingriff abläuft. Dann den 
Kontroller schlafen lassen. Nach 1ms weckt der Timer den Kontroller 
wieder auf und der arbeitet die Befehle ab, die nach einer ms anstehen, 
dann kommt die nächste Schlafphase.

Erst durch diesen komplizierten Wechsel in den sleep-mode erreicht man 
effektive Stromersparnis.

von (prx) A. K. (prx)


Lesenswert?

Darko Dragojevic schrieb:
 Verbrauch des atmega8 2,3 mA brauchen.

Datasheet: ~6mA bei 3,6MHz und 5V fur den ATmega8,
           ~3,5mA für den ATmega8A.

von Rolf M. (rmagnus)


Lesenswert?

Michael Köhler schrieb:
> Dann solltest du noch berücksichtigen, dass dein Atmega mit 4 MHz nur
> typisch 2.3 mA Strom braucht,

Mit 1 MHz...
Laut Datenblatt braucht er bei 4 Mhz mit dem internen RC-Oszillator eher 
7 mA.

von (prx) A. K. (prx)


Lesenswert?

Darko Dragojevic schrieb:
> soll der Verbrauch des atmega8 2,3 mA brauchen.

Das trifft auf den ATmega88PA zu.

von Stefan F. (Gast)


Lesenswert?

Vielleicht hat er einige I/O Pins unbeschaltet gelassen und nichtmal 
Pull-Up's eingeschaltet. Das erhöht die Stromaufnahme ein wenig.

Mir kommen die 11 mA auch recht hoch vor. Im Datenblatt steht 7 mA (bei 
5V 4Mhz).

von M. K. (sylaina)


Lesenswert?

Peter R. schrieb:
> Am Strom etwas per Takt zu sparen, ist aber Drehen am falschen Knopf.

Ist, finde ich, unglücklich formuliert. Ich hätte eher gesagt

Am Strom ausschließlich per Takt zu sparen, ist drehen am falschen 
Knopf.

von Alex W. (a20q90)


Lesenswert?

Eventuell hat er die Ports aktiviert und dabei die Pull-Ups an! Dabei 
werden über die internen Rs die VCC gegen Masse geschaltet.

von Dummbatz (Gast)


Lesenswert?

Alex W. schrieb:
> Eventuell hat er die Ports aktiviert und dabei die Pull-Ups an! Dabei
> werden über die internen Rs die VCC gegen Masse geschaltet.

Man kann die Ports nicht deaktivieren.
Schaltet man die Ports auf Ausgang, sind die Pullups immer abgeschaltet.
Die gibt es nur bei Eingangsports.

von Darko D. (darlo)


Lesenswert?

Hallo. Frohes neues!

Also ich habe an die Ausgänge über einen Vorwiderstand Transistoren BC 
548 angesteuert. Jedoch werden die Ausgänge nicht geschaltet, wenn ich 
den Taster nicht drücke. Und wenn nichts geschaltet ist habe ich den 
hohen strom. Das bedeutet also, dass es für die Strommessung nicht von 
Relevanz ist, was da an den Ausgängen ist.

Ich werde gleich einfach ein leeres Programm aufspielen und dann 
nocheinmal messen.

Und Ausgänge mit Pulldown oder Pullup hab ich ja noch nie gehört!!

Das gibt es doch nur bei Eingängen...

Danke nochmal für die Hilfestellungen.

Meint ihr, dass ich das mit euch nicht hinbekommen könnte den uC in den 
sleepmodus zu bringen. Das kann doch nicht sooo schwer sein...

LG Darko

von (prx) A. K. (prx)


Lesenswert?

Du hast nicht zufällig den Stromverbrauch anderer Komponenten 
mitgemessen, wie LED oder Spannungsregler?

: Bearbeitet durch User
von Darko D. (darlo)


Lesenswert?

nein, ich messe direkt an der einspeisung des atmega8. Ich werde nun mal 
das programm ändern just for fun. dauert ja nur 2 min.

von (prx) A. K. (prx)


Lesenswert?

Darko Dragojevic schrieb:
> die ist 3684000

Ganz sicher? Bei den 8MHz des internen Oszillators passen die 11,4mA 
nämlich präzise zum Datasheet des ATmega8 bei 5,0V.

: Bearbeitet durch User
von Darko D. (darlo)


Lesenswert?

So, also das eine ist die Theorie, das andere die Praxis.
Ich habe ein leeres Programm ohne if und ohne waitMs funktionen geladen, 
von 11,1 auf 10,9 mA runtergegangen.

Dann habe ich die Taktfrequerz von 3686400 auf 368640 und dann 
probehalber auf 36864 Hz runtergesetzt, also um faktor 100 
runtergesetzt.

Die stromaufnamhe blieb konstant auf 10,9 mA ohne programm und mit khz 
Taktfrequenz...

komisch oder?

von Darko D. (darlo)


Lesenswert?

Also ich ändere die Taktfrequenz hier:

#define   F_CPU 3686400  // Taktfrequenz des myAVR-Boards
#include  <avr\io.h>    // AVR Register und Konstantendefinitionen
//----------------------------------------------------------------------
void initPorts(void)        // Unterprogramm füpr die Initalisierung
{
  //  DDRB=0x07;                      // Set Bits 0, 1 und 3 von DDRB =1 
"Ausgang"
  DDRB |= (1 << PB0);             // damit ist dann PB0 ein Ausgang
  DDRB |= (1 << PB1);             // damit ist dann PB1 ein Ausgang
  DDRB |= (1 << PB2);             // damit ist dann PB2 ein Ausgang
....

in der ersten Quellcodezeile

daneben steht auch die taktfrequenz... als kommentar

von (prx) A. K. (prx)


Lesenswert?

Darko Dragojevic schrieb:
> Also ich ändere die Taktfrequenz hier:

Q.E.D.

Die Taktfrequenz änderst du mit den Fuses. Was du ins Programm 
reinschreibst ändert nur irgendwelche prorammierten Delays, nicht aber 
den Prozessortakt.

von Dietrich L. (dietrichl)


Lesenswert?

Darko Dragojevic schrieb:
> Dann habe ich die Taktfrequerz von 3686400 auf 368640 und dann
> probehalber auf 36864 Hz runtergesetzt, also um faktor 100
> runtergesetzt.

Wie hast Du das gemacht? Denn

Peter II schrieb:
> stellen kann du überhaupt nichts. du musst einen passenden Quarz
> verbauen oder wenn vorhanden den internen Teiler verwenden.

Also so einfach den Takt auf 1/10 oder 1/100 ändern geht nicht!
Was im Programm steht, ändert den Takt nicht! Das ist nur eine 
Information für den Compiler, um  die Wartezeiten richtig rechnen und 
dann im Programm einstellen zu können.

Gruß Dietrich

von (prx) A. K. (prx)


Lesenswert?

Schätze mal, dein Mega8 ist auf internen R/C-Oszillator mit 8MHz 
eingestellt. Um ihn auf 3,6MHz zu kriegen muss der Quarzoszillator per 
Fuse aktiviert werden.

Ein frisch gelieferter Mega8 taktet mit internen 1MHz und dann sind es 
nur noch 2,3mA. Beim funktionsgleichen Mega8A nur 1,8mA, beim 
pinkompatiblen Mega88PA sogar nur noch 0,8mA.

: Bearbeitet durch User
von Darko D. (darlo)


Lesenswert?

aha, so langsam lüftet sich das Geheimnis... Ich hatte mich auch schon 
gewundert, warum die Millisekundenanzahlen nicht mit denen der realität 
übereinstimmen. 500ms im Programm sind in Wirklichkeit viel länger. Doch 
wo kann ich denn die Fuses einstellen, ich brauche für 1 Taster und 4 
ausgänge keine 8 Mhz, vielleicht 8 Khz!!

von (prx) A. K. (prx)


Lesenswert?

A. K. schrieb:
> Um ihn auf 3,6MHz zu kriegen muss der Quarzoszillator per
> Fuse aktiviert werden.

PS: Vorausgesetzt da hängt ein 3,6MHz Quarz dran. Falls da nichts 
dranhängt taktet er dann überhaupt nicht mehr und ist erst einmal 
mausetot.

von (prx) A. K. (prx)


Lesenswert?

Darko Dragojevic schrieb:
> wo kann ich denn die Fuses einstellen,

Spätestens jetzt wärs an der Zeit, die exakte Hardware zu verraten.

Im Code steht was von myAVR, aber auch davon gibts verschiedene. Manche 
scheinen mit vorprogammiertem Controller zu kommen, der einen Bootloader 
enthält. Fuses umzuprogrammieren geht dann nicht so ohne weiteres.

: Bearbeitet durch User
von Darko D. (darlo)


Lesenswert?

Scheiße! Immer geht was nicht. Ok, dann bleibt nun noch die Möglichkeit 
mir zu sagen (falls ihr das tut) wo ich den atmega8 auf sleepmodus 
einstellen kann...

Achso ich arbeite mit dem myavr Workpad plus demo falls das interessant 
ist

von Darko D. (darlo)


Lesenswert?

Achso, ich soll die Hardware verraten? Ja warum habt ihr denn nicht 
gefragt. Ich kenne mich damit nicht so gut aus. Also es ist son 
programmiertool ca. 4 cm breit und 8 cm lang... und hat n usb anschluss!

von Darko D. (darlo)


Lesenswert?

und auf den quarz steht 8.000, das hab ich gerade gesehen (auf dem 
Programmiertool)

von Stefan F. (Gast)


Lesenswert?

Der Quarz des Programmieradapters spielt keine Rolle. Entscheident ist, 
ob dein Mikrocontroller an einen Quarz angeschlossen ist und wenn ja, 
welche Frequenz der hat.

von Darko D. (darlo)


Lesenswert?

nein, der uC ist nur mit spannungsversorung, einem Taster und 4 
Ausgängen angeschlossen. Mehr ist da nicht angelötet!

von Dietrich L. (dietrichl)


Lesenswert?

Darko Dragojevic schrieb:
> nein, der uC ist nur mit spannungsversorung, einem Taster und 4
> Ausgängen angeschlossen. Mehr ist da nicht angelötet!

Dann arbeitet er mit dem internen Oszillator.
Beim ATmega8 ist der Takt im Auslieferungszustand 1 MHz und kann über 
Fuses auf 2, 4 oder 8 MHz umgeschaltet werden.

Gruß Dietrich

von Darko D. (darlo)


Lesenswert?

Also ich habe da nichts dran rumgestellt. Wenn ihr das so sagt, dann 
wird das so sein. also verbraucht er mit 1 Mhz ca. 11 mA (wurde mit 2 
verschiedenen Digital Multimetern gemessen) und dann mit 8 Mhz knapp 100 
mA? Im Datenblatt sind aber deutlich niedrigere werte als 11 mA 
angegeben?

Ok wenn das nicht geht, dann sagt mir doch bitte wie ich den sleep modus 
aktiviere, dann mach ich das so

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


Lesenswert?

Darko Dragojevic schrieb:
> Also ich ändere die Taktfrequenz hier:
>
> #define   F_CPU 3686400  // Taktfrequenz des myAVR-Boards
> ....
>
> in der ersten Quellcodezeile
>
> daneben steht auch die taktfrequenz... als kommentar

DU BIST EIN HELD ... NOT

Du änderst dann sicher auch die Motorleistung deines Autos, indem du den 
Wert in der Zulassung änderst.

von Dietrich L. (dietrichl)


Lesenswert?

Darko Dragojevic schrieb:
> (wurde mit 2 verschiedenen Digital Multimetern gemessen)

Nur so mal als Idee: hattest Du beim Messen hinter dem Multimeter 
(also direkt am µC) einen Stützkondensator?
Vielleicht spinnt der µC ja, wenn Du ihn über das Multimeter ohne 
Kondensator versorgst. Denn ein Multimeter hat einen Innenwiderstand, 
sodass die Spannung am µC einbricht bei den Stromspitzen, die ein µC 
beim Arbeiten erzeugt.

Gruß Dietrich

von Darko D. (darlo)


Lesenswert?

Hallo. Sorry, dass ich an der falschen stelle die Taktfrequenz zu ändern 
versuchte. Ich wusste es nicht besser!!!! Meine Multimeter haben einen 
Innenwiderstand, die sicherlich im Gigaohmbereich liegen, und die die 
Messungen im mA Bereich sicher gut durchführen können, ohne das die 
Spannung einbricht. Aber Schwamm nun drüber.

Könnt ihr mir denn wenigesten sagen, wieso bis zu 23 IO Ports am Atmega 
8 zur Verfügung stehen können. (laut datenblatt. Ich habe nur 5, brauche 
noch 4, weil ich 4 Endschalter nachrüste, und habe keinen mehr frei. Ich 
benutze

Port B0
Port B1
Port B2
Port B6
und Port B7

Port B3 bis B5 sind für den Programmieradapter.

Wo finde ich die restlichen 15 IO Ports?

Ich hoffe das könnt ihr mir sagen. Danke!

von Peter II (Gast)


Lesenswert?

Darko Dragojevic schrieb:
> Könnt ihr mir denn wenigesten sagen, wieso bis zu 23 IO Ports am Atmega
> 8 zur Verfügung stehen können. (laut datenblatt. Ich habe nur 5, brauche
> noch 4, weil ich 4 Endschalter nachrüste, und habe keinen mehr frei

was ist denn mit C0 - C7 oder D0 - D7 ?

von (prx) A. K. (prx)


Lesenswert?

Darko Dragojevic schrieb:
> Achso, ich soll die Hardware verraten? Ja warum habt ihr denn nicht
> gefragt. Ich kenne mich damit nicht so gut aus. Also es ist son
> programmiertool ca. 4 cm breit und 8 cm lang... und hat n usb anschluss!

Also wenn du nicht angemeldet wärst hätte ich bei dieser Antwort glatt 
auf Heiner getippt. :-(

von Darko D. (darlo)


Lesenswert?

Hallo. Ich habe mich auch mit der 250 Seiten langen beschreibung des AT 
mega auseinandergesetzt. Dort stand drin, dass man die Ports C0 bis C5 
nur als ausgang definieren kann. Ich hatte aber überlesen, dass das die 
alternate functions, also die Zusatzfunktionen.

Ok, sollte das klappen, dass man c0 bis c3 als eingang definieren kann, 
dann hat das n Ende genommen, mit der hohen stromaufnahme, denn mit 
einem endschalter weiß die Kiste wo der motor steht und dann kann der at 
mega Spannungslos geschaltet werden und dann ist der Stromverbrauch


N U L L    K O M M A    N U L L !!!!


:-)


überlistet :-)

 PS: C7 gibt es nicht :-)

von Darko D. (darlo)


Lesenswert?

Hallo nochmal.

Wer ist denn Heiner ?

Darko

von (prx) A. K. (prx)


Lesenswert?

Der Oberforentroll.

von Achim K. (aks)


Lesenswert?

Darko Dragojevic schrieb:
> Also ich habe da nichts dran rumgestellt. Wenn ihr das so sagt, dann
> wird das so sein. also verbraucht er mit 1 Mhz ca. 11 mA (wurde mit 2
> verschiedenen Digital Multimetern gemessen) und dann mit 8 Mhz knapp 100
> mA? Im Datenblatt sind aber deutlich niedrigere werte als 11 mA
> angegeben?
>

Auch wenn ich mir fast sicher bin, dass das auf taube Ohre stößt:

Wenn man sich bei der Taktfrequenz und bei den Ports so anstellts, wie 
hier im Thread aufgezeigt, dann solltest man nicht behaupten, dass Atmel 
falsche Daten liefert. Du wirst, wenn Du richtig suchst, schon noch 
rausfinden, wie schnell der MCU läuft und welchen Stromverbrauch er 
wirklich hat. Und das wird dann zum Datenblatt passen.
Falls Du es nicht rausfindest, dann poste Deinen ganzen Schaltplan und 
nicht nur sinnfreie "Prosa".

von ich (Gast)


Lesenswert?

Hi,
Mach bitte ein Bild vom Aufbau und einen Schaltplan ein. Sonst wird dir 
hier keiner mehr helfen.
MfG
ich

von Darko D. (darlo)


Lesenswert?

Hallo. Ich behaupte nicht, dass die Pläne von Atmel falsch sind, ich 
habe lediglich behauptet, irgendwo was anderes gelesen zu haben. Mit 
einer sehr hohen Wahrscheinlichkeit, habe ich irgendwelche Informationen 
nicht gekannt oder falsch gelesen. Ich werde nun einen Schaltplan 
aufmalen und ihn hochladen.

Gruß Darko

von Darko D. (darlo)


Angehängte Dateien:

Lesenswert?

Hier der Schaltplan

von Marvin (Gast)


Lesenswert?

Hi,

Bin ich denn der einzige hier, der sich unter anderem wundert über 
"Multimeter, Strom messen, Innenwiderstand Gigaohm" ?

Ein einfaches Multimeter hat so 10 Megaohm (lt. Wiki) beim 
Spannungsmessen...nicht Gigaohm. Beim Strom messen sollte der 
Innnenwiderstand alerdings etwas kleiner ausfallen...

Darko hat offensichtlich recht wenig Ahnung von allem.
Eine Fehlmessung ist somit auch nicht ausgeschlossen.

Gruß
Marvin

von Darko D. (darlo)


Lesenswert?

Ihr könnt ja alles bekommen. Ich kann für meine nicht so hohe Kompetenz 
nichts. wenn ich alles besser wüsste als ihr zusammen, würde ich mich 
hier im Forum wohl kaum anmelden.
Und wenn ich meine Platine nicht besser beschreiben kann als 4 mal 8 cm, 
dann mach ich das nicht um hier zu chatten oder um euch zu ärgern.
Ich habe wirklich sinnvolleres noch zu tun und möchte dieses Projekt 
endlich zu ende bekommen. ich bin mir ganz sicher, wenn an meiner 
Platine ein profi was rumprogrammieren würde, würde das innerhalb von 
ganz wenigen Minuten fertig sein.
Und wenn ihr mich fragen würdet, welches Werkzeug man für den 
Bremsenwechsel eines Mercedes e klasse braucht, dann würde ich auch 
nicht irgendwelche Links schicken, in denen man erarbeiten kann welches 
Werkzeug grundsätzlich in Frage kommt und welches nicht.
Meine antwort würde beispielsweise Lauten:

-13er Maulschlüssel,
- hammer,
- 6er Imbus und
Knarre 19 MM mit Verlängerung

Und auf meine Frage wie man einen Eingang definiert bei dem atmega 8 
hätte ich eig. erwartet, soetwas wie beispielsweise:

PORTB AD001111001 = true

und nicht irgendwelche links...

Naja hoffentlich ist das bald fertig mit der Kiste

von Marvin (Gast)


Lesenswert?

Hi,

Aber den 10pol. Stecker ziehst Du schon ab, wenn Du den Strom mißt ?

Gruß

von Darko D. (darlo)


Lesenswert?

Hallo. Danke für die Antwort. Ja selbstverständlich habe ich nicht viel 
Ahnung von der Materie. ich bin ja auch KFZ ler. Auf der anderen Seite 
habe ich mehr ahnung über uC als viele anderen, weil die noch nicht mal 
wissen was das überhaupt ist ein uC. Insofern bin ich ja nicht ganz 
dumm, auch wenn ihr das bestimmt anders seht...

von Darko D. (darlo)


Lesenswert?

Ja sicher zieh ich den 10 Poligen programmieradapter ab

von Marvin (Gast)


Lesenswert?

Hi Darko,

Es ist nun mal so, dass es gute Tutorials gibt. Und wenn man merkt, Du 
hast diese Tutorials nicht gelesen wird der Ton gerne mal schroff.

Das Datenblatt eines uC ist eins Deiner Werkzeuge. Dieses gilt es, zu 
verstehen. Das ist nicht so einfach wie ein Maulschlüssel, aber 
notwendig.

Dein zweites Werkzeug ist deine Entwicklungsumgebung.

Deine Fehler bisher zeigen auf, dass Du wenig Ahnung hast. Unter 
anderem:
* Taktrate Deines uC einstellen
* Systembeschreibung (x x y cm)
* Wie Strom gemessen wird

Das sind Grundsatzprobleme, für die das Forum hier eher ungeeignet ist.
Wenn Du ein echtes Problem hast, wird Dir gerne geholfen.

Gruß Marv

von Marvin (Gast)


Lesenswert?

Hi nochmal,

Zum Strom messen:
Was für ein Strommessgerät benutzt Du und wie ist es eingestellt ?

Ein Multimeter im 1A AC Messbereich wird Dir nicht viel anzeigen.
Im 100mA DC Bereich schon eher...

Gruß Marv

von Marvin (Gast)


Lesenswert?

Und:

Auf den Abblock-C bist Du bisher nicht eingegangen und ist auch nicht im 
Schaltplan eingezeichnet...

Also 100nF und vielleicht auch 10uF parallel an die Versorgungspinne...

Und was ist eigentlich Deine Versorgung (ja, klar +5V, aber woher ?) ?

Gruß

von Darko D. (darlo)


Lesenswert?

Ja ok, dann nehme ich das so hin, dass ich einfach zu wenig Ahnung habe 
um hier überhaupt mitzureden. Dann nutzt mir dieses Forum leider nicht 
viel. Ich dachte eigentlich, dass ich im vergleich zu anderen Mitbürgern 
sehr viel weiß im bereich der uC.

Ich benutze ein Digital Multimeter ALCRON DT 60 und stelle auf den 
Messbereich 20 mA ein DC natürlich und nicht AC. Wir haben ja keinen 
Wechselstrom

Gruß

von Darko D. (darlo)


Lesenswert?

Die 5V bzw. 4,98 V kommen von einem LM 317T

ich möchte aber auch betonen, selbst wenn wir den Fehler finden würden, 
warum 11 mA angezeigt werden, nützt es mir wenig, weil ich es nicht 
hinbekommen würde, die taktrate oder das programm so zu umschreiben, 
dass es weniger strom frisst. Ich habe nun weitere 4 eingangsports C0 
bis C3 für die 4 Endlagenschalter vorgesehen, sodass ich nur IF 
schleifen verwenden kann im Hauptprorgamm.

Wenn ich dann die Zündung einschalte und der uC wieder mit Strom 
versorgt wird, weiß er anhand der Endlagenschalter bescheid was Sache 
ist.

Insofern danke ich euch trotzdem an einer Fehlersuche Interesse gehabt 
zu haben. Ich werde die Tage bestimmt noch mal mit konkreteren Fragen 
kommen.

Gruß Darko

von Marvin (Gast)


Lesenswert?

Das ist ja nicht böse gemeint, aber wenn ich Dich jetzt bitten würde, 
die Fuses auszulesen, könntest Du das ?

Das ist das Handwerkszeug. Man erwartet, dass Du weißt, was Fuses sind 
und wie Du diese ausließt und einstellen kannst.

Wenn Du es kannst, mach es und stelle fest, wie Dein uC getaktet ist.
intern / extern ?

Wenn intern, welche Frequenz ?

Wenn extern, welcher Quarz ?


Schreibe ein kleines Programm, was eine LED im 1s Takt toggelt.
Stimmt die Sekunde ?

Ja, alles toll.
Nein, F_CPU an Deine Taktfrequenz anpassen.


Gruß

von Darko D. (darlo)


Lesenswert?

Und außerdem hat dieses Messgerät neben dem Messbereich 20mA noch den 
Messbereich 2 mA und dadrüber noch den Messbereich 200uA und dadrüber 
auch noch den bereich bis 20uA (maximal) und wenn in diesem letzten 
Bereich eine ganz ungenaue Messung stattfindet, dann ok aber nicht 
mittendrin. 20 mA sind ja ein ganz normal hoher messbarer Strom für das 
Messgerät...

von Darko D. (darlo)


Lesenswert?

Hallo. Das tut mir leid, ich weiß nicht wie man die Fuses ausließt und 
wie man die umstellt. Das habe ich noch nie gemacht. Sorry!
Und ich weiß auch nicht genau was diese Fuses sind... Sorry

von Marvin (Gast)


Lesenswert?

Hi nochmal,

B3 wird nicht benutzt, ist aber beschaltet ?
Miss mal B3, ob der High ist.

Gruß

von Darko D. (darlo)


Lesenswert?

Hallo nochmal. Es ist nett, dass ihr so engagiert seid. Mich haben diese 
11mA sehr viel zeit, nerven und Mühe gekostet und ich habe erfahren dass 
ich in dem Bereich uC dumm bin. ich schreibe nun das Programm so um, 
dass wenn ich den uC spannungslos mache, die Sache immernoch einwandfrei 
funktioniert. Ich möchte mich nun einfach nicht mehr nicht melden, da 
das unfair wäre, aber ich möchte jetzt nicht noch mehr Zeit in diese 11 
mA reinstecken...

bis bald bestimmt!

von michael_ (Gast)


Lesenswert?

Also im Datenblatt sind 3,6mA bei 4MHz und 3V angegeben.
Bei 5V und 8 MHZ kann es schon 11mA ergeben.
http://www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_summary.pdf

von Thomas (kosmos)


Angehängte Dateien:

Lesenswert?

Hallo Darko,

kannst du mal beschreiben was du vorhast. So wie ich das bisher 
verstanden habe möchtest du einen µC in ein KFZ einbauen und dort sollen 
4 Endschalter abgefragt werden (Verdecksteuerung?) und es geht dir um 
einen niedrigen Verbrauch damit deine Batterie nicht leer gezogen wird.

Ist es wirklich erforderlich das der µC läuft wenn das Auto abgestellt 
ist. Du könntest nämlich das ganze über die Zündung steueren. Zündung 
aus = AVR aus.

Weiterhin benötigst du im KFZ-Bereich einige Sachen zur Entstörung ein 
LM7805 oder LM317 ohne diese Maßnahmen wird es in dieser Umgebung nicht 
lange mitmachen.

Ein stromgesteuerter Transistor ist verbrauchstechnisch auch nicht 
umbedingt das beste, hier würde ich einen FET nehmen der wird durch eine 
Spannung geregelt und es fließt nur im Umlademoment ein Strom.

Beschreibe dein Projekt mal etwas näher.

Hier kannst du erstmal die ersten Schritte 
gehen.https://www.mikrocontroller.net/articles/AVR-Tutorial#Aufbau_des_Tutorials

Mittels der Fuses stellst du Dinge wie Taktfrequenz, Taktquelle, 
Startverzögerung usw. ein. Anbei ein paar Bilder aus dem AVR-Studio dort 
muss man nur entsprechend anklicken, bei anderen Programmen muss du dir 
die Bits evtl. erst zusammenwürfeln und invertrieren.

von Stefan F. (Gast)


Lesenswert?

Darf ich daran erinnern, was ich ganz Anfang schon geschrieben hatte? :

> Vielleicht hat er einige I/O Pins unbeschaltet gelassen und nichtmal
> Pull-Up's eingeschaltet. Das erhöht die Stromaufnahme ein wenig.

Der Schaltplan zeigt, dass die meisten I/O Pins unbeschaltet sind. Also 
prüfe endlich, wie diese Pins per Software konfiguriert sind! Denn genau 
das könnte dein Fehler sein.

Ich habe das schon bewusst so geschrieben, denn Deine Frage wurde hier 
schon öfters gestellt und die Ursache war fast immer genau diese. Das 
ist ein typischer Anfängerfehler : CMOS Eingänge offen lassen.

von Thomas (kosmos)


Lesenswert?

>> Vielleicht hat er einige I/O Pins unbeschaltet gelassen und nichtmal
>> Pull-Up's eingeschaltet. Das erhöht die Stromaufnahme ein wenig.

Bitte um eine kurze Erklärung. Eingänge sind eigentlich hochohmig, so 
das hier kaum Strom fließt und wenn keine Spannung anliegt erst recht 
nicht. Wenn man jetzt die Pullups aktiviert oder aktiviert läßt sind die 
Chancen von Verlusten schon mal enorm gestiegen. Es kann dann nicht nur 
ein Strom in den Eingang hin einfließen (ca. 1µA) sondern auch vom Pin 
in die externe Beschaltung (bei 20-100 kOhm internen Pullups) kann das 
bei mehreren Pins schon zu ein paar mA führen.

Wenn ich einen Eingang benötige, dann spielt es doch keine Rolle ob er 
umbeschaltet ist und rumflattert. Es erhöht höchstens die 
Störempfindlichkeit der Schaltung deswegen wäre ein externer Pulldown 
die bessere(stromsparende) Wahl

Es gibt im Datenblatt ein paar Angaben dazu
I/O Pin Pull-up Resistor Current vs. Input Voltage
Input Leakage Current I/O Pin
I/O Pin Pull-up Resistor

von Dietrich L. (dietrichl)


Lesenswert?

Thomas O. schrieb:
> Wenn ich einen Eingang benötige, dann spielt es doch keine Rolle ob er
> umbeschaltet ist und rumflattert.

Doch, es spielt eine Rolle: Eine CMOS-Stufe hat einen Querstrom durch 
beide FETs, wenn die Gatespannungen sich im analogen Bereich befindet: 
beide FETs sind noch etwas angesteuert.
Schaltung einer CMOS-Stufe: 
http://de.wikipedia.org/wiki/Complementary_metal-oxide-semiconductor#Technik

Gruß Dietrich

von (prx) A. K. (prx)


Lesenswert?

Thomas O. schrieb:
> ein Strom in den Eingang hin einfließen (ca. 1µA)

Das ist der Grenzwert im Datasheet. Der tatsächliche Wert ist 
vernachlässigbar.

> Wenn ich einen Eingang benötige, dann spielt es doch keine Rolle ob er
> umbeschaltet ist und rumflattert.

Du vergisst den Querstrom der beiden MOSFETs der Eingangsstufe. Der ist 
bei einer Eingangsspannung in halber Höhe im Maximum.

von Thomas (kosmos)


Lesenswert?

sorry es sollte heisen "wenn ich einen Eingang nicht benötige"

und in welchen Bereich liegen diese Querströme im Vergleich zu den 1µA 
Verluststrom des Pullups

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.