Hallo Mikrocontrollerfreaks! Erstmal möchte ich Eure Seite loben. Sie ermöglicht den Einstieg auch für Anfänger wie mich in das Genre der Mikrocontroller. So nun zu meinem Problem: Ich möchte mit einem ATmega 8 an den sechs Eingangsports ADC0 bis ADC5 (PDIP 28 Gehäuse) unterschiedliche Sinusimpulse messen. Diese stammen von einem Präzisions-OPV. Dieser erfasst eingangsseitig die Differenzspannung über Strombegrenzungswiderstände von einem Leistungs-OPV und verstärkt sie entsprechend. Hierbei handelt es sich um die positive Sinus-Halbwelle. Der Differenzverstärker verstärkt diese und gibt diese dann verstärkt an den ATmega heraus. Dabei wird zwischen zwei wichtige Sinus-Spitzenwerte unterschieden. 3,7Volt, d.h. der Leistungs-OPV ist noch nicht in Strombegrenzung und 4,0V der Leistungs-OPV ist in Strombegrenzung. Realisiert wird das für 6 Leistungs-OPV, d.h. 3x Strom und 3x Spannung. Somit muss ich 6 unterschiedliche Pegel mit dem ATmega messen können. Mein Problem ist hierbei, dass die Frequenz der Sinusimpulse variabel zwischen 40 – 60 Hz ist (T zwischen 16 und 25 Millisekunden), weiterhin sind sie gegeneinander frei phasenverschiebbar. Die Cursor-Messung der Ausgangssignale des Differenzverstärkers mittels Pspice ergab, dass der Spitzenwert der Halbwelle eine Zeitdauer von 1,4ms aufweist. Mein Grundgedanke war pro Kanal mehrere Abtastungen durchzuführen in der „ Hoffnung“ das der Spitzenwert bei der Abtastung „irgendwann“ erwischt wird. Anschließend soll auf den nächsten Kanal umgeschaltet werden –Abtastung, auf den nächsten Kanal umschalten usw. Misst der ATmega mehrere aufeinander folgende Spitzenwerte größer 3,9V z.B. soll er ausgangsseitig eine Meldung erzeugen (LED leuchtet). Mehrere Impulse sollen es schon sein, damit eine Schaltberuhigung der Überlastanzeige erreicht wird (Einschaltimpulse unterdrückt werden). Der Blick und die Übersetzung aus dem Datenblatt ergibt eine maximale ADC Clock von 200kHz. Dies bedeutet bei minimal 13 Impulsen zur Wandlung eine Zeit von 65 Mikrosekunden. Jetzt ist aber weiter angegeben, Zitat Datenblatt: “The first conversion after the ADC is switches on takes 25 ADC clock cycles in order to initialize the analog circuitry“. Was bedeutet das? Erstmaliges Einschalten des ADC nach Kanalumschaltung und es werden 25 x 5Mikrosekunden=125Mikrosekunden benötigt?? Eine Synchronisation ist nicht vorgesehen, ich wüsste auch nicht wo ich diese anschließen sollte, der Schaltungsaufwand sollte ebenfalls so gering wie möglich sein. Habe diese Schaltung mit diskreten BE schon aufgebaut, aber der Aufwand (Zähler, NE555, usw.) ist viel zu groß (Platzbedarf eine Platine 200x100mm) so dass ich eine Lösung mit dem ATmega verfolge. Weiterhin interessiert mich, ob die Sache der Abtastung überhaupt funktioniert, da die Sinushalbwelle sich im Grunde ständig ändert (ist kein ständig anstehender Pegel), und somit das Abtastergebnis ständig verfälscht. Vielen Dank für Eure Hilfen und Tipps Gruß Hendrik
Hallo Hendrik, so wie ich dich verstanden habe geht es primär nur um die Feststellung das 3.9V überschritten werden. Wenn du also nich an der Aufzeichnung der Signalform interessiert bist, dann würde ich den Analog Comparator verwenden auf den ich die zu messenden Kanäle mittel jeweils einer Diode gemeinsam aufschalte. Das ist schneller und du musst nur einen Pin anschließen und abfragen. Durch die Dioden reduziert sich deine Abfragespannung noch um 0,7V. Gruß Stefan
Hallo Stefan! Wenn ich alle Eingänge über eine Diode beschalte, kann ich keine direkte Meldung mehr generieren, welcher einzelne Leistungs-OPV (L1, L2, I1, usw.) in Überlast ist. Gruß Hendrik
Aber du kannst jeden einzelnen auf einen PCINT pin geben dann bekommst du zwar auch nur einen Interrupt kannst aber auswerten wer dafür verantwortlich ist. Das erfordert allerdings afaik einen neueren AVR. Intern hast du, glaube ich, nicht genügent Komperatoren um das alles zu erledigen. -wiebel
Hallo ! Habe mal bei Atmel nachgeschaut. Der AT90PWM3 besitzt drei Analogkomparatoren. Mit zwei Stück von der Sorte müsste es klappen. Leider haben diese SOIC Gehäuse, wo wieder teuere Adapter fällig werden. Gibt es noch andere ATMEL-Typen mit 3 Analog-Komparatoren, die ein DIP-Gehäuse besitzen?? Danke Hendrik
Ich würde die eigentliche Aufgabe analog lösen und den AVR nur die Auswertung machen lassen. Wenn ich das richtig verstanden habe interessieren nur die Strom- und Spannungsspitzenwerte. Dazu muss man nicht die ganze Halbwelle durch den ADC jagen. Warum nicht einfach einen Opamp als peak-Meter beschalten und dann auf den ADC ? Dann hat sich auch die Problematik mit den 1,4 ms erledigt. Gruss Digger
Hallo! Denke ich habe eine Problemlösung. Die Sache mit den Komparator ist, denke ich eine lösbare Sache. Beim Studium des Datenblattes ist mir aufgefallen, dass man über den ADC Multiplexer (ATmega8) die verschiedenen Eingänge (ADC0-ADC5 bei PDIP28) an den negativen Eingang des Komparators schalten kann. Damit wäre eine Zuordnung für jeden Kanal möglich. Denkbarer Ansatz: An den positiven Pin des Komparators Referenz (z.B. über Spannungsteiler U=3,9V) anlegen. Über den Multiplexer ADC 0 (z.B. I1) 100ms jeden Kanal abfragen. Erfolgt Überschreitung, Wert ins Register schreiben. Jeden weiteren Kanal 100ms abfragen und Ergebnisse in die dazugehörigen Register schreiben. Liegen beim zweimaligen Abfragen eines Kanals immer noch Überschreitungen an, dann wird die entsprechende "Überlast" LED gesetzt, und mit einer Zeitschleife entsprechend lang gesetzt. In der Zwischenzeit wird das betroffene Register zurückgesetzt und das Abfragen der Kanäle geht weiter. Die Zeitschleife der LED wird dabei solange gesetzt, dass in der Zwischenzeit ein zweimaliges Abfragen des betroffenen Kanals stattfinden kann, und dieser ggf. die Zeitschleife der LED weitergesetzt lässt (wenn immer noch Überlast anliegt). Liegen dagegen beim zweimaligen Abfragen eines Kanals die Überlastimpulse nicht mehr an, wird der Wert aus dem Register gelöscht (z.B. Einschaltvorgang ist beendet). Frage: Muss bei Verwendung des Komparators der AVCC genauso wie bei Verwendung des A/D Wandlers mit einem Kondi beschaltet werden?? Ich habe darüber nichts im Datenblatt gefunden. Vielen Dank Gruß Hendrik
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.