Hallo, ich will mit INT0 ein Rechtecksignal auswerten dies gelingt mir aber nicht weil Störungen von der PWM des Motors drauf kommen, die PWM wird mit dem gleichem Controller erzeugt. Ich habe schon mit einem 100 nF Kondensator probiert den Kanal zu entstören, es hat aber nicht den erwünschten Erfolg gebracht. Wie kann ich es unterbinden?
100nF passt nicht immer. Das könnte evtl. schon etwas zu klein sein. Versuch mal vielleicht 1uF oder so. Evtl. auch mal ne kleine Spule in Reihe. Frag mich jetzt aber nicht wie groß. Paar mH vielleicht
Prinzip vom Hardware-Tasterentprellen einsetzen: Signal -> RC-Glied -> Schmitt-Trigger -> µC Je größer das RC-Glied, desto störsicherer, jedoch Laufzeitverschiebung. PS: Manche µC haben bereits Input-Pins, die als Schmitt-Trigger ausgeführt sind.(z.B. manche Eingänge der PICs)
Danke für die Tipps. Wie kann ich den RC Glied auslegen wie groß muss der Kondensator und wie groß der Widerstand sein? Ich habe es mit einer kleinen Spule probiert, ohne Erfolg. Spule ist doch eigentlich ein Strom- Bügeleisen. Ich probiere paar Bilder von dem Signal zu machen.
Noch ein paar Fragen: Wie kommen die Störungen auf das Nutzsignal? Design? Layout? Welche Frequenz stört? Wie oft treten die Störungen auf? Wie lang ist die Leitung?
Hier ist der Schaltplan, der Schaltplan wurde auf einer Lochrasterplatine realisiert. http://s-huehn.de/elektronik/fahrtregler/fahrtregler.htm Ich habe extra drauf geachtet, dass der Controller, Signalleitungen und das ganze 5V gedäh nicht mit PWM kreuzt.(ist auch Räumlich etwas getrennt) Die PWM wird mit Timer1 erzeugt: Controller: 1MHz Teiler: 8 Fast PWM 10 Bit 1000000/8=125000 --->125000/1023=122 pro Sek 1/122=8 Millisekunden Soviel zu der Rechnerei. Und die Störungsspitzen kommt genau alle 8 Millisekunden Motorleistungen= ca. 30 cm Rechtecksignalleitung= ca. 40cm Der Motor wird durch 47 µF Kondensator entstört.
Das muß ohne Entstörung gehen. Bei ordentlichem Aufbau darf mit dieser Beschaltung nichts stören. Sind das wirklich Spannungsstörungsspitzen, oder verhält sich deine Software im 122Hz Takt fehlerhaft? Irgendwo ist deine Schaltung anders, im angegebenen Schaltplan ist kein 47uF Kondensator zu finden. Du hast auch irgendeine andere Software, denn deine 122Hz tauchen im Original nicht auf, sondern "...Bei diesem Fahrtregler habe ich die gleiche Frequenz wie die Fernsteuerung benutzt (ca. 50 Hz), weil da die Software recht einfach zu realisieren war...". @ Timmo H. Eine Spule vor einem Eingang, da muss man schon genau wissen was man tut. Dann noch einen Kondensator davor oder dahinter: Jungens, aus solchen Sachen hat man früher (in der Analogtechnik) Schwingkreise gebaut, das is nix Digitales dabei, das holt euch wieder ein!!
Der 47 µF Kondensator war schon immer am Motor dran mit einem anderem Motor ohne C geht es auch nicht. Die Software habe ich selber erstellt aber in C da Assembler nicht meine Muttersprache ist. Wie muss ich ein RC Glied auslegen?
R-C-Glieder berechnen sich nach der einfachen Formel tau = R mal C. Passt dann auch relativ gut zu den Eingangs-Schaltpegeln (der Rest sind Rundungsfehler und Rechenungenauigkeiten). D.h. wenn ich den Eingang mit (tau = ) 10ms entprellen will, dann brauche ich 1 kOhm und 10uF oder 4,7kOhm und 2,2uF oder 3,3kOhm und 3,3uF (wie gesagt, der Rest ist Rundungsfehler).... Aber: wenn ich ein Signal mit 10ms entprellen kann, dann brauche ich keinen Interrupt. Ein Interrupt ist nötig für Antwortzeiten im 10us-Bereich. Und das kann ich nicht mehr (zuverlässig) mit RC-Gliedern ausfiltern. BTW: Auf die Gefahr, dass ich mich wiederhole: : : Das muß ohne Entstörung gehen. Bei ordentlichem Aufbau darf mit dieser Beschaltung nichts stören. Sind das wirklich Spannungsstörungsspitzen, oder verhält sich deine Software im 122Hz Takt fehlerhaft? : :
GEA wrote: > Der 47 µF Kondensator war schon immer am Motor dran mit einem anderem > Motor ohne C geht es auch nicht. Das sind mit Sicherheit keine 47 µF sondern eher 47 nF. > > Die Software habe ich selber erstellt aber in C Aha. Und die ist ok? > da Assembler nicht meine > Muttersprache ist. Im Gegenzug kann der AVR kein C. 8-D > > Wie muss ich ein RC Glied auslegen? Am Signal vom Empfänger würde ich nichts machen. 1 k in Reihe als Schutzwiderstand gegen fehlerhaften Anschluss schadet allerdings nicht. Schau lieber mal, ob Du Dir nicht über den Spannungsregler Störungen (Einbrüche) aus dem Leistungs-Stromkreis einfängst. Versorge Empfänger und AVR doch mal zum Test mit einer separaten Stromversorgung. ...
Gehe nochmal meine Software Schritt für Schritt durch. Melde mich später. Danke noch mal.
So hier bin ich wieder, danke an ALLE die mir geholfen haben, mein Regler läuft jetzt wie die Sau. Es gibt zwar noch Störungen auf dem INT0 aber die Auswertung läuft einwandfrei. Meine Software war eigentlich Fehlerfrei ich habe nur vergessen die Fuse- Bits zu setzten und somit lief der Controller mit 1MHz (interner Takt) und hat wahnsinnige Spannungsspitzen auf dem INT0 verursacht (warum auch immer) Jetzt läuft der Controller mit 16 MHz Quarz und es gibt nur kleinere Störungen.(warum das so ist verstehe ich aber nicht so ganz)
@ Hannes Lux Nein es ist ein 47µF Kondensator es ist auch ein etwas größerer Motor (15A bei Volllast) Und Assembler versteht der Controller genau so wenig wie C ;-)
@lkmiller Ich habs auch mit der Spannungsglättung für den AREF verwechselt. (L an VCC, C an GNC) mein Fehler... Meinte eher sowas wie nen Tiefpass davor. Ein kleiner pF-Kondensator kann ja nicht beliebig lange Spitzen kompensieren.
> Und Assembler versteht der Controller genau so wenig wie C
Dir ist aber bewusst, dass nur ASM und MC (Maschinencode) eins zu eins
in beiden Richtungen zugeordnet werden kann. ASM ist halt nur eine
andere (human-verständlichere) Schreibweise für MC. Jedes ASM-Mnemonic
entspricht exakt einem MC-Befehl und umgekehrt. Man kann in ASM (ohne
Hochsprachenwissen) dem Controller sehr exakt mitteilen, was er machen
soll. In einer Hochsprache gelingt das (ohne ASM-Wissen) nicht oder nur
bedingt. ;-)
Wenn Dein Motor 15 A zieht, dann solltest Du mal die gesamte
Stromversorgung und den Laststromkreis unter die Lupe nehmen. Bei
PWM-zerhackten 15 A entsteht nämlich eine Menge Müll. Den auszublenden
ist gar nicht so einfach.
Übrigens ist Scottis Fahrtregler bestimmt nicht für 15A-Motoren
konzipiert worden.
...
Achja, falls Du etweas quer lesen möchtest: http://www.hanneslux.de/avr/mobau/index.html Es löst zwar nicht Dein gegenwärtiges Problem, kann Dir aber vermutlich ein paar Denkanstöße geben. ...
@Hannes ja das ist mir bewusst, das ist ja auch alles richtig was du da schreibst aber Assemblercode muss genau wie C-code auch erst in den MC übersetzt werden. Danke für den Link, den hatte ich aber schon unter Lesezeichen gespeichert. Super Seite
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.