PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC Problem schwankende Schaltschwelle



ACsenf
25.01.2006, 13:51
So gleich der nächste Beitrag....
Habe zwar wenig Hoffnung das in den digital in den Griff zu bekommen.
Ich benutze nacheinander 4 analoge Eingänge und werte diese dann aus.
Die Anwendung dient zum Laden von Supercaps.

Die Ladeschlußspannung soll per Software einstellbar sein, deshalb auch der µC...
Leider schwankt der Abschaltwert recht stark um ca 5%, was mir nicht so richtig zusagt. Analog klappt das wunderbar, deshalb auch der Beitrag mit der PWM.
Wie lange dauert denn eine Wandlung tatsächlich? Der Simulator spuckt mir 11,5µs aus für einen Schleifendurchlauf. Laut Datenblatt und Rechenschieber komme ich auf 11,5µs pro Wandlung, was dann insgesamt auf ca. 70µs kommen würde, aber die Schwankung nicht wirklich erklären kann, da der Ladevorgang im Verhältnis langsam ist.
Vermutlich liegt es eher an der Abschaltbedingung...nur wie geht das besser??? Ein Regelalgorithmus macht die ganze Sache zu langsam.

Anbei die entsprechende Schleife:


Hier der Code

Sub Laden
Config Adc = Single , Prescaler = Auto , Reference = Off 'externe Referenzquelle
Start Adc
Do

Spg_c1 = Getadc(3) 'Spannung an C1
If Spg_c1 >= U_c1 Then 'U_C1 Ausschalten wenn Sollwert erreicht
Stromquelle1 = 1
End If

Spg_c2 = Getadc(2) 'Spannung an C2
If Spg_c2 >= U_c2 Then 'U_C2 Ausschalten wenn Sollwert erreicht
Stromquelle2 = 1
End If

Spg_c3 = Getadc(1) 'Spannung an C3
If Spg_c3 >= U_c3 Then 'U_C3 Ausschalten wenn Sollwert erreicht
Stromquelle3 = 1
End If

Spg_c4 = Getadc(0) 'Spannung an C4
If Spg_c4 >= U_c4 Then 'U_C4 Ausschalten wenn Sollwert erreicht
Stromquelle4 = 1
End If

Loop Until Aus_flag = 0

Stop Timer1
Stop Adc
Call Entladen
Call Aus

End Sub

Mal gespannt ob es doch einen Weg gibt.

Gruß

Sven

edit: Dreher in der Überschrift korrigiert.

Ratber
25.01.2006, 18:57
Das Programm scheint ok aber wie siehts denn mit der Referenz und der Ladeschaltung aus ?

ACsenf
25.01.2006, 23:02
Hi!
Also die Referenzquelle ist ein TL431 und absolut konstant auf 4,965V.
Die Ladeschaltung ist ähnlich einem Schaltnetzteil und regelt auf den Ladestrom konstant. will heißen die Hardware ist absolut ok!
Wie mir scheint ist wohl der Wandlungsvorgang doch etwas zu langsam oder zu ungenau....oder halt der Abbruch dazu nicht gedacht. Jedenfalls schwankt es bei jeder vom Prozessor vorgegebenen Spannung um den gleichen Wert. Die Abweichung liegt je nach Sollwert zwischen 4%-20% und das ist absolut für nix zu gebrauchen...

Gruß

Sven

Ratber
26.01.2006, 00:03
Ja,aber irgendwas muß da sein.

Ich nutze dioe ADC's von 90Sx bis Megax und kenne die als recht stabil und Leisdtungsfähig.
Natülich nur wenn auch die Versorgung in ordnung ist.

Was du vieleicht noch bei den Supercaps beachten solltest ist das die nach dem Laden noch nachziehen.

Ich sehe das oft bei den Ultracaps ab ca. 5F (Nutze bis 100F).
Wenn ich zb. bis 2.500V Lade dann geben die innerhalb von sekunden nochwas nach.

4-7% ist da drinn aber keine 20%
Bei bis zu 20% ist da irgendwas faul.

ogni42
26.01.2006, 09:22
poste doch mal den Schaltplan. Vielleicht kommen wir dann eher drauf, woran es liegen könnte.

ACsenf
26.01.2006, 10:26
Hallo zusammen!
Also den Schaltplan brauche ich nicht posten, ginge auch gar nicht. Dazu kann ich nur sagen, es ist alles OK! Die Spannungen stehen wie festbetoniert, Versorgung und Referenz!
Habe jetzt nochmal einen Versuch unternommen und alles übrige auskommentiert und verwende zum Testlauf nur einen einzigen Kanal und siehe da es funktioniert wunderbar!!! Kann die Spannung nun auf +-3% bei der niedrigsten Spannung einstellen, bei höheren Werten wird es logischerweise genauer, da die Toleranz gleichbleibt. Das liegt sicher in den Umrechnungen (Rundungsfehler) begründet ist aber nicht weiter schlimm.
Das Problem ist nun wohl erkannt. Der Wandler ist im Multiplexbetrieb eindeutig zu langsam! Umgehen wird man das wohl kaum können, oder?
Denke an 4 einzelne Prozessoren, aber die müssen wieder miteinander kommunizieren...
Da ist wohl die Echtzeitvariante mit Komparator und D/A Wandler als Sollwertvorgabe, die eleganteste Lösung. Oder was meint Ihr?

Gruß

Sven

ogni42
26.01.2006, 11:05
Die Zeiten, die Dir der Simulator ausspukt stimmen m.E. nicht. Laut Datenblatt dauert die erste AD Wandlung 25 ADC Taktzyklen, alle nachfolgenden 13. Höchste ADC Frequenz ist 200kHz.

Das bedeutet: 1 Wandlung = 125us, folgende: 65us. Da kommt dann noch der Zeitbedarf für Umschalten der Eingänge und Rest Deiner Schleife hinzu.

Ratber
26.01.2006, 17:30
Ja,ein M16 schafft unter realen Bedungungen mit durchlaufenden Kanälen (Also alle 8 nacheinander) ca. 16kS/s.
Das sollte für die Ladeschaltung mehr als Satt und genug sein sind doch bei 8 Kanälen ca. 2kS/s pro Kanal drinn.(Natürlich abzüglich der Zeit sdie man für die Verarbeitung braucht)

Ich hab den Wandler etlicher Controller schon zigmal genutzt und solche Problem noch nicht gehabt.


Naja,ohne Informationen macht ein weiteres rumraten keinen Sinn.

ACsenf
27.01.2006, 13:43
Hallo!
Erst mal danke für Eure Hilfestellungen! Wie Ogni geschrieben hat, treffen diese Zeiten zu. Wenn man nachrechnet kommt man auch genau auf die gemessenen Schwankungen. Die vier Unterschiedlich großen Caps werden je nach Schlußspannung mit sehr hohen Strömen in max 17ms aufgeladen(Zeitbegrenzung für den Takt). Wird die Sollspannung vorher erreicht muß der Prozessor eingreifen, was dann z.B. eine Ladezeit von nur 8ms, oder weniger, ergibt, was ja die besagten Probleme ergibt.
Wie gesagt der Hinweiß von Ogni hat die Erkenntnis gebracht, daß es so nicht geht. Möglich wäre nun, für jeden Cap einen eigenen Prozi, der nix anderes macht als den Vorgang zu steuern und dem Master ein OK gibt und die Daten austauscht. Oder aber Analog mit D-Agewandelter Sollwertvorgabe, der Aufwand dürfte bei der analogen Variante etwas größer sein.

Vielen Dank für Eure Tipps!

Gruß

Sven