www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik INT0 entstören


Autor: GEA (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Igor Metwet (bastel-wastel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: GEA (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: GEA (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!!

Autor: GEA (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: lkmiller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?
:
:

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: GEA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gehe nochmal meine Software Schritt für Schritt durch.
Melde mich später.

Danke noch mal.

Autor: GEA (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: GEA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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 ;-)

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

...

Autor: GEA (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.