Forum: Compiler & IDEs Digitale Spannung mit Atmega detektieren


von Samuel P. (mo3bius)


Lesenswert?

Hi,
ich habe hier ein periodisches digitales Signal. Es werden alle 50ms 
Peaks mit geringer Länge und einer maximalen Spannung von 0.5 Volt 
gesendet. Mein Atmega32 läuft mit 5 Volt.

Ich möchte detektieren wann ein Solcher Peak "kommmt". Dies ist eine 
zeitkritische Aufgabe.

Ich habe mir selber schon einige Gedanken gemacht, würde aber gern mal 
hören wie ihr das machen würdet.

Mfg Samuel

von foo (Gast)


Lesenswert?

>geringer Länge
Die da wäre? 1ms oder 1ns?

>Ich habe mir selber schon einige Gedanken gemacht
Dann lass mal hören... (Ich sag jetzt nicht dass das Hausaufgaben sind, 
aber solche Formulierungen erinnern mich immer dran.)

von Samuel P. (mo3bius)


Lesenswert?

Die genaue Länge weis ich im Moment nicht. Aber sowas in 1 ms-Bereich.

Ich hätte ja auch schreiben können ich weis nicht wie man das macht, 
aber ich wollte das wahrheitsgemäß schreiben....

- Signal verstärken + Interruptschaltung auf Flanke
- ADC aufs Signal anwenden und schauen wann Werte > 10 (oder anderer 
minimaler Wert) ankommen.

Mfg Samuel

von foo (Gast)


Lesenswert?

Schnellschuss: (R2R) OPV als Komparator, 1ms ist ja geradezu 
lächerlich...

von foo (Gast)


Lesenswert?

(Ausgang OPV an den INT-Eingang)

von R. M. (rmax)


Lesenswert?

Wozu einen externen OPV, der ATmega32 hat doch einen internen 
Analog-Komparator.

von Martin (Gast)


Lesenswert?

Die 0,6 V über einen 10 nF Kondensator an den Komparatoreingang legen. 
Den Eingang mit 2 mal 100 k auf UB-Halbe legen: B & W.

von Samuel P. (mo3bius)


Lesenswert?

@Martin:

Ich denke ich verstehe prinzipiell was du meinst. Du vergleichst den 
digitalen Peak mit einer Referenzspannung und wenn der Peak größer ist, 
so wird ein TImer/Interrupt ausgelöst, richtig?

>Den Eingang mit 2 mal 100 k auf UB-Halbe legen: B & W.

Meinst du damit, dass ich die halbe Peakhöhe als Spannung an AIN0 legen 
soll, wenn mein Signal an AIN1 liegt?

von Martin (Gast)


Lesenswert?

Ja, du kannst den einen Eingang z. B. fest auf 0,3 V legen und den 
anderen Eingang mit deinem Signal "füttern". Bitte im Datenblatt prüfen, 
wie weit die Spannungen des AVR-Komparators an VCC/GND gehen darf.

von Samuel P. (mo3bius)


Lesenswert?

Alles klar. Weist du vielleicht auch noch in etwa wie kurz mein Puls 
sein dürfte? (Grobe Größenordnung wäre schon gut)
Ich hab im Datenblatt nachgesehen, dazu aber nichts gefunden. Im SVR-GCC 
Tutorial stand nur das der AC unabhängig vom Prozessor arbeitet.

Mfg Moebius

von Karl H. (kbuchegg)


Lesenswert?

Samuel P. schrieb:
> Alles klar. Weist du vielleicht auch noch in etwa wie kurz mein Puls
> sein dürfte? (Grobe Größenordnung wäre schon gut)

Da es sich hier um eine reine Hardware-Detektierung handelt, wird die 
(wiederholende) minimale Zeit davon abhängen, wie schnell du Interrupts 
maximal abarbeiten kannst. Denn erst wenn eine ISR unterwegs ist, kann 
das nächste Ereignis das Interrupt Flag erneut setzen.

von Martin (Gast)


Lesenswert?

Nein, Atmel scheint sich da bedeckt zu halten. Das "schnellste" Signal 
das ich verarbeitet habe war 125 µs.

von foo (Gast)


Lesenswert?

>Wozu einen externen OPV, der ATmega32 hat doch einen internen
>Analog-Komparator.
Wo du Recht hast...

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.