mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC gleichzeitig mit AC - Mega 8


Autor: E. M a t t h i a s (hias)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich benutze den ADC eines Mega8 um Strom zu Messen.
Den ADC-Wert brauche ich fortlaufend für die Berechnung anderer Größen.

Gleichzeitig möchte ich aber den AC nutzen um einen Interrupt beim 
überschreiten eines Spannungswertes zu erhalten.

In meinen Überlegungen tauche ich jetzt auf folgendes Problem.
Angenommen ich messe alle ms den Strom. Die Wandlung dauert eine gewisse 
Zeit. Das heißt würde wärend dieser Zeit ein Spannungswert die Schwelle 
überschreiten, würde kein Interrupt ausgelöst werden.

Das heißt aber im Folgeschluss: Ich darf den Strom nicht zyklisch 
messen.
Aber wie dann? Irgendwelche Ideen?

Hinzuzufügen ist, dass ich auf den Interrupt möglichst schnell reagieren 
muss. Würde ich erst nach einer AD-Wandlung auf einen Interrupt 
reagiern, wäre dies zu spät.

MfG Hias

Autor: Compy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht kannste mit dem Analogvergleicher ja was anstellen?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eder Matthias wrote:
> In meinen Überlegungen tauche ich jetzt auf folgendes Problem.
> Angenommen ich messe alle ms den Strom. Die Wandlung dauert eine gewisse
> Zeit. Das heißt würde wärend dieser Zeit ein Spannungswert die Schwelle
> überschreiten, würde kein Interrupt ausgelöst werden.
Sagt wer? Der ADC ist eine Peripherie-Einheit, die quasi unabhängig vom 
Programm und sonstigen Komponenten vor sich hintuckert. Während die 
Wandlung läuft kann der Rest des AVR machen, was er will. Und 
selbstverständlich kannst Du auch den Analog-Komparator benutzen, um auf 
Schwellwerte zu reagieren. Der Komparator hat primär nichts mit dem ADC 
zu tun (außer, wenn Du den Mulitplexer für den Komparator brauchst oder 
den ADC mit dem Komparator triggern willst).

Autor: Compy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja...aber ich denk, er macht sich sorgen, wenn ne Stromspitze während 
der Approximation des ADC auftritt, die womöglich untergeht. Der 
Vergleicher arbeitet meines Wissens nach doch nicht zeitdiskret, der 
vergleicht doch in echtzeit und ohne "Wandlungsphasen", in denen was 
untergehen könnte.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Compy:
Ich verstehe das derzeit so, dass Metthias denkt, dass während einer 
Analog-Digital-Wandlung kein Analog-Komparator-Interrupt bearbeitet 
werden kann (siehe letzter Absatz im OP). Dem ist aber nicht so.

Autor: Compy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach mensch ich Dummkopf
>den AC nutzen

hab mich verlesen, nä. Klar schmeißt der AC (AC!) mit Unterbrecher um 
sich, wenn er was zu vermelden hat...

Allerdings gewinnt im Zweikampf der ADC (aDc!), dessen Unterbrecher sind 
nämlich wichtiger (Prioritäten...)

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Compy wrote:
> Allerdings gewinnt im Zweikampf der ADC (aDc!), dessen Unterbrecher sind
> nämlich wichtiger (Prioritäten...)
Sollte im Normalfall kein Problem sein, wenn der ADC-Interrupt-Handler 
ausreichend kurz ist... (was für Interrupt Handler generell ratsam ist). 
Und wenn es extrem wichtig ist, dann kann man auch den ADC-Handler 
unterbrechbar machen, dann gehen höchstens ein paar wenige Takte 
verloren. Da der ADC als eher langsam anzusehen ist, sollte nicht die 
Gefahr bestehen, dass er seinen eigenen Interrupt-Handler unterbricht 
und so Stackprobleme verursacht.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man die ADC-Werte zyklisch pollt und nicht den ADC-Ready-Interrupt 
nutzt, kann man dem Analog-Komparator das Zepter in die Hand geben und 
mit dessen Interrupt sehr schnell auf Peaks reagieren.

Autor: E. M a t t h i a s (hias)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab euch den entscheidenden Teil nicht gesagt.
Ich brauch den Multiplexer um die Vergleichsspannungen auszuwählen.
Ich habe 4 Spannungen die ich mittels ADMUX mit einem Wert vergleiche.
Davon wird immer nur eine Spannung mit der Referenzspannung verglichen.

Das Problem besteht also darin:
Falls ich mittel zyklischer Abfrage den ADC-Wert abfrage, muss ich den 
richtigen Pin mittels ADMUX auf den AD Wandler schalten. Somit muss ich 
den AC  schonmal deaktivieren um nicht falsche Ergebnisse zu erhalten. 
Ich kann erst nach der Wandlung wieder den AD einschalten und mit ADMUX 
den entsprechenden PIN mit dem AC "verbinden".

Welche Lösungen gibts für dieses Problem?

MfG Hias

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eder Matthias wrote:

> Welche Lösungen gibts für dieses Problem?

Das Problem überhaupt erstmal feststellen!


Ob der ADC oder der Komparator schneller ist, ist vollkommen irrelevant.

Du mußt erstmal festlegen, wie lang ist der Spannungsimpuls minimal, der 
erkannt werden soll.
Und dann, wie lang kann die Reaktionszeit darauf maximal sein.


Erst danach kann man feststellen, ob der ADC oder Komparator es wuppen 
kann oder keiner von beiden.


Peter

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Welche Lösungen gibts für dieses Problem?

Einen guten Programmierstil ;-) Es kommt immer drauf an, was man machen 
will und ob das Timing noch hinhaut. Wenn nicht, muß ein externer MUX 
her.

Autor: E. M a t t h i a s (hias)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger wrote:
> Eder Matthias wrote:
>
>> Welche Lösungen gibts für dieses Problem?
>
> Das Problem überhaupt erstmal feststellen!
>
>
> Ob der ADC oder der Komparator schneller ist, ist vollkommen irrelevant.
>
> Du mußt erstmal festlegen, wie lang ist der Spannungsimpuls minimal, der
> erkannt werden soll.
> Und dann, wie lang kann die Reaktionszeit darauf maximal sein.
>
>
> Erst danach kann man feststellen, ob der ADC oder Komparator es wuppen
> kann oder keiner von beiden.
>
>
> Peter

Um nochmal genauer zu werden:
Wann einer der 4 Spannungen den Schwellwert überschreitet kann man nicht 
vorhersehen. Theoretisch dürfte dieses "Signal" nicht über 10kHz liegen.
Das ganze ist aber keinesfalls regelmäßig.
Es kann doch also immer passieren, dass während einer AD-Wandlung die 
Schwellspannung überschritten wird.
Oder liege ich da falsch?

Hias

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eder Matthias wrote:

> Um nochmal genauer zu werden:
> Wann einer der 4 Spannungen den Schwellwert überschreitet kann man nicht
> vorhersehen. Theoretisch dürfte dieses "Signal" nicht über 10kHz liegen.

"theoretisch" und "dürfte" haben in einer Projektbeschreibung nichts 
verloren. Wir kennen Dein Signal nicht.

Wenn Du Deine Anforderungen nicht genauer beschreibst, kann man nichts 
dazu sagen.


> Es kann doch also immer passieren, dass während einer AD-Wandlung die
> Schwellspannung überschritten wird.

Passieren kann vieles, solange Du es nicht spezifizierst und 
nachrechnest.


Wenn Du den Multiplexer umschaltest, hast Du immer Abtastpausen, egal ob 
mit ADC oder Komparator.

Wenn Du keine Lust zum Ausrechnen hast, mußt Du eben extern nen LM339 
ranpappen.


Peter

Autor: mehrfacher STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du das mal aufmalen?

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.