Hallo, ich bin zum ersten mal in diesem Forum und würde mich freuen wenn mir jemand helfen kann! Ich habe eine kleine Schaltung aufgebaut wo ein Relais mit Hilfe eines AT90S2343 angesteuert wird. Das Relais soll für 3sec angesteuert werden nachdem am Controller ein Pin kurz an Masse gezogen wurde! Danach soll der Controller in eine Endlosschleife bleiben. Soll heißen der Vorgang soll nur einmal ausgeführt werden. Das ist nur eine Teilfunktion, aber diese bereitet mir Kopfzerbrechen! Folgendes Problem: Alles klappt wunderbar, naja wenn der Controller in die Endlosschleife springt kommt es vor das er selbsständig resetet wenn ich den Schalteingang schnell hintereinander trigger!!!!! Kein Watchdog aktiv! Superstabile Versorgungsspannung! Kein Brumm! Eingangsbeschaltung für den Triggereingang standardmäßig mit 2 Dioden nach Masse und +5V sowie einem RC-Glied, zusätzlichem Pull-Up und 100Ohm in Reihe. Am Eingang können keine Spannungspitzen auftreten da ich gegen Schaltungsmasse trigger. Trigger ich den Eingang dagegen sehr langsam, reagiert der AVR nicht darauf, nur bei sehr schnellem Triggern. Die Endlosschleife wird def. durch einen plötzlichen Reset verlassen! Ich habe probehalber den AVR in den Powerdown Modus gebracht - keine Änderung! Auch ein anderer Pin und ein Umschreiben der Software brachte kein Erfolg. Wie kommt das blos? Wer resetet den AVR? Habe ich was übersehen??? wäre für Tipps wirklich sehr dankbar Thomas
Hallo, 100nf an VCC/Gnd ? Wie Triggerst du Taster /Schalter Draht oder Impulsgenerator ? Was ist schnell hintereinander (20Mhz) ? Wie ist Pin 1 Reset beschaltet ? Berührst du die Schaltung beim Triggern ?
Hallo Thomas, wenn das Eingangssignal und die Spannungsversorgung definitiv sauber sind, dann gibt es IMHO nur noch zwei Möglichkeiten (vorausgesetzt, Du hast mit Deinen obigen Ausführungen die Schaltung vollständig erläutert): 1. Das Relais erzeugt beim Abfallen eine Spannungsspitze, die zu solchen Effekten führen kann. Du schreibst nicht, ob Du dagegen entsprechende schaltungstechnische Vorkehrungen getroffen hast. 2. Softwarefehler. Dafür spricht der Effekt, dass langsame Impulse am Eingang keine Reaktion zeigen. Normal wäre der umgekehrte Fall, dass langsame Impulse registriert werden, bei schnellen Impulsen die MCU aber nicht mehr mitkommt. Poste doch mal Deinen Code, dann können wir vielleicht mehr sagen. Gruß, Frank
Um keine Copy Right Verletzung zu begehen kann ich keine Glaskugel befragen, also frag ich dich: wie schauen Schaltung und source aus? grüsse leo9
Ich muß wohl was vorweg sagen: Ich entwickle seit Jahren MC Steuerungen und verdiene mein Geld damit! Das ist allerdings mein erstes AVR Projekt. Ich denke mal ich kann auf einiges an Erfahrung zurückgreifen und das ist ja das verrückte an dieser Schaltung......... @Hans-Hans Siebkondensatoren sind selbstverständlich vorhanden! Getriggert wird mit einem Taster! Resetbeschaltung (PIN1) 10µF nach Masse und 10K an VCC Schaltung wird beim triggern nicht berührt. @Frank Linde Freilaufdiode ist drin, der AVR resetet aber selbst dann wenn das Relais abgeklemmt ist und nur eine LED angesteuert wird. @leo9 Quellcode? Endlosschleife, die eigentlich nicht verlassen werden kann da Interrupts gesperrt und WDT inaktiv. Ich poste morgen mal mehr Details der Software und der Schaltung. danke und Gruß Thomas
vielleicht nochmal das Problem geschildert: Das Programm läuft in eine gewollte Endlosschleife, die meinetwegen auch noch den Prozessor in den Power Down versetzt. WDT inaktiv, Interrups gesperrt. (Ich programiere in Assembler!) "Normales" triggern des Ports haben keine Auswirkungen. Wird aber sehr schnell getriggert (2-3 HZ) resetet sich der AVR selbstständig. Es sind keine Impulsspitzen an den Eingängen und der Versorgung beim triggern zu erkennen....... Ich habe das Gefühl das ich eine Charge def. AVR's bekommen habe. Die machten nämlich schon Probleme beim Flashen. Es war nur der High Voltage Seriell Modus möglich !!! Eine Musterlieferung Wochen zuvor lies sich ohne Probleme via ISP flashen.... Ich glaube ich bin zu blöd für AVR's....
Meine Vermutung: Du rennst in einen Stacküberlauf (da das Problem ja auch dann auftritt, wenn Du nur eine LED und kein Relais anklemmst). Wie hast Du denn den Schalter entprellt? Nein, ich mag keinen Assembler-Sourcecode für Dich debuggen. :-) In ordentlichen C-Code würde ich nochmal einen Blick werfen, aber wer unbedingt Assembler machen will, dem mag ich nicht helfen... mir ist meine Zeit schon für meine Projekte zu schade, das alles in Assembler zu stemmen. Für den Relais-Fall: wenn das Dein erstens AVR-Projekt ist, tu Dir einen Gefallen, und fang nicht erst mit den AT90xxx Teilen an. Die Dinger sind bekanntermaßen nicht besonders EMV-resistent. Selbst mit der von Atmel empfohlenen Schutzbeschalten (da gibt's eine Appnote dafür) ist bekannt, daß man dort schnell Störungen einkoppeln kann. Die nach neuerer Technologie gefertigten Chips (alle ATmega außer 103 und 163 sowie die neueren ATtiny, aber die dürfte es derzeit nur als Muster geben) sind berichtetermaßen deutlich resistenter gegen derartige Einflüsse. Drittens, laß mich raten, hast Du die Chips bei Reichelt gekauft? Ein Freund hatte neulich auch AT90S2343, die er nicht programmieren konnte. Wir haben hin- und herprobiert, bis wir festgestellt haben, daß all diese Chips (immerhin aus verschiedenen Produktionslosen) den internen RC-Oszillator im Auslieferungszustand ausgeschaltet hatten (was es laut Atmel-Datenblatt gar nicht geben sollte). 1 MHz extern an den Takt, und man konnte die Fuse für den RC-Oszillator setzen...
@Jörg Nicht von Reichelt, aber ein ähnlicher Distributor :-) Und richtig, bei 100 gekauften 2343 war der int. Oszillator abgeschaltet! Stacküberlauf kann nicht sein! Wenn ich nichts am Eingang mache bleibt er ja auch in der Endlosschleife und in dieser wird der Eingang gar nicht weiter abgefragt - nein im Gegenteil, wenn ich ihn als Ausgang setzte (!) passiert es trotzdem....... Thomas
@Jörg zunächst nicht, habe es aber dann entsprechend abgeändert! Zuvor waren 10µF nach Masse. Hat aber leider nichts gebracht. Übrigens läuft die Schaltung jetzt! Ich vermute mal das ich mit dem Layout voll daneben gegriffen habe. Da auch 230V mit auf der Platine sind habe ich wohl Prob's mit irgendwelchen Überlagerungen. Habe die Masse nochmals verbessert und über 100nF an den PE gelegt, jetzt gehts störungsfrei! Muß aber sagen das der kleine AVR wirklich sehr sensibel ist!!! Bei meinen Atmel 89C51RC2 hatte ich nie solche Phänomene Thomas
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.