Hallo zusammen, Habe einen Mega 2560 erfolgreich in Betrieb gesetzt. Er steuert ca. 50 Ausgänge und misst an den ADCs (über Spannungsteiler) richtige Spannungen (nachgemessen mit Multimeter) und nimmt Interrupts an Eingängen richtig entgegen. Allerdings saugen einige Eingänge über 1 kOhm Widerstände einen 5mA Strom bei angelegten HIGH Potential - funktionieren also nicht (Port D: PD5,PD6 und PD7). Ebenso saugen 4 ADC Kanäle messbaren Strom von 5 mA (was ja wohl auch nicht sein darf - aber sie funtionieren dennoch ordnungsgemäß, Messergebnisse stimmen). Der PORT D ist als AUSGANG ebenfalls voll funktionsfähig! Gesetzte oder nicht gesetzte PULL-UPs machen bei der Fehlfunktion EINGANG an den PINs von PORT D keinen Unterschied. Hat jemand eine Idee, was da los ist ? Was mache ich falsch ? Wie könnte es zu solch einem Defekt gekommen sein ? Eine Fehlbeschaltung kann es ja wohl kaum sein, dann wären ja wohl eher die Treiber der Ausgänge defekt. Die funktionieren aber gerade tadellos. Die Eingänge hingegen sind ja hochohmig. Da kann man sich ja wohl kaum verschalten - oder ? Dank im voraus!
Hmm, Schaltplan? Eventuell sind die Eingänge fälschlicherweise als Ausgang geschaltet. Alternativ kann es auch sein, dass sich die Eingänge in irgendeinem Latchup Zustand befinden. Oder du gibst zu viel Spannung auf die Eingänge, sodass Strom über die Clamp Dioden fließt.
Simon K. schrieb: > Hmm, Schaltplan? > > Eventuell sind die Eingänge fälschlicherweise als Ausgang geschaltet. Definitiv nicht! Gegenprobe wurde gemacht - als Ausgänge funktionieren sie ja. > Alternativ kann es auch sein, dass sich die Eingänge in irgendeinem > Latchup Zustand befinden. Bedeutet also, dass bei der Inbetriebnahme fehlerhafte Spannungsversorgungen im Spiel waren ? > Oder du gibst zu viel Spannung auf die Eingänge, sodass Strom über die > Clamp Dioden fließt. Zu hohe Spannungen würde ich eher ausschließen. Ausserdem habe ich an den digitalen Eingängen 1kOhm Widerstände vorgeschaltet. Elektrostatische Effekte können natürlich immer die Ursache sein. Allerdings scheinen mir die AVRs doch eher robust zu sein - oder ? Grüße
Hatte mal bei einem Schaltregler ein ähnliches Problem, da wurde durch induktive Effekte trotz Schutzbeschaltung scheinbar der ADC oder die Clamp-Diode in Mitleidenschaft gezogen. Anschließen sind auf diesen ADC-Kanälen auch ziemlich hohe Ströme geflossen obwohl der ADC selbst noch ging. Grüße Mani
Zu obigen Posts direkt noch eine Verstehensfrage: Der MC hat ja mehrere VCC und GND Anschlüsse (5 Paare ?). Sind diese ALLE (unabhängig von den Lasten) an GND und VCC AUSSEN zu beschalten, oder können einige offen bleiben (100nF schon angelegt!)? Sie sind doch untereinander im Chip alle verbunden. Warum designen die Chiphersteller soviele VCC/Gnd Anschlüsse ? Danke im voraus
Hendrik L. schrieb: > Allerdings saugen einige Eingänge über 1 kOhm Widerstände einen 5mA > Strom bei angelegten HIGH Potential Dann hast Du sie als Ausgang konfiguriert. Halte mal Reset auf low, dann müssen sie hochohmig sein. Peter
Hi >Sind diese ALLE (unabhängig von den Lasten) an GND und VCC AUSSEN zu >beschalten, Grundsätzlich alle. Wohl kein Datenblatt gelesen? Oder wie kommt es zu dieser Frage? >Sie sind doch untereinander im Chip alle verbunden. Warum designen die >Chiphersteller soviele VCC/Gnd Anschlüsse ? Weil ein Bonddraht vom Pin zum Chip nur einen begrenzten Strom zulässt. MfG Spess
Hendrik L. schrieb: > Zu obigen Posts direkt noch eine Verstehensfrage: > > Der MC hat ja mehrere VCC und GND Anschlüsse (5 Paare ?). > > Sind diese ALLE (unabhängig von den Lasten) an GND und VCC AUSSEN zu > beschalten, oder können einige offen bleiben (100nF schon angelegt!)? Nein, sind alle zu beschalten. > Sie sind doch untereinander im Chip alle verbunden. Nicht zwangsweise, teilweise ist das so, aber man kann sich nicht darauf verlassen. Es kommt durchaus vor das sie jeweils andere Funktionseinheiten versorgen. > Warum designen die > Chiphersteller soviele VCC/Gnd Anschlüsse ? Für die induktivitätsarme Anbindung. > > Danke im voraus
Hendrik L. schrieb: > Sind diese ALLE (unabhängig von den Lasten) an GND und VCC AUSSEN zu > beschalten, oder können einige offen bleiben (100nF schon angelegt!)? Ja alle! Und jedes VCC/GND-Pärchen kriegt auch seine eigene 100nF Pille! Hendrik L. schrieb: > Sie sind doch untereinander im Chip alle verbunden. Warum designen die > Chiphersteller soviele VCC/Gnd Anschlüsse ? Jeder Anschluß hat eine Induktivität und einen Widerstand. Je mehr IO-Pins ein IC hat, umso mehr VCC/GND Pins gibt es, um die Umladeströme aufzunehmen. Peter
Peter Dannegger schrieb: > Hendrik L. schrieb: >> Allerdings saugen einige Eingänge über 1 kOhm Widerstände einen 5mA >> Strom bei angelegten HIGH Potential > > Dann hast Du sie als Ausgang konfiguriert. > Halte mal Reset auf low, dann müssen sie hochohmig sein. Werde ich mal checken. Reset auf LOW, bedeutet das, der MC darf gar keinen Strom mehr in diesem Moment ziehen ? > > > Peter Sorry, Peter, habe großen Respekt vor Deiner Person - aber sei versichert, habe sie im Problemfall definitiv NICHT als Ausgang konfiguriert! Mehrmals gecheckt!!! In der Gegenprobe habe ich sie dann als Ausgang konfiguriert, und da haben sie auch einwandfrei als Ausgang geschaltet. Definitiv habe ich das Problem nur, wenn die PINs als EINGANG gesetzt wurden. Kann aber nicht ausschliessen, dass sie in der AUSGANGS-Beschaltung nicht auch diese 5mA verbrauchen. Das habe ich nicht gecheckt! Stromverbrauch des Mega geht an die 65 mA ... das dürfte wohl zu viel sein. Er wird auch leicht warm (25°) - dürfte doch auch nicht sein - oder ? Die LatchUp Theorie könnte eine Erklärung sein (nachdem was ich in wikipedia dazu gelesen habe). Grüße
Hendrik L. schrieb: > Sorry, Peter, habe großen Respekt vor Deiner Person - aber sei > versichert, habe sie im Problemfall definitiv NICHT als Ausgang > konfiguriert! Mehrmals gecheckt!!! Solche absoluten Aussagen in Bezug auf einen möglichen Softwarefehler sind in der Regel sehr gewagt. Du hast also wirklich jede nur denkbare Möglichkeit gecheckt? Z.B. auch ein Verändern von DDRD über einen Amok laufenden Pointer? Hendrik L. schrieb: >> Eventuell sind die Eingänge fälschlicherweise als Ausgang geschaltet. > > Definitiv nicht! Gegenprobe wurde gemacht - als Ausgänge funktionieren > sie ja. Und inwiefern soll ein "als Ausgänge funktionieren sie ja" einen Softwarefehler ausschließen, der die Pins zu Ausgängen macht?
Hendrik L. schrieb: > Sorry, Peter, habe großen Respekt vor Deiner Person - aber sei > versichert, habe sie im Problemfall definitiv NICHT als Ausgang > konfiguriert! Mehrmals gecheckt!!! In Software ist alles möglich. Wieviel Zeilen hat Dein gesamtes Programm? Oder Du hast sie gekillt. Das passiert, wenn keine VCC anliegt, aber der Eingang niederohmig Spannung kriegt. Wenn nicht garantiert werden kann, daß VCC immer als erstes und zuletzt anliegt, dann Schutzwiderstände (10k) in Reihe. 65mA sollte zuviel sein. Peter
Wie ich schon sagte - ALLE Pins sind mit 1kOhm Widerständen beschaltet worden (ausser den ADCs). Und ALLE Ausgänge funktionieren tadellos! Andere Eingänge ebenfalls. Nur eben die ADCs und die PD5,PD6, und PD7 nicht. Selbst wenn ich die Pointertheorie weiter verfolge, dann hätte ich ja wohl eher die Ausgangstreiber überlastet ...! Grüße
Peter Dannegger schrieb: > Hendrik L. schrieb: >> Sorry, Peter, habe großen Respekt vor Deiner Person - aber sei >> versichert, habe sie im Problemfall definitiv NICHT als Ausgang >> konfiguriert! Mehrmals gecheckt!!! > > In Software ist alles möglich. > Wieviel Zeilen hat Dein gesamtes Programm? 25 KB! Kann man also nie ausschliessen, da gebe ich Dir recht. > > Oder Du hast sie gekillt. Das passiert, wenn keine VCC anliegt, aber der > Eingang niederohmig Spannung kriegt. > Wenn nicht garantiert werden kann, daß VCC immer als erstes und zuletzt > anliegt, dann Schutzwiderstände (10k) in Reihe. Du beziehst Dich auf die E/As - oder ? > > 65mA sollte zuviel sein. > > > Peter
Peter Dannegger schrieb: ... > > > Oder Du hast sie gekillt. Das passiert, wenn keine VCC anliegt, aber der > Eingang niederohmig Spannung kriegt. Wann sind die Eingänge denn niederohmig (wenn kein VCC anliegt!). Ich dachte, ausgeschaltet sind die PINs hochohmig (ist doch TriState Technologie ... ?) > > > Peter
Sorry, aber ich kann deiner Argumentation echt nicht folgen. > Und ALLE Ausgänge funktionieren tadellos! Und nochmal: was soll das mit einem möglichen Softwarefehler zu tun haben? Wo GENAU siehst du darin ein Ausschlusskriterium? > Selbst wenn ich die Pointertheorie weiter verfolge, dann hätte ich ja > wohl eher die Ausgangstreiber überlastet ...! Warum sollte ein Softwarefehler die Ausgangstreiber überlasten? Du sagst doch, dass überall 1k-Widerstände dranhängen.
> Wie ich schon sagte - ALLE Pins sind mit 1kOhm Widerständen beschaltet > worden > Allerdings saugen einige Eingänge über 1 kOhm Widerstände einen 5mA > Strom bei angelegten HIGH Potential 'saugen', bei HIGH, wie darf man das verstehen ? 5mA +5V--1k-->>>---|Pin Heisst doch, daß an dem Pin quasi 0V anliegen, sonst könntehn keine 5mA fliessen. > Ebenso saugen 4 ADC Kanäle messbaren Strom von 5 mA > (was ja wohl auch nicht sein darf - aber sie funtionieren dennoch > ordnungsgemäß, Messergebnisse stimmen). Wie bekommst du da eine Spannung über 0V an die Eingänge ? Rätsel über Rätsel. > Mega 2560 PD5,PD6 und PD7 Sind dreifach belegt mit (XCK1) PD5 XA0 (T1) PD6 XA1 (T0) PD7 PAGEL gerade T0, T1, XA0, XA1 sind ja eher unkritisch.
Stefan Ernst schrieb: > Sorry, aber ich kann deiner Argumentation echt nicht folgen. > >> Und ALLE Ausgänge funktionieren tadellos! > > Und nochmal: was soll das mit einem möglichen Softwarefehler zu tun > haben? Wo GENAU siehst du darin ein Ausschlusskriterium? > >> Selbst wenn ich die Pointertheorie weiter verfolge, dann hätte ich ja >> wohl eher die Ausgangstreiber überlastet ...! > > Warum sollte ein Softwarefehler die Ausgangstreiber überlasten? Du sagst > doch, dass überall 1k-Widerstände dranhängen. NaJa - offensichtlich sind doch Strukturen zerstört, bei 5mA Stromverbrauch. Die 1 kOhm Schutzwiderstände haben ja nicht geholfen! Wie solle denn ein hochohmiger Eingang durch Überlastung defekt werden ? Doch nur durch zu hoch angelegte Spannung - oder ? Ein umherirrender Pointer aud DDRs wird doch keine Strukturen zerstören! Wenn also ein umherirrender Pointer der Fall ist, dann zerstört er doch Strukturen in dem Fall, wenn der PIN niederohmig geschaltet wird (also als AUSGANG) und dann folglich zu hohe Ströme fließen (entweder pro PIN oder in Summe aller PINs) - oder was verstehe ich jetzt nicht ? Grüße
test doch mal ob auch der Strom fießt wenn die µC im Reset zustand ist - wenn es dann noch 5mA sind ist der µC defekt. Wenn nicht wird es wohl doch ein software Fehler sein.
Hendrik L. schrieb: > NaJa - offensichtlich sind doch Strukturen zerstört, bei 5mA > Stromverbrauch. Nein, genau das ist eben nicht offensichtlich. Viel wahrscheinlicher ist eben, dass die Pins durch einen Softwarefehler auf Ausgang-Low geschaltet sind. Denn dann hast du genau diese 5 mA über 1k nach High. Hendrik L. schrieb: > Ein umherirrender Pointer aud DDRs wird doch keine Strukturen zerstören! Nein, aber er kann die Pins von Eingang auf Ausgang umschalten.
MaWin schrieb: >> Wie ich schon sagte - ALLE Pins sind mit 1kOhm Widerständen beschaltet >> worden >> Allerdings saugen einige Eingänge über 1 kOhm Widerstände einen 5mA >> Strom bei angelegten HIGH Potential > > 'saugen', bei HIGH, wie darf man das verstehen ? > > 5mA > +5V--1k-->>>---|Pin > GENAU! > Heisst doch, daß an dem Pin quasi 0V anliegen, > sonst könntehn keine 5mA fliessen. > NEE - heist es nicht! siehe unten. >> Ebenso saugen 4 ADC Kanäle messbaren Strom von 5 mA >> (was ja wohl auch nicht sein darf - aber sie funtionieren dennoch >> ordnungsgemäß, Messergebnisse stimmen). > NEE - ich lege 5 Volt an den ADC (maximal), der ADC misst richtig (Maximalwert, da Referenz ist 5 Volt) und es fließen aber 5 mA ...! Warum soll das nicht so sein ? > Wie bekommst du da eine Spannung über 0V an die Eingänge ? > Bei den digitalen Eingängen fliessen die 5 Volt über die 1 kOhm Vorwiderstände - wie von Dir oben richtig gezeichnet. Ohne Vorwiderstände hätte ich wohl einen Kurzschluss am geschalteten Eingang - will ich aber nicht ausprobieren. > Rätsel über Rätsel. > >> Mega 2560 PD5,PD6 und PD7 > > Sind dreifach belegt mit > (XCK1) PD5 XA0 > (T1) PD6 XA1 > (T0) PD7 PAGEL > gerade T0, T1, XA0, XA1 sind ja eher unkritisch.
Hendrik L. schrieb: >> Heisst doch, daß an dem Pin quasi 0V anliegen, >> sonst könntehn keine 5mA fliessen. >> > NEE - heist es nicht! siehe unten. Doch, genau das heißt das. R = U/I gilt auch in µC-Schaltungen. (Da du nicht sagst, in welche Richtung der Strom fließt, könnten es höchsten alternativ noch 10V am Pin sein.)
Stefan Ernst schrieb: > Hendrik L. schrieb: >>> Heisst doch, daß an dem Pin quasi 0V anliegen, >>> sonst könntehn keine 5mA fliessen. >>> >> NEE - heist es nicht! siehe unten. > > Doch, genau das heißt das. R = U/I gilt auch in µC-Schaltungen. > (Da du nicht sagst, in welche Richtung der Strom fließt, könnten es > höchsten alternativ noch 10V am Pin sein.) Ich hatte doch 5 Volt als anliegende Spannung angegeben (und nicht MINUS 5 Volt) und auch nicht 10 Volt ...! Die Richtung muss ich dann dem Experten wohl kaum angeben ...! Aber in einem Punkt liege ich eventuell (vielleicht glücklicherweise) falsch: Bislang bin ich immer davon ausgegangen, dass Strukturen defekt sind. Habe noch nie getestet, ob sich der "Eingang" (ohne, dass ich DDDR auf AUASGANG gesetzt habe) nicht doch als Ausgang ansteuern lässt. Jetzt habe ich verstanden, was ihr mit dem vagabundierenden Pointer gemeint habt. Ein anderes Problem bleibt aber: Die ADCs haben keine Schutzwiderstände, da liegt volles 5 Volt Potential (als MAximum) an ... und dennoch erhöht sich der verbrauchte Strom am MC um ca. 5 mA pro geschalteten ADC PIN, sobald ich die Referenzspannungsbeschaltung vorgenommen habe und softwareseitig die ADCs definiert habe. Die Referenzbeschaltung habe ich nach diesem Vorbild http://www.mikrocontroller.net/wikifiles/9/9e/Adc_connection.png mit dem kleinen Unterschied, dass bei mir AREF (Leitung 21) auf stabilisierte 5 Volt VCC gezogen worden ist (Genauigkeit auf die letzte Stelle brauche ich nicht!) Was passiert eigentlich, wenn ich nun (irrtümlich) trotzdem eine interne Spannungsreferenz softwaremässig definiert hatte(kann ich in der Testphase nicht ausschliessen, ist aber momentan richtig eingestellt) ? Kann ich dann etwas zerstört haben ? Halten wir also fest, ich habe unter Umständen zwei Problemursachen! Danke im voraus!
Hendrik L. schrieb: > Die Referenzbeschaltung habe ich nach diesem Vorbild > > http://www.mikrocontroller.net/wikifiles/9/9e/Adc_connection.png > > mit dem kleinen Unterschied, dass bei mir AREF (Leitung 21) auf > stabilisierte 5 Volt VCC gezogen worden ist (Genauigkeit auf die letzte > Stelle brauche ich nicht!) > Du hast eine externe Referenzspannung eingestellt und fälschlicherweise auch noch die interne Referenz aktiviert. EDIT: Steht zwar schon in deinem Post, habe aber nicht bis dahin weitergelesen. Immerhin hast du ja auch noch keinen Schaltplan angegeben und streitest alle möglichen Ursachen sofort ab ;-)
Noch ein kleiner Nachtrag, da ich mit Spannnungsteilern arbeite, kann an den ADCs ein vagabundierender Pointer nicht die Ursache sein, dann würde ja keine korrekten Messwerte angezeigt. Die Spannung würde ja dann einbrechen. In disesem Punkt war ich zudem unklar: die 5 mA zusätzlicher Strom pro ADC PIN messe ich nich am ADC-Pin sondern am erhöhten Gesamtstromverbrauch des MCs. Die 5 mA ergeben sich nach Division durch Anzahl der ADC Pins. Danke für die Nachsicht! Grüße
Hendrik L. schrieb: > Ich hatte doch 5 Volt als anliegende Spannung angegeben (und nicht MINUS > 5 Volt) und auch nicht 10 Volt ...! Ja, und daraus ergibt sich bei 5mA über 1kOhm am anderen Ende des Widerstandes (also am Pin) ein Spannung von 0 oder 10V. Hendrik L. schrieb: > Die Richtung muss ich dann dem Experten wohl kaum angeben ...! Jetzt werde mal nicht pampig. Eigentlich müsstest du die Richtung mit angeben. Man kann hier nur deshalb eigentlich darauf verzichten, weil 0V am Pin SEHR viel wahrscheinlicher ist, als 10V, und man deshalb einfach mal von 0V ausgehen kann. Hendrik L. schrieb: > Bislang bin ich immer davon ausgegangen, dass Strukturen defekt sind. > Habe noch nie getestet, ob sich der "Eingang" (ohne, dass ich DDDR auf > AUASGANG gesetzt habe) nicht doch als Ausgang ansteuern lässt. Das ist Unsinn, wie sollte das gehen. > Jetzt > habe ich verstanden, was ihr mit dem vagabundierenden Pointer gemeint > habt. Nein, offensichtlich nicht. Es geht schlicht darum, ob die Pins irgendwo versehentlich (der Pointer war nur ein Beispiel) von "Eingang" auf "Ausgang" umgeschaltet werden.
Simon K. schrieb: > Hendrik L. schrieb: >> Die Referenzbeschaltung habe ich nach diesem Vorbild >> >> http://www.mikrocontroller.net/wikifiles/9/9e/Adc_connection.png >> >> mit dem kleinen Unterschied, dass bei mir AREF (Leitung 21) auf >> stabilisierte 5 Volt VCC gezogen worden ist (Genauigkeit auf die letzte >> Stelle brauche ich nicht!) >> > > Du hast eine externe Referenzspannung eingestellt und fälschlicherweise > auch noch die interne Referenz aktiviert. Meine Frage: Können dadurch Strukturen zerstört werden ? > > EDIT: Steht zwar schon in deinem Post, habe aber nicht bis dahin > weitergelesen. Immerhin hast du ja auch noch keinen Schaltplan angegeben > und streitest alle möglichen Ursachen sofort ab ;-) Also erst einmal habe ich viel gelernt. Bin kein studierter Digital-Elektroniker, insofern helfen mir Eure Antworten ungemein. Wenn ich Euer Wissen hätte - bräuchte ich die Fragen hier nicht zustellen !!! Danke für Eure geduldige Unterstützung. Ich weiß sie zu schätzen. Grüße
> und dennoch erhöht > sich der verbrauchte Strom am MC um ca. 5 mA pro geschalteten ADC PIN, > sobald ich die Referenzspannungsbeschaltung vorgenommen habe und > softwareseitig die ADCs definiert habe. Das ist doch was völlig anderes als "Ebenso saugen 4 ADC Kanäle messbaren Strom von 5 mA" Klär doch erst mal, was du wo misst.
Hendrik L. schrieb: > Habe noch nie getestet, ob sich der "Eingang" (ohne, dass ich DDDR auf > AUASGANG gesetzt habe) nicht doch als Ausgang ansteuern lässt. Jetzt > habe ich verstanden, was ihr mit dem vagabundierenden Pointer gemeint > habt. DDRX auf 0 (Input) und PORTX auf 1 schaltet die internen Pullups für die Eingänge ein. Servus Michael
> >> Jetzt >> habe ich verstanden, was ihr mit dem vagabundierenden Pointer gemeint >> habt. > > Nein, offensichtlich nicht. Es geht schlicht darum, ob die Pins irgendwo > versehentlich (der Pointer war nur ein Beispiel) von "Eingang" auf > "Ausgang" umgeschaltet werden. Pardon - doch! Ich habe nämlich das Programm auf eine versehentliche EXPLIZITE DDDR Umschaltung im gesamten Programm-Code systematisch gecheckt. Ist nicht der Fall. Findet bei mir in einer speziellen Routine für alle PINs uns PORTs zu Programmstart statt - die Sache bleibt also sehr übersichtlich. Port / PIN-Umschaltungen im Programmablauf können nur versteckte Software- Fehler sein. Kann also nur Peter's Vermutung zutreffen. Wie gesagt werde ich jetzt explizit testen, indem ich PD5, PD6 und PD7 mal direkt schalte, ohne am DDDR eine Initialisierung vorzunehmen. Das wäre zumindest eine Erklärung, die ich bevorzugen würde, weil sich solche Fehler finden lassen, Strukturen man aber wohl nicht reparieren kann. Beim ADC-Problem bin ich aber weniger optimistisch, da bleibt der Verdacht einer zerstörten Struktur erst einmal bestehen. Danke.
Michael M. schrieb: > Hendrik L. schrieb: >> Habe noch nie getestet, ob sich der "Eingang" (ohne, dass ich DDDR auf >> AUASGANG gesetzt habe) nicht doch als Ausgang ansteuern lässt. Jetzt >> habe ich verstanden, was ihr mit dem vagabundierenden Pointer gemeint >> habt. > > DDRX auf 0 (Input) und PORTX auf 1 schaltet die internen Pullups für die > Eingänge ein. > > Servus > Michael Danke für den Hinweis - ist mir klar. Aber die internen PullUps haben 10 kOhm (oder mehr ?), die 5 mA können darüberwohl nicht fließen. Eher sind die 1 kOhm Widerstände aussen bei 5 Volt das wahrscheinliche Indiz für die 5mA. Grüße
Hi >Beim ADC-Problem bin ich aber weniger optimistisch, da bleibt der Zu deinem Verständnis: Du hast keine 4 ADC-Kanäle gleichzeitig. Lediglich, der Eingang, der mit ADMUX ausgewählt ist, ist mit dem ADC verbunden. Der Rest sind simple Eingänge >Verdacht einer zerstörten Struktur erst einmal bestehen. So schnell gehen die AVRs nicht kaputt. MfG Spess
Hendrik L. schrieb: > Danke für den Hinweis - ist mir klar. Aber die internen PullUps haben 10 > kOhm (oder mehr ?), die 5 mA können darüberwohl nicht fließen. Eher sind > die 1 kOhm Widerstände aussen bei 5 Volt das wahrscheinliche Indiz für > die 5mA. Richtig, die internen Pullups sind laut Datenblatt 20 - 50 kOhm. Außerdem gibt es kein "Pulldowns". Ich würde einfach mal ein kleines Testprogramm in den Controller flashen, das NUR die Ports als Eingänge schaltet (egal ob Pullup an oder aus) und dann in einer Endlosschleife ohne Funktionalität endet. So bekommst Du Software- und Hardwarefehler unterschieden. Servus Michael
Hendrik L. schrieb: > Wie gesagt werde ich jetzt explizit testen, indem ich PD5, PD6 und PD7 > mal direkt schalte, ohne am DDDR eine Initialisierung vorzunehmen. Damit willst du also das hier > Habe noch nie getestet, ob sich der "Eingang" (ohne, dass ich DDDR auf > AUASGANG gesetzt habe) nicht doch als Ausgang ansteuern lässt. explizit testen? Das ist Unsinn, du schaltest damit nur die PullUps. Sturheit auf Basis von Halbwissen, gepaart mit der Weigerung Konkretes (Schaltplan, Software) herauszurücken => ich bin raus wegen Sinnlosigkeit.
Stefan Ernst schrieb: > Hendrik L. schrieb: >> Wie gesagt werde ich jetzt explizit testen, indem ich PD5, PD6 und PD7 >> mal direkt schalte, ohne am DDDR eine Initialisierung vorzunehmen. > > Damit willst du also das hier >> Habe noch nie getestet, ob sich der "Eingang" (ohne, dass ich DDDR auf >> AUASGANG gesetzt habe) nicht doch als Ausgang ansteuern lässt. > explizit testen? > Das ist Unsinn, du schaltest damit nur die PullUps. Das ist nicht richtig: Wenn ein vagabundierender Pointer (Idee von Peter) vorher den PIN als Ausgang definiert hat, dann schaltet er ....! Und genau das will ich ja bewiesen haben ! Dann lohnt es sich ja auch den Fehler softwareseitig einzukreisen. Danke!
@Hendrik: Systematische Fehlersuche ist das hier aber nicht. Schon mal ausprobiert, was passiert, wenn der Mikrocontroller komplett gelöscht wird etc. Und: Stefan Ernst schrieb: > Sturheit auf Basis von Halbwissen, gepaart mit der Weigerung Konkretes > (Schaltplan, Software) herauszurücken
Simon K. schrieb: > @Hendrik: Systematische Fehlersuche ist das hier aber nicht. Schon mal > ausprobiert, was passiert, wenn der Mikrocontroller komplett gelöscht > wird etc. Nein - aber ich bin dankbar für Eure Hinweise. Werde ich machen ... und berichten! Genau diese Hinweise habe ich gesucht! Ein Schaltplan macht aufwandsmässig keinen Sinn - an jedem Pin liegt ein Schutzwiderstand von 1 kOhm,danach ein ULN2803 oder zu messende Spannung über Spannungsteiler. Mehr nicht. Danke und Grüße
Hendrik L. schrieb: > Ein Schaltplan macht aufwandsmässig keinen Sinn Autsch. > - an jedem Pin liegt > ein Schutzwiderstand von 1 kOhm,danach ein ULN2803 oder zu messende > Spannung über Spannungsteiler. Mehr nicht. Zu einer funktionsfähigen Schaltung fehlt aber noch eine ganze Menge anderer Kram.
>mit dem kleinen Unterschied, dass bei mir AREF (Leitung 21) auf >stabilisierte 5 Volt VCC gezogen worden ist (Genauigkeit auf die letzte >Stelle brauche ich nicht!) Genau dass darfst du nicht machen! Bitte trenne diese 5V->Aref Verbindung, und wähle AVCC als Referenzspannung nur über ADMUX Register:REFS0 =1; REFS1=0. Und zeigt endlich dein Programm, zuminderst der Teil wo ADC initialisiert wird und wo zwischen ADC-Kanäle umgeschaltet wird.
Hendrik L. schrieb: > In disesem Punkt war ich zudem unklar: die 5 mA zusätzlicher Strom pro > ADC PIN messe ich nich am ADC-Pin sondern am erhöhten > Gesamtstromverbrauch des MCs. Die 5 mA ergeben sich nach Division durch > Anzahl der ADC Pins. Diese Messung ist eher nutzlos??
Maik Fox schrieb: > Hendrik L. schrieb: >> In disesem Punkt war ich zudem unklar: die 5 mA zusätzlicher Strom pro >> ADC PIN messe ich nich am ADC-Pin sondern am erhöhten >> Gesamtstromverbrauch des MCs. Die 5 mA ergeben sich nach Division durch >> Anzahl der ADC Pins. > > Diese Messung ist eher nutzlos?? Meine Erwartungshaltung ist, dass wenn ich ADC softwaremässig initialisiere, der Stromverbrauch am MC NICHT ansteigt!!!! Tut er aber - um 20 mA! Und das ist mit Sicherheit bedenklich! Anbei die Routine - dem hiesigen Forum entnommen: -------------------------------------------- uint16_t ReadChannel(uint8_t mux) { uint8_t i; uint16_t result; /* REFS1 REFS0 Referenzspanung 0 0 Externes AREF 0 1 AVCC als Referenz 1 0 Interne 1,26 Volt 1 1 Interne 2,56 Volt */ ADMUX = mux; // Kanal waehlen // ADMUX |= (1<<REFS1) | (1<<REFS0); // interne Referenzspannung nutzen // esterne Referenzspannung von VCC holen (Drahtbrücke) ADMUX ist dann mit Null initialisiert, Kanalwahl danach ADCSRA = (1<<ADEN) | (1<<ADPS2) |(1<<ADPS1) | (1<<ADPS0); // Frequenzvorteiler // setzen auf 128 (1) und ADC aktivieren (1) /* nach Aktivieren des ADC wird ein "Dummy-Readout" empfohlen, man liest also einen Wert und verwirft diesen, um den ADC "warmlaufen zu lassen" */ ADCSRA |= (1<<ADSC); // eine ADC-Wandlung while ( ADCSRA & (1<<ADSC) ) { ; // auf Abschluss der Konvertierung warten } result = ADCW; // ADCW muss einmal gelesen werden, // sonst wird Ergebnis der nächsten Wandlung // nicht übernommen. /* Eigentliche Messung - Mittelwert aus 4 aufeinanderfolgenden Wandlungen */ result = 0; for( i=0; i<4; i++ ) { ADCSRA |= (1<<ADSC); // eine Wandlung "single conversion" while ( ADCSRA & (1<<ADSC) ) { ; // auf Abschluss der Konvertierung warten } result += ADCW; // Wandlungsergebnisse aufaddieren } ADCSRA &= ~(1<<ADEN); // ADC deaktivieren (2) result /= 4; // Summe durch vier teilen = arithm. Mittelwert return result; } -------------- Die Messungen erfolgen mit "hoher" Fequenz (> 10 1/s) ! Grüße
Hallo, interessante Diskussion... 5mA über 1k von 5V sind 0V am anderen Ende, sonst müssen wir Herrn Ohm korrigieren... Das pin ist Ausgang und auf L. Wo das im Programm passiert und warum, ist Wurst. Schonmal Testprogramm raufgespielt, alles auf Eingang, alle PullUps an und dann gemessen? ADC misst richtig, aber irgendwas durch Anzahl Pins zieht 5mA? Nonsens. Wenn da 5mA am ADC-Pin rein oder raus fließen, mißt der nicht mehr richtig. Nie. Wieso auch irgendeinen Strom durch Anzahl Pins oder den Sonnenstand oder die Luftfeuchte dividieren? EIN Pin auf Ausgang und L UND niederohmig an GND sind mehr als 40mA! Zum Trost: läßt sich ein AVR ziemlich lange gefallen, bis sich da irgendwelche Strukturen umbauen... Vielleicht einfach etwas Systematik in die GEschichte bringen und eben mal schnell und geziehlt 2-3 eindeutige Tests compilieren und damit messen. Gruß aus Berlin Michael
Simon K. schrieb: > Hendrik L. schrieb: >> Ein Schaltplan macht aufwandsmässig keinen Sinn > Autsch. > >> - an jedem Pin liegt >> ein Schutzwiderstand von 1 kOhm,danach ein ULN2803 oder zu messende >> Spannung über Spannungsteiler. Mehr nicht. > > Zu einer funktionsfähigen Schaltung fehlt aber noch eine ganze Menge > anderer Kram. Korrekt. Das Programm werkelt aber seit Monaten klaglos unter allen Betriebszuständen, kein Reset, keine EMV-Störung (Einschalten von Neonlicht in umnittelbarer Näher etc.), korrekte Messwerte, alle Rückmeldungen über UARTS exakt, alle Debugging Meldungen exakt wie erwartet, alle Steuerungseingriffe über UART (vom PC aus) exakt .... alles wie erwartet - eben für meine Zwecke PERFEKT. Bislang gab es also für mich keinen Grund, etwas zu unternehmen. Der etwas erhöhte Stromverbrauch hat mich zwar anfangs gestört, aber es hat ja alles klaglos funktioniert. Ich nutze das Programm im HobbyBereich für eine Kirmessteuerung - also nicht lebenswichtiges. Mir sind die Abnormalitäten erst gestern aufgefallen, als ich eben die Ports PD5, PD6 und PD7 als Eingänge zuschalten wollte. Vorher waren diese Pins unbelegt. Grüße
Branko Golubovic schrieb: >>mit dem kleinen Unterschied, dass bei mir AREF (Leitung 21) auf >>stabilisierte 5 Volt VCC gezogen worden ist (Genauigkeit auf die letzte >>Stelle brauche ich nicht!) > > Genau dass darfst du nicht machen! Bitte trenne diese 5V->Aref > Verbindung, > und wähle AVCC als Referenzspannung nur über ADMUX Register:REFS0 =1; > REFS1=0. Aber dann verwende ich doch eine interne Referenz - oder nicht ? Ich will aber 5 Volt als externe Referenz nutzen. Grüße
Hendrik L. schrieb: > Maik Fox schrieb: >> Hendrik L. schrieb: >>> In disesem Punkt war ich zudem unklar: die 5 mA zusätzlicher Strom pro >>> ADC PIN messe ich nich am ADC-Pin sondern am erhöhten >>> Gesamtstromverbrauch des MCs. Die 5 mA ergeben sich nach Division durch >>> Anzahl der ADC Pins. >> >> Diese Messung ist eher nutzlos?? > > Meine Erwartungshaltung ist, dass wenn ich ADC softwaremässig > initialisiere, der Stromverbrauch am MC NICHT ansteigt!!!! Wenn der ADC aktiviert wird, verbraucht er Strom. Desto mehr, umso schneller er läuft. > Tut er aber - um 20 mA! Und das ist mit Sicherheit bedenklich! Habe leider gerade das Datenblatt zu deinem Chip nicht da. Aber so bedenklich muss das gar nicht sein.
HI >Aber dann verwende ich doch eine interne Referenz - oder nicht ? Ich >will aber 5 Volt als externe Referenz nutzen. Nein. Es wird AVCC, also deine 5V, verwendet. MfG Spess
Michael U. schrieb: > Hallo, > > interessante Diskussion... > > 5mA über 1k von 5V sind 0V am anderen Ende, sonst müssen wir Herrn Ohm > korrigieren... > Das pin ist Ausgang und auf L. Wo das im Programm passiert und warum, > ist Wurst. Mit Verlaub, Michael, wenn ich angebe, dass ich 5 Volt an einen PIN anlege, (über einen 1 kOhm Schutzwiderstand - was sollte der anderes schützen als diesen PIN, wenn ich keine weiteren Angaben mache) dann ist die Sache doch wohl klar! Ich weiss nicht, was da noch an Spannungspotentialen zu deuteln bleibt. Ob der PIN dann als Ausgang oder Eingang geschaltet ist (fälschlicherweise über fehlerhaften Software Code als AUSGANG, dann ist das Phänomen erklärbar) oder als EINGANG (wobei dann die 5 mA nicht mehr erklärbar sind, es sei denn interne Strukturen sind defekt) - das ist eben die Frage, die dank dieser Diskussion herausgearbeitet worden ist. Da müssen wir uns doch nun nicht wirklich nicht über die Spannungspotentiale vor oder nach dem Schutzwiderstand an dieser Stelle unterhalten. Das ist doch nur noch Polemik. Ich hoffe ja auch, dass die Pins IRRTÜMLICH per Software als Ausgang geschaltet werden. Das werde alsbald ich testen ... und berichten! Und ich würde mich noch mehr freuen, wenn bei einer Messfrequenz von > 10 [1/s] die 20 mA erklärbar werden. Dass die 5 mA nicht am einzelnen PIN abfallen können, hätte mich auch klar sein können, schliesslich sind ja Spannungsteiler vorgeschaltet ... und die Messwerte sind korrekt! Das wäre ja dann ein Widerspruch- daran hatte ich nicht gedacht. Leider habe ich diese Info schon mal vor Monaten im Forum zum ADC-Stromverbrauch gesucht ... aber im Forum zwar Fragen aber keine Antworten gefunden. Im Datenblatt steht meines Wissens auch nichts dazu. (Habe aber nur eine Search-Funktion nach ADC benutzt ... und nicht alle 400 Seiten im Detail gelesen!) Danke für Deine Unterstützung. Grüße
spess53 schrieb: > HI > >>Aber dann verwende ich doch eine interne Referenz - oder nicht ? Ich >>will aber 5 Volt als externe Referenz nutzen. > > Nein. Es wird AVCC, also deine 5V, verwendet. > > MfG Spess Nun ja - aber es es wird doch die AVCC im Chip abgenommen, während ansonsten bei einer externen Referenz die Spannung aussen an AREF angelegt wird (irgendwo zwischen 0 und 5 Volt). AVCC muss ja IMMER auf 5 Volt liegen - egal ob die externe oder interne Refrenz genommen wird. Warum also sollte meine Schaltung mit AREF an 5 Volt (aussen) nun nicht funktionieren, wenn REFS0 und REFS1 beide auf bit 0 gesetzt sind ? Ich möchte dazulernen - darum die Frage. /* REFS1 REFS0 Referenzspanung 0 0 Externes AREF 0 1 AVCC als Referenz 1 0 Interne 1,26 Volt 1 1 Interne 2,56 Volt */ Oder erklären sich dadurch die 20 mA ...? Grüße
Hi >Im Datenblatt steht meines Wissens auch nichts dazu. (Habe aber nur eine >Search-Funktion nach ADC benutzt ... und nicht alle 400 Seiten im Detail >gelesen!) Doch: 31.2.1 Supply Current of IO modules MfG Spess
Ist das denn wirklich so schwer, mal den Resetpin auf low zu legen, ob dann immer noch die 5mA in die Pins fließen ??? Wenn im Reset die Pins hochohmig sind, liegt der Fehler eindeutig in der Software. Peter
Peter Dannegger schrieb: > Ist das denn wirklich so schwer, mal den Resetpin auf low zu legen, ob > dann immer noch die 5mA in die Pins fließen ??? > > Wenn im Reset die Pins hochohmig sind, liegt der Fehler eindeutig in der > Software. > > > Peter Hallo Peter, werde ich machen, sobald die Versuchsanordnung in Reichweite ist ...! (heute Abend) Grüße
Hendrik L. schrieb: > Peter Dannegger schrieb: >> Ist das denn wirklich so schwer, mal den Resetpin auf low zu legen, ob >> dann immer noch die 5mA in die Pins fließen ??? >> >> Wenn im Reset die Pins hochohmig sind, liegt der Fehler eindeutig in der >> Software. >> >> >> Peter > > Hallo Peter, werde ich machen, sobald die Versuchsanordnung in > Reichweite ist ...! (heute Abend) > > Grüße Hallo zusammen, habe jetzt dreifach getestet, Ergebnisse: 1. Test: Wenn ich RESET auf LOW ziehe, dann fliessen weiterhin 5mA über den Schutzwiderstand auf das LOW-Level an PD6 ... leider! 2. Test: Wenn ich DDRD (PIN6) auf Eingang setze und dann PD6 dennoch als Ausgang auf HIGH ansteuere, tut sich nichts. Der Ausgang bleibt auf LOW. 3. Test: Wenn ich DDRD (PIN6) auf Ausgang setze und dann PD6 alternierend mit 1 und 0 setze, dann ändert sich am angelegten Oszilloskop der Pegel entsprechend auf HIGH und auf LOW. Resumee: Offensichtlich sind Strukturen in der Beschaltung als EINGANG defekt, Simon scheint von Anfang an den richtigen Riecher gehabt zu haben: ----- Simon K. schrieb: > ... > > Alternativ kann es auch sein, dass sich die Eingänge in irgendeinem > Latchup Zustand befinden. >... ----- Werde zukünftig diesem Thema mehr Aufmerksamkeit spenden (müssen). Vielen Dank für Eure Unterstützung. Grüße vom lbd!
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.