Forum: Analoge Elektronik und Schaltungstechnik anliegen eines Rechtecksignal erkennen


von Chris T. (chris0086)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
im anhang seht ihr ein Rechtecksignal mit 500Hz.
Normalerweise hab ich an dem Messpunkt 5V Ruhepegel.
Wenn jetzt ein Rechtecksignal auftaucht, möchte ich dieses als normale 
Spannung am Pin eines Atmega einlesen. Ich möchte nicht die 
Rechteckspannung sondern einfach ein High oder Low Signal am Pin 
anliegen haben. (Habe 6 solcher Messpunkte zu überwachen).
Wie kann ich das am besten Bewerkstelligen?
Ich brauch wohl irgend eine Art Filter um die Rechteckspannung zu 
glätten oder einen Schmitttrigger.

Könnte mir jemand auf die Sprünge helfen?
Grüße Christian

von Norbert (Gast)


Lesenswert?

Du brauchst einen Inverter und ein 1ms Monoflop!

von Rainer U. (r-u)


Lesenswert?

Schließ die Leitungen an einen Port an und mach 3 Messungen im Abstand 
von 500ns

3 gleiche Werte = kein Signal

von Bernd (Gast)


Lesenswert?

Rainer U. schrieb:
> Schließ die Leitungen an einen Port an und mach 3 Messungen im Abstand
> von 500ns
>
> 3 gleiche Werte = kein Signal

Alle 6 Signale auf einen Port führen und dreimal, im Anstand von 500 ns, 
den Port mit sich selbst verUNDen. Wenn einer oder mehrere der sechs 
Portpins LOW ist, dann liegt ein Rechteck am entsprechende PIN an.

von Johannes R. (oa625)


Lesenswert?

Ich kenne nur PICs, da würde ich die Aufgabe mit "Interrupt-on-Change" 
auf die fallende Flanke lösen.
Wenn nicht nur ein Impuls sondern eine Impulsfolge detektiert werden 
soll, dann wird eine Zählvariable inkremeniert.

MfG
Johannes

von Wolfgang (Gast)


Lesenswert?

Chris T. schrieb:
> Rechtecksignal mit 500Hz

Rainer U. schrieb:
> im Abstand von 500ns

Das üben wir noch mal. Bei 500ns würde der ATmega schon etwas in Stress 
kommen. Gut das für 500Hz eine Abtastung mit 1000000ns Sampleabstand 
reichen dürfte ;-)

von Wolfgang (Gast)


Lesenswert?

Norbert schrieb:
> Du brauchst einen Inverter und ein 1ms Monoflop!

Sechs

von Norbert (Gast)


Lesenswert?

Chris schrieb in seiner ursprünglichen Nachricht:
>>Ich möchte nicht die Rechteckspannung sondern einfach ein
>>High oder Low Signal am Pin anliegen haben.

Eine intensive und sorgfältig ausgeführte Textanalyse ergab, das er
1
nicht die Rechteckspannung
 sondern einfach ein
1
High oder Low Signal am Pin
 möchte.

Dies lässt sich am einfachsten dadurch erreichen, das man keine 
Rechteckspannung, sondern ein einfaches 'High oder Low Signal' an einen 
Eingangspin legt.

Man kann natürlich auch
1
Ich möchte *nicht* die Rechteckspannung am Pin
 dahingehend interpretieren, das man erst einmal ein Rechtecksignal an 
einen Eingangspin legt und dann später darüber nachdenkt ob es mit dem 
geäußerten Wunsch übereinstimmt.

von Norbert (Gast)


Lesenswert?

Wolfgang schrieb:
> Norbert schrieb:
>> Du brauchst einen Inverter und ein 1ms Monoflop!
>
> Sechs

Wenn man das extra erwähnen muss ergeben sich ganz andere Probleme ;-)

von Joachim B. (jar)


Lesenswert?

Tastenentprellung nach dannegger bullet proof

als Timerbasis eignet sich dann nicht ms sondern µs wenn 4x low 
eingelesen wurde ist es wohl ein Puls, ob es der richtige ist müsste man 
weiterzählen wenn es noch andere Möglichkeiten gibt, sonst gilt der ja.

mit 6 Pins auf einem Port kann man ja alle zugleich entprellen.

Die Frage ist, wieviel 2ms low und hig müssen gezählt werden um das als 
gültigen 500Hz Rechteck zu werten?

was bedeutet:

Chris T. schrieb:
> Wenn jetzt ein Rechtecksignal auftaucht, möchte ich dieses als normale
> Spannung am Pin eines Atmega einlesen.

der ist doch nur 5V oder 0V oder willst du genau im Rechteck die 
Amplitude messen? welche von high oder low?

von TomA (Gast)


Lesenswert?

Hallo Chris Tian,

nimm ein nachtriggerbares Monoflop z.B: vom Typ 74xx123, im Chip 
befinden sich je zwei dieser Monoflops.

Die Impulszeit stellst du auf eine Größere als die Periodenzeit des 
Rechtecksignals. Solange das Rechteckignal anliegt wird das Monoflop 
nachgetriggert und bleibt gesetzt. Bleiben die Impulse aus, fällt das 
Monoflop zurück.

Aufpassen mußt du beim 74xx123 auf den Hersteller des Chip. Bei Einigen 
berechnet sich die Impulszeit zu
    tw = 1 x R x C (z.B: National), bei Anderen zu
    tw = 0,45 x R x C (z.B: Phillips).

Gruß. Tom

von Boris O. (bohnsorg) Benutzerseite


Lesenswert?

Man könnt' auch per Timer Capture und gleichzeitigem Overflow-Interrupt 
feststellen, was zuerst passiert: Anhalten des Timers oder Overflow. 
Dann muss der Timer nur noch so eingestellt werden, dass er recht sicher 
nach 1,5 besser 2 Perioden überläuft. Was das mit der Tastenentprellung 
werden soll, ist mir schleierhaft. Von Prellen war keine Rede.

von Joachim B. (jar)


Lesenswert?

TomA schrieb:
> nimm ein nachtriggerbares Monoflop z.B: vom Typ 74xx123, im Chip
> befinden sich je zwei dieser Monoflops.

wozu monoflop? er hat doch den ATmega

von Humpert (Gast)


Lesenswert?

Norbert schrieb:
> Wolfgang schrieb:
>> Norbert schrieb:
>>> Du brauchst einen Inverter und ein 1ms Monoflop!
>>
>> Sechs
>
> Wenn man das extra erwähnen muss ergeben sich ganz andere Probleme ;-)

Wenn du das nicht erwähnst, fragt man sich, welche Unexakteiten es bei 
dir sonst noch so gibt ;-)

von TomA (Gast)


Lesenswert?

Hallo Joachim,

hast du die Anforderung gelesen?

Chris möchte ein fertig aufbereitetes Signal am Eingang des µC. Er will 
dafür keine interne Hardware und keine Software einsetzen.

Man sollte schon auf die Anforderungen eingehen, wenn man helfen will.

Gruß. Tom

von Joachim B. (jar)


Lesenswert?

TomA schrieb:
> Hallo Joachim,
>
> hast du die Anforderung gelesen?

habe ich

TomA schrieb:
> Man sollte schon auf die Anforderungen eingehen, wenn man helfen will.

stimmt, nur das ist es ja nicht:

TomA schrieb:
> nimm ein nachtriggerbares Monoflop

damit sind ja ausser den 500Hz Impulsen noch jede andere Menge an 
anliegenden Impulsen möglich.

Mir ist halt nicht klar ob nur 500Hz Impulse auftreten können oder auch 
andere und wie aus möglicherweise verschiedenen Impulsen nur die 500Hz 
rausgefischt werden.

Chris T. schrieb:
> Wenn jetzt ein Rechtecksignal auftaucht,

zufällig?
immer 500Hz?
oder nur 500Hz sollen gefischt werden?

mir ist die Aufgabenstellung zu unscharf.

von Norbert (Gast)


Lesenswert?

Humpert schrieb:
> Norbert schrieb:
>> Wolfgang schrieb:
>>> Norbert schrieb:
>>>> Du brauchst einen Inverter und ein 1ms Monoflop!
>>>
>>> Sechs
>>
>> Wenn man das extra erwähnen muss ergeben sich ganz andere Probleme ;-)
>
> Wenn du das nicht erwähnst, fragt man sich, welche Unexakteiten es bei
> dir sonst noch so gibt ;-)

Tja, ich gehöre anscheinend einer (sehr) kleinen Gruppe an welche einen 
Text nicht nur sehen, sondern auch lesen und darüberhinaus auch 
verstehen kann;-)

Der Text (Problembeschreibung) lautet:
1
Normalerweise hab ich an dem Messpunkt 5V Ruhepegel.
Singular
1
Wenn jetzt ein Rechtecksignal auftaucht, möchte ich dieses als normale 
2
Spannung am Pin eines Atmega einlesen.
Singular
1
Ich möchte nicht die Rechteckspannung sondern einfach ein High oder Low
2
Signal am Pin anliegen haben
Singular
1
Ich brauch wohl irgend eine Art Filter um die Rechteckspannung zu 
2
glätten oder einen Schmitttrigger.
Singular

Dieses Problem(Singular) muß sechs mal gelöst werden.

Die vorgeschlagene Problemlösung (Singular) kann dann später beliebig 
oft eingesetzt werden (Das schließt die Anzahl sechs natürlich mit ein)

von Humpert (Gast)


Lesenswert?

Norbert schrieb:
> .
> .
> Dieses Problem(Singular) muß sechs mal gelöst werden.
>
> Die vorgeschlagene Problemlösung (Singular) kann dann später beliebig
> oft eingesetzt werden (Das schließt die Anzahl sechs natürlich mit ein)

Geht doch...

von TomA (Gast)


Lesenswert?

Es reicht, wenn es Chris weiterhilft. Er kann das Monoflop an exakt 
seine Gegebenheiten anpassen, ohne uns alle Details mitteilen zu müssen.

Schönes Wochenende. Tom

von Joachim B. (jar)


Lesenswert?

TomA schrieb:
> Er kann das Monoflop an exakt
> seine Gegebenheiten anpassen, ohne uns alle Details mitteilen zu müssen.
>
> Schönes Wochenende. Tom

wenn ein Monoflop für alle Gegebenheiten reicht, nun gut,dir auch ein 
schönes WE

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

TomA schrieb:
> Man sollte schon auf die Anforderungen eingehen, wenn man helfen will.
Man darf aber auch mal fragen, warum man das Problem nicht mit ein 
paar Codezeilen im uC lösen kann. Denn dort ist das absolut kein 
Aufwand. Wenn es schon einen Timertic gibt, dann sind es gerade mal 1-2 
C-Zeilen pro Eingang.

Man könnte sich sogar vorstellen, dass man einen uC mit min 12 EA nimmt 
und das Ganze da reinprogrammiert. Zusammen mit dem internen Oszillator 
wäre das dann komplett ohne zusätzliche Bauteile in 1 IC. Und ganz 
leicht änder- und anpassbar...

: Bearbeitet durch Moderator
von c-hater (Gast)


Lesenswert?

Chris T. schrieb:

> im anhang seht ihr ein Rechtecksignal mit 500Hz.> Normalerweise hab ich an > dem 
Messpunkt 5V Ruhepegel.
> Wenn jetzt ein Rechtecksignal auftaucht, möchte ich dieses als normale
> Spannung am Pin eines Atmega einlesen. Ich möchte nicht die
> Rechteckspannung sondern einfach ein High oder Low Signal am Pin
> anliegen haben.

Warum? Das kann man doch simpelst per Software lösen.

> Könnte mir jemand auf die Sprünge helfen?

Lerne, deine Problem als Software-Probleme zu begreifen.

Im konkreten Fall: Du schaffst ein Zeitfenster deiner Wahl und wertest 
aus, ob innerhalb dieses Fensters eine Zustandswechsel erfolgt ist. Wenn 
das der Fall ist, wertest du den Eingang als "High" ansonsten als "Low".

Bei 500Hz ist das völlig problemlos realisierbar.

von Chris T. (chris0086)


Lesenswert?

Hallo an alle und danke für die zahlreichen Antworten.
Da habe ich ja einige Ansätze, ich wollte das ganze gern per Hardware 
abhandeln, dann muss ich mich nicht um die Software kümmern ;)
Aber die Sache per Software würde wohl auch gehen.
Wenn ich das richtig verstanden habe brauch ich nur eine Zeitbasis und 
beim Timerereignis frage ich den Port ab und schau, ob irgendwo ein Low 
Pegel anliegt. Die Signale würd ich dann über einen Spannungsteiler zu 
den Pins führen da die 2,3v glaub ich noch keinen Low Pegel entsprechen. 
(-> Datenblatt).
Das Signal ist entweder High oder die 500 Hz Pwm.

Grüße Christian

von wendelsberg (Gast)


Lesenswert?

Chris T. schrieb:
> entweder High oder die 500 Hz Pwm

Der naechste zu ziehende Wurm heisst damit:
Welche Tastverhaeltnisse koennen vorkommen?

wendelsberg

von Chris T. (chris0086)


Lesenswert?

Nur das 50:50 wie oben abgebildet. Okay man sieht die nächste Periode 
nicht ganz.

: Bearbeitet durch User
von Rainer U. (r-u)


Lesenswert?

Wolfgang schrieb:
> Chris T. schrieb:
>> Rechtecksignal mit 500Hz
>
> Rainer U. schrieb:
>> im Abstand von 500ns
>
> Das üben wir noch mal. Bei 500ns würde der ATmega schon etwas in Stress
> kommen. Gut das für 500Hz eine Abtastung mit 1000000ns Sampleabstand
> reichen dürfte ;-)

Oh Mist! Jetzt sehe ich es auch - hatte 500kHz gelesen. Aber auch 500ns 
sind noch nicht so schlimm: Ein IN-Befehl dauert nur 1 Takt - bei 8MHz 
gerade mal 125ns.

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
Noch kein Account? Hier anmelden.