INT0 entstören

Gast #898008
Lesenswert?

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?
Gast #898569
Lesenswert?

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.
Gast #898686
Lesenswert?

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.
Gast #898735
Lesenswert?

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!!
Gast #898768
Lesenswert?

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?
Gast #898776
Lesenswert?

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?
:
:
#898778
Lesenswert?

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.

...
Gast #900915
Lesenswert?

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)
#900956
Lesenswert?

> 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.

...
Gast #901123
Lesenswert?

@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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren