ich habe hier unterscheidliche Typen von ATmega162 16PI. Ich nehme an das es sich um unterschiedliche Produktionen handelt, die 3te Zeile auf den Chip ist bei den ersten Typ "0505H" und bei den anderen "0426F". Nur die Chips mit "0426F" funktionieren ohne Probleme, die anderen scheinen Probleme mit den Reset zu haben (flackernde LEDs) denn wenn ich den Programmieradapter verbinde flackern die LEDs nicht mehr, auch nachdem ich den ISP-stecker wieder abziehe flackern sie erstmal nicht mehr. Ich habe beide chips mit den gleichen Programm beschrieben, beim "0505H" tritt das Problem nicht auf (gleicher Aufbau der Platine, gleiche Komponenten)... Die reset-spannung habe ich mit einen 100nF elko und einen 10uF tantal und testweise mit einen 2,2nF Kondenstor entstört...
Mach doch mal ´nen PullUp dran, vielleicht haben die den internen bei ATMEL vergessen ;-)
Naja, Atmel empfielt zumindest einen in seiner AppNote, also würde ich's damit erstmal versuchen.
Ich betreibe den controller mit 3.3v aus einen spannungswandler, diese 3.3v gehen über ein 10k widerstand an den reset pin... also habe ich sowieso schon einen pullup, oder? daran wird es wohl nicht liegen
Wenn ich den reset pin über ein 10uF tantal entstöre und anstatt mit 3.3v mit 5v von USB ansteuere dann scheint alles zu funktionieren... das ist aber ziemlich doof.
Dann verringere doch mal den PullUp. Vielleicht streut ja irgendwelcher HF-Müll in deine Schaltung ein und dein Layout ist vielleicht nicht ganz optimal. Bist du sicher, dass dein Spannungswandler nicht schwingen kann? Stimmt seine Beschaltung laut Datenblatt? (Keramik-C) Ist die Betriebsspannung am MC mit 100nF Keramik-C abgeblockt? Sorry dass ich auf solch banale Dinge verweise, aber viele Anfänger glauben, sich nicht an die einfachsten Grundregeln des digitalen Schaltungsaufbaus halten zu müssen. Ein 10µF-Tantal oder gar 1000µF Elko kann keinen 100nF-Keramik-Kondensator ersetzen. Auch ein 100nF-Elko (erstes Post) kann das nicht. ...
Ach ja, es bleiben außerdem alle funktionen erhalten... alles funktioniert (PC kommunikation und auslesen eines flash speichers) - nur die LEDs flackern, was mich eigentlich nicht stören würde wenn es nicht ein zeichen dafür wäre das was nicht stimmt. Kann es sein das die LEDs zuviel strom ziehen? Würde es da helfen den widerstand zu erhöhen? es handelt sich um 3 LEDs die direkt am controller sind (20mA LEDs denke ich) ich benutze einen 470 ohm widerstand bei 5V.
Beim spannungswandler handelt es sich um IRU101533, am ausgang sitzt ein 100uF elko - so steht es im datenblatt. Aber am eingang habe ich keinen... bei "typical application" im datenblatt sitzt am eingang zwar auch einer aber bei einer weiteren beschreibung im datenblatt wird nur der ausgangs-elko erwähnt... naja wenigstens hab ich einen :) Am microcontroller sitzen der 10uF tantal und ein normaler 100nF keramik. Direkt an der reset-leitung habe ich keinen, ich hab aber eben mal einen 27pF folienkondensator reingelötet und das hat nix geändert. Ich habe auch mal versucht den pull-up durch einen draht zu ersetzen, das ging auch nicht. Ich bin jetzt irgendwie ein wenig verwirrt :(
Noch etwas komisches... Ich habe ein programm geschrieben das beim betätigen eines schalters eine LED einschaltet und in eine endlosschleife übergeht. Falls der controller sich wirklich immer wieder selbst-"resetten" sollte dann müsste die LED beim auslösen des schalters an gehen und danach flackern und aus gehen aufgrund des resets. Allerdings konnte ich nach betätigen des schalters die LED einschalten und der controller hat sich "aufgehängt" (die LED leuchtet auch nach dem los lassen). Alles funktioniert im grunde, nur diese LEDs flackern obwohl sie aus sein müssten :(
ENTWARNUNG!!! omg, wie peinlich... ich hab es eben heraus gefunden! Ich habe die pull-ups von allen Ports an gehabt obwohl ich sie als Ausgang geschaltet habe - ich weiss nicht ganz genau was da jetzt das Problem ist aber es flacker nicht mehr :) Komisch...
neee, das war es doch nicht. Das ganze passiert auch nur mit 2 LEDs, die dritte flacker überhaupt nicht.
ah jetzt habe ich das problem gefunden glaube ich (diesmal wirklich). Ich war gestern abend etwas durcheinander. Ich habe den + pol der LEDs mit 5V verbunden und masse an den controller gelegt so das sie bei "HIGH" aus sind und bei "LOW" an sind. Anscheinend leuchten die LEDs mit der Differenz aus den 3.3v vom controller und den 5V... was kann ich da machen? Einfach einen großen widerstand nehmen so das man das nicht mehr sieht? Oder muss ich jetzt wirklich leiterbahnen trennen und kabel verlegen (das wäre richtig schei...)? Kann ich anstatt des vorwiderstandes dioden benutzen? Dann würde der eingangs-strom an der LED doch sinken oder? Aber dann hätte ich keinen vorwiderstand mehr... bitte ein paar Meinungen :)
> Kann ich anstatt des vorwiderstandes dioden benutzen? Nööö... Aber du kannst die Plus-Leiterbahn der LEDs auftrennen und eine (oder 2?) Diode(n) in Durchlassrichtung einfügen, dann dürfte der Spannungsabfall die LEDs verlöschen lassen. ...
Gibt es denn LEDs die bei 5v-3.3v noch nicht leuchten? Ich hab mir bei reichelt mal die datasheets angeschaut aber ich werde nicht so ganz schlau was da wichtig ist... ich habe zum Beispiel eine LED gefunden bei der unter "forward voltage: 2.0" stand - reicht das aus damit meine LED nicht mehr leuchtet?
Marius: weshalb schaltest Du die LEDs nicht nach Masse, dann leuchten sie, wenn 1 Pegel anliegt und Du bist die Sorge mit den verschiedenen Versorgungsspannungen los. Aus dem Grunde haben doch die modernen Controller Endstufen, die in beiden Richtungen recht große Ströme (halt 20mA) treiben können. Im Programm kannst Du die Pegel nötigenfalls invertieren (1x COM-Befehl in Assembler). Da Masse meist immer 0-Potential hat (gegenüber verschiedenen Vcc), machts doch Sinn, oder?
macht sinn, aber die platinen sind fertig und liegen hier, da kann man sowas nicht mal schnell ändern... irgendwie dumm :(
Verdammte Axt! Dann vielleicht 2V-Z-Dioden in Serie zu den LEDs - ist einfacher. Dann mußt Du allerdings die Vorwiderstände etwas reduzieren, damit noch ein wenig Leuchtkraft ´rauskommt, wenn sie doch leuchten sollen.
Keine Ahnung wo man die heute noch herbekommt, aber Feldeffektdioden anstelle Deines Vorwiderstand würden das Problem lösen. Leiten erst ab ca. 2V und begrenzen den Strom.
Alles zurück. Hab was falsches erzählt. Bei kleinen Spannungen verhält sich die FET-Diode wie ein Widerstand, bei größeren dann wie eine Konstantstromquelle -> geht also doch nicht in Deiner Schaltung.
Z-Dioden sind schweinebillig bei Reichelt, so ´ne Tüte voll verschiedener Typen kann man immer ´rumliegen haben. Irgendwann braucht man sie ja doch.
Ich hab den port pin einfach als eingang geschaltet wenn die LED aus sein soll - dann fließt auch garantiert kein strom mehr... hoffe ich :) Auf die einfachste Lösung kommt man natürlich erst zuletzt :P
... hoffe Du hast die internen Schutzdioden noch nicht gehimmelt. Die sollte man mit nicht mehr als 1mA belasten.
aber da fließt doch gar kein strom... oder? Es geht ja so VCC -> LED -> Eingangspin... Ich denke mal wenn da kein strom fließt ist die LED doch sowieso hochohmig und lässt keinen strom durch oder? Also die ist aus. (punkt) :) Kann mir nochmal jemand sagen ob das gefährlich ist?
Also, Dein Controller hat VCC=3,3V und die LED liegt zwischen =+5V und Eingangspin, ja? Dann hast du die Serienschaltung aus +5V -> LED -> interne Schottkydiode -> 3,3V. Wahrscheinlich ist der Strom nicht wirklich so groß, weil an der LED schon viel Spannung abfällt, wenn Sie gerade anfängt zu leuchten, aber ist IMHO halt eine unsichere Sache.
Danke für den Hinweis, ich werde ihn aber aus mangel an optionen blind ignorieren ;P
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.