Hallo, ich habe gerade versucht, die Regelung für einen Reflow-Pizzaofen von Thomas Pfeifer (http://thomaspfeifer.net/backofen_smd_reflow.htm) ein wenig zu optimieren (Schaltung und Programm siehe dort). Bisher hat das auch recht gut geklappt, aber plötzlich liefert mir der ADC des Atmega88 nur mehr 0, ohne dass ich etwas an Schaltung oder Programm geändert hätte. Vorher hat das Ganze 70 mA gezogen, was mir schon recht hoch vorkam, jetzt sind es plötzlich zwischen 120 und 140 mA. Wenn ich die Strombegrenzung des Netzteils hochdrehe, brechen irgendwann Spannung UND Strom ein. Ist das normal? Nicht normal ist jedenfalls, dass der Controller ziemlich heiß wird (sollte laut Datenblatt aber 200 mA verkraften), und vor allem lässt er sich nicht mehr programmieren. Ich kriege ständig Flash Error, wenn ich das Programm verifizieren lasse (avr-gcc toolchain). Über die UART werden aber munter weiter Werte ausgespuckt, nur der ADC scheint nicht zu funktionieren. Kann es sein, dass sich Teile vom Controller verabschiedet haben? Wie kann denn so was passieren? Oder gibt es noch andere mögliche Ursachen für dieses Verhalten?
Ja, es können einzelne Teile eines AVRs kaputt gehen. Häufig ist davon dann ein ganzer Port(z.B. PORTB) betroffen. Heiß werden AVRs in der Regel im Normalbetrieb nicht, das ist meist ein Anzeichen für einen Defekt. AVRs werden relativ schnell zerstört, ein kurzer Spannungs-Peak kann reichen.
Pack mal vor den ADC noch einen Widerstand, im Bereich von 5 bis 10k Ohm. Ich würde wetten dass du da irgendwo einen Lötfehler hast und es fließt Strom von Vdd in einen auf Masse geschalteten Ausgang. (oder anders rum) Eigentlich sind AVR's recht robust, ein einzelner Pin darf maximal 20mA ableiten. Können tut er bestimmt viel mehr, aber eben nicht sehr lange ;)
Meines Wissens nach sind sogar 40mA pro Pin zulässig, aber micht mehr als 300mA insgesamt.
@ Ich (Gast) Ja das ist richtig. Je höher der Strom ist desto weiter bricht aber die Spannung am Ausgang ein. Das sind absolute Spitzenwerte und bestimmt keine Richtwerte für den Kontinuierlichen Betrieb! Du solltest dir mal die *NOTICE: im Atmel-Datenblatt durchlesen zu den Absolute Maximum Ratings* :) und das hier: > Können tut er bestimmt viel mehr, aber eben nicht sehr lange ;) Ich verwende vor jedem I/O-Pin einen Widerstand und wenn ich wirklich mal viel Strom schalten möchte (mehr als 5mA) nutze ich einen SOT23 Transistor oder Mosfet, die sind recht billig und in den verschiedensten Varianten verfügbar. @ Christian O. > Vorher hat das Ganze 70 mA gezogen, > was mir schon recht hoch vorkam ... Wie sieht deine Spannungsversorgung aus? Die Diode + Vorwiderstand muss auf alle Fälle an eine ordentlich stabile Spannungsquelle ran. Am besten 5V und der Wert vom Vorwiderstand beträgt 1k Ohm. (fließen also ca. 4.5 mA rüber) 12V und 2k Ohm gehen auch, aber wenn sich der Strom der über die Diode fließt verändert, dann verändert sich auch die Durchbruchspannung.
Atmega8 Atmega8 wrote:
> Ich verwende vor jedem I/O-Pin einen Widerstand
Was soll das für einen Sinn haben? Wenn du eh weitere CMOS Bausteine
dran hängst, kannst du ihn auch weglassen. Wenn der I/O Pin als Eingang
geschaltet ist eigentlich sowieso.
Nur bei bestimmten Fällen ist es wirklich ratsam einen solchen
Widerstand einzubauen.
@ Simon K. Ich mach das weil es fast nichts Kostet und Fehler (Bastelfehler, also nicht im professionellen Bereich) verhindert.
@Atmega8 Hast du dir den Schaltplan auf der Website angeschaut? Ich hab die dort verfügbare Platine geätzt, mit Widerständen dazupacken geht da nix. Ich hab einen Spannungsteiler am ADC, mit eim 1K Widerstand gegen +5V und nem Pt100-Sensor gegen Masse (den wollte ich jetzt wieder mit einer Diode ersetzen, weil er zu langsam reagiert). Als Spannungsversorgung hab ich ein altes Labornetzgerät, dem ich wohl zu viel Vertrauen geschenkt habe (oder auch nicht, vielleicht ist es ja unschuldig...) Ansonsten ist RXD und TXD beschaltet (funktioniert) sowie die Pins 5 (LED), 6 und 7 (SSR) mit jeweils einem 220 Ohm Vorwiderstand. Vom Port B sind nur die Pins fürs ISP beschaltet. Lötfehler, hmm, warum ging es dann vorher? Da der Controller Spannung hat und heiß wird, fließt der Strom durch den Controller und nicht außen vorbei. Bei abgekoppeltem Netzteil messe ich zwischen V+ und Masse etwa 300 mOhm, hat dieser Wert irgendeine Aussagekraft?
300 mOhm sind recht wenig...oder was meinst du? Ich tippe auch auf nen Kurzschluss.
Klar ist das wenig, ich dachte nur dass das bei einem Mikrocontroller nicht aussagekräftig ist, weil sich dessen Widerstand ja je nach Tätigkeit ändert. Kurzschluss scheint auch klar, aber wo? Muss ja entweder im µC selbst oder an irgendeinem von dessen Pins sein, aber welche kommen da in Frage? Sichtbar ist keiner, vielleicht könnte ich das durchmessen, aber ich weiß nicht so recht wie. Jeweils Widerstand zwischen zwei Pins messen? Ich hab ja keinen Vergleichswert...
Mir ging es letztens genau so mit einem PIC. Hatte den ADC Spannung versorgt ohne Vcc angeschlossen zu haben. Hat dann wohl nen latch-up erzeugt. Der PIC wurde dann auch nur noch verdammnt heiß. Hab ihn gegen nen neuen ausgetauscht und schwupps ging wieder alles...
@ Christian O. Das ist doch eine ganz kleine Platine ... Probier doch mal - alle I/O-Pins auf Eingang setzen - zwischen benachbarten Pins auf Kurzschluss prüfen (müssten wenn sie als Eingang geschaltet sind extrem hoch sein) Wenn z.B. die Versorgungspins zu einem Kondensator gehen steigt der Widerstand langsam an. - Spannung am Netzteil prüfen Geh mal die Versorgungsleitungen entlang, da muss irgend eine kleine Brücke sein. (Kann auch ganz winzig 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.