-         

Ergebnis 1 bis 9 von 9

Thema: ADC Problem schwankende Schaltschwelle

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    22.03.2005
    Beiträge
    91

    ADC Problem schwankende Schaltschwelle

    Anzeige

    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
    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.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Das Programm scheint ok aber wie siehts denn mit der Referenz und der Ladeschaltung aus ?
    Gruß
    Ratber

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    22.03.2005
    Beiträge
    91
    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

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    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.
    Gruß
    Ratber

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    51
    Beiträge
    1.195
    poste doch mal den Schaltplan. Vielleicht kommen wir dann eher drauf, woran es liegen könnte.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    22.03.2005
    Beiträge
    91
    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

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    51
    Beiträge
    1.195
    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.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    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.
    Gruß
    Ratber

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    22.03.2005
    Beiträge
    91
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •