Forum: Analoge Elektronik und Schaltungstechnik Output Nadelimpuls bei JEDER Flanke


von Robert O. (rob_o)


Lesenswert?

Erstmal Hallo allerseits.
Habe da ein kleines Problem:
Ich möchte bei jeder Flankenänderung zweier Eingangssignale einen kurzen 
Nadelpuls erzeugen.
Hintergedanke ist den Nadelpuls zum triggern eines Input Capture 
Interrupts eines Atmel µC herzunehmen und dann "nachzusehen" welchen 
Level die Eingangssignale haben.
Gibt es da etwas fertiges?
Das ist die Lösung die ich bis jetzt erdacht habe:


IN ------||---|\ +    ____
              | \____|      |
              | /    |      |
       Vref---|/ -   |      |
                     |      |
                     |  >1  |------- µC
IN ------||---|\ -   |      |
              | \____|      |
              | /    |      |
       Vref---|/ +   --------



Vref=2.5V
0V <= In <= 5V
Nach den Kondensatoren kommt noch eine Diode zur Begrenzung der 
negativen (positiven) Überspannung und ein Pull-down (pull-up) 
widerstand.

Bin über jede Hilfe dankbar.
mfg. Robert

von nicht "Gast" (Gast)


Lesenswert?

Hi,

was willst du denn genau machen? Ist dein Signal ein Logikpegel? Dann 
schau mal genauer im Datenblatt beim ext. Interrupt nach der Int0 kann 
z.B. auf beide Flanken reagieren.

Wenn du ein Analogsignal auf diese Weise bearbeiten möchtest, würde ich 
eher den ADC auf free running stellen und immer beim fertig stellen der 
Wandlung nachschauen, was auch immer du wissen möchtest.


Grüße,

von nicht "Gast" (Gast)


Lesenswert?

noch mal ich. Vergiss den Text oben :)

Beschreib doch mal ein wenig genauer, was du machen möchtest.

von H.Joachim S. (crazyhorse)


Lesenswert?

Einfacher: XOR-Gatter. Auf einen Eingang das direkte Signal, auf den 
anderen Eingang das leicht verzögerte. Im einfachsten Fall mit RC-Glied.

von Robert O. (rob_o)


Lesenswert?

Das mit dem XOR hab ich mir auch schon überlegt.

Zur genaueren Erklärung:
Ich habe zwei von einander unabhängige Signale die ich in den Bereich 
0-5V bringen kann. Ich möchte jedoch möglichst genau mittels Input 
Capture den Zeitpunkt einer Flanke feststellen können und zwar relativ 
zu einem Timer der mittels Output Compare ein Signal ausgibt. Daher kann 
ich nicht zwei ICP Eingänge nehmen da der zweite Timer ja nicht 100% 
synchron ist. Ebenso ist ein Externer Interrupt zu ungenau (IMHO). Im 
nachhinein nachzusehen welche Flanke von welchem Signal das gerade war 
ist einfach und auch zeitlich kein Problem (Abstand von den Flanken 
>1ms).

von MaWin (Gast)


Lesenswert?

> Das ist die Lösung die ich bis jetzt erdacht habe:

Die funktioniert natürlich nicht.
Es fehlen Gleichstrompfade beim Kondensator.

> Zur genaueren Erklärung:

Geht sicher auch rein in Software.

von Robert O. (rob_o)


Lesenswert?

MaWin schrieb:
>> Das ist die Lösung die ich bis jetzt erdacht habe:
>
> Die funktioniert natürlich nicht.
> Es fehlen Gleichstrompfade beim Kondensator.
>
Nein:
Nach den Kondensatoren kommt noch eine Diode zur Begrenzung der
negativen (positiven) Überspannung und ein Pull-down (pull-up)
widerstand.

>> Zur genaueren Erklärung:
>
> Geht sicher auch rein in Software.
Wüsste nicht wie. Man kann zwar in der ISR die Flanke auf die der ICP 
Interrupt triggert ändern, das funktioniert jedoch nur für ein signal! 
Habe jedoch zwei die alle möglichen Zustände annehmen können.

von Ralf (Gast)


Lesenswert?

> Habe jedoch zwei die alle möglichen Zustände annehmen können.
Hat dein Controller zwei von den Interrupts?

Ralf

von Robert O. (rob_o)


Angehängte Dateien:

Lesenswert?

Ralf schrieb:
>> Habe jedoch zwei die alle möglichen Zustände annehmen können.
> Hat dein Controller zwei von den Interrupts?
>
> Ralf

Nicht am gleichen Timer.

Habe jedoch bereits eine Lösung gefunden die funktioniert:
siehe Anlage.

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.