- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Schaltung überprüfen

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    Anzeige

    Praxistest und DIY Projekte
    Du meinst also, ich soll die PWM so einstellen, dass der AC dauernd (im Takt der PWM) toggelt?! Und dieses Signal dann interpolieren, anhand des PWM-Wertes erhalte ich die Größenordnung / Offset des Signals.
    Man müsste dann auch auf ein bestimmtes Taktverhältnis (z.B. 1:1) regeln, sonst verschenkt man Genauigkeit. Wenn Du es schon probiert hast und es nicht gut geht, dann glaube ich das mal so.

    Also nochmal Bezug auf die Schaltung im Ursprungspost:
    Soweit ich es jetzt verstehe wird die PWM einmal eingestellt (vor dem Start) und bleibt dann für den Flug konstant. Damit ist die Zeitkonstante für die PWM Glättung nicht besonders kritisch. Die Restwelligkeit sollte aber gering sein (deutlich unterhalb der Auflösung des ADC). Der Meßwert hingegen ist zeitkritisch, die Bandbreite muß aber vermutlich wegen Rauschen begrenzt werden.
    Also folgender Vorschlag:
    Auf den PWM Ausgang folgt ein Tiefpass mit entsprechend geringer Restwelligkeit. Um das Problem mit dem Kondensator in der Rückkopplung zu vermeiden kann man die geglättete PWM an den nicht invertierenden Eingang des OP legen. An den invertierenden Eingang dann über einen Widerstand den Sensor. Rückkopplung wie gehabt (Widerstand entsprechend der Gleichspannungsverstärkung, Kondensator entsprechend der Rauschunterdrückung, wird man probieren müssen). Bei allen Kondensatoren Folientypen wählen.
    Momentan sehe ich die PWM Spannungspegel als kritischsten Punkt was die Genauigkeit betrifft. Die Pegel sollten nämlich mit hoher Genauigkeit der Referenzspannung des ADC folgen. Normalerweise einfach, man nimmt ein CMOS Gatter und versorgt es mit der Referenzspannung des ADC und die Sache passt. Ich weiß allerdings kein CMOS Gatter, das sich mit 1V Betriebsspannung begnügt. Man sollte vielleicht etwas mit Analogschaltern bauen (CD4016 fällt mir spontan ein, bestimmt gibt es heute bessere). Man bräuchte dann z.B. 3 Schalter, einen PWM zur Referenzspannung, einen PMW zu Masse und einen schaltet man als Inverter, damit man nur ein Pin des MC zum Ansteuern der Beiden braucht.

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Also ich habs noch nicht probiert, hätte nur eine Schaltung, um es zu testen, aber ich verstehs noch nicht ganz...
    Wenn ich auf z.b. 50% Dutycycle einstelle, bekomme ich bei VCC = 3V3 genau 1.65V raus. Wenn jetzt aber der Sensor z.b. 1.4V ausgibt (nach dem Spannungsteiler), wie soll ich dann messen?
    Ich dachte du meintest, ich solle den Dutycycle so einstellen, dass die geglättete Spannung so genau wie möglich der Sensorspannung entspricht??

    Ja, bei Programmstart wird die PWM von 0 bis 100% durchfahren, um den Offset zu finden, dieser Wert wird gespeichert und bleibt konstant (bis der ADC an einen Anschlag läuft, dann wird der PWM Wert erhöht oder erniedrigt, um die Spannung wieder in Richtung Mitte des ADC zu bringen (zum Höhenwert wird dann eine konstante hinzugerechnet, um keinen Sprung im Höhenwert zu haben).)

    Ja, die PWM-Glättung ist der springende Punkt. Momentan habe ich ja einen passiven Tiefpass 2. Ordnung (ohne den OP miteinzubeziehen), mit den Werten R = 10k, C = 1µ, das ergibt eine Zeitkonstante von 10ms. Die Werte habe ich damals mit LTSpice simuliert, da war kein Ripple mehr zu sehen. Mittlerweile bin ich aber der Meinung, dass das nicht ganz richtig ist. Evtl. werde ich einen Tiefpass 3. Ordnung verwenden, was meinst du? Die Pwm Frequenz liegt bei 125kHz, kann aber nicht mehr vergrößert werden, weil das zu lasten der Auflösung ginge und dann evtl. der Offset nicht mehr gefunden werden kann.
    Die Zeitkonstante zu vergrößern ist keine gute Idee, da dann die Offsetfindung bei Programmstart zu lange dauert (momentan max. 255*50ms = 12.75s), außerdem muss wenn während dem Flug der Offset verschoben wird, auch wieder eine Weile gewartet werden, bis sich der neue Wert eingependelt hat.

    Gruß
    Chris

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    Also ich habs noch nicht probiert, hätte nur eine Schaltung, um es zu testen, aber ich verstehs noch nicht ganz...
    Wenn ich auf z.b. 50% Dutycycle einstelle, bekomme ich bei VCC = 3V3 genau 1.65V raus. Wenn jetzt aber der Sensor z.b. 1.4V ausgibt (nach dem Spannungsteiler), wie soll ich dann messen?
    Ich dachte du meintest, ich solle den Dutycycle so einstellen, dass die geglättete Spannung so genau wie möglich der Sensorspannung entspricht??
    das bezieht sich jetzt wohl auf meinen Alternativvorschlag aus meinem Post #8.
    Ich versuche meinen Gedanken an einem Beispiel zu konkretisieren, vielleicht sieht man dann deutlicher:
    Man erzeugt eine PWM mit einer Auflösung von 16 Bit, z.B. von 0 bis 3V3. Man glättet und reduziert mittels Spannungsteiler auf die Vergleichsspannung x V bis x+327,7 mV. Die 327,7 mVolt sind so gewählt, dass die Änderung von einem digit im PWM Wert eine Spannungsänderung von 5 uV (u = Mikro) der Vergleichsspannung gibt (das entspricht einem Zentimeter Höhe bei der Sensorspannung). Die vom PWM darstellbare Vergleichsspannung umfasst damit einen Bereich von etwa 650 Höhenmeter. Die Vergleichsspannung hat jetzt noch eine Restwelligkeit, die deutlich über 5uV liegt (vielleicht bei 1 mV um irgendeinen Wert zu nennen). Die Spannung x wird so gewählt, dass die PWM Spannung im Bereich der zu erwartenden Sensorspannung liegt (im einfachsten Fall Trimmpoti, vor Start einzustellen).
    Jetzt wird Vergleichsspannung und Sensorspannung mit einem Komparator verglichen. Die PWM wird so nachgeregelt, dass die Ausgangsspannung des Komparators ein Taktverhältnis von 1:1 hat. Dazu würde ich bei jedem Flankenwechsel ein Interrupt auslösen und verarbeiten. Die PWM Frequenz darf dabei relativ niedrig (z.B. 1kHz oder gar niedriger) sein, eine Restwelligkeit ist ja explizit erlaubt, ja sogar notwendig. Das Verfahren mit Auswertung des Tastverhältnis im MC vermeidet die langdauernde Glättung mit anschließender AD-Wandlung. Der gültige Höhenwert wird durch gleitende Mittelwertbildung des Compareregisters des Zählers ermittelt.

    Ja, die PWM-Glättung ist der springende Punkt. Momentan habe ich ja einen passiven Tiefpass 2. Ordnung (ohne den OP miteinzubeziehen), mit den Werten R = 10k, C = 1µ, das ergibt eine Zeitkonstante von 10ms. Die Werte habe ich damals mit LTSpice simuliert, da war kein Ripple mehr zu sehen. Mittlerweile bin ich aber der Meinung, dass das nicht ganz richtig ist. Evtl. werde ich einen Tiefpass 3. Ordnung verwenden, was meinst du? Die Pwm Frequenz liegt bei 125kHz, kann aber nicht mehr vergrößert werden, weil das zu lasten der Auflösung ginge und dann evtl. der Offset nicht mehr gefunden werden kann.
    Mit den Daten kann man schon eine Abschätzung machen. Wenn wir annehmen, dass die mittlere PWM Spannung 1,65V ist (bei 3V3 maximal), dann fließt bei jedem Aufladezyklus des Kondensators ein Strom von 1,65V/10k = 0,165mA. Der Aufladezyklus dauert eine halbe Periode, also 4 us. Die Ladung in den Kondensator ist also Q=0,165mA * 4us = 6,6e-10 C. Die Spannungsänderung (ripple) an 1 uF ist damit U=Q/C = 0,66 mV.

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    also diese Lösung ist für mich inakzeptabel, weil der ganze Prozess auf einem µC laufen soll, der doch schon etwas augelastet ist, sodass ich auf weitere Interrupts verzichten möchte. Auch die Idee, den Offset vor Start durch ein Poti einzustellen, ist kontraproduktiv, weil zuviel Aufwand und nicht standalone.
    Wenn ich deine Rechnung mal weiterführe, also den 2. Tiefpass auch noch miteinbeziehe, komme ich mit:
    Code:
    1.65V/10k = 0.165mA
    Q = 0.165mA * 4us = 6.6e-10
    U = Q / C = 6.6e-10 / 1e-6 = 6.6e-4
    
    6.6e-4/10k = 6.6e-8mA
    Q = 6.6e-8 * 4us = 2.64e-13
    U = Q / C = 2.64e-13 / 1e-6 = 2.64e-7
    bei 1V Referenz, 12Bit Auflösung und Gain=64 auf nichtmal 1Lsb Rauschen. In der Realität habe ich aber ca. 1.14mV Rauschen.
    Ist mein Layout womöglich so schlecht? Könnte es bei Bedarf ja mal reinstellen.

    Gruß
    Chris

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    also diese Lösung ist für mich inakzeptabel, weil der ganze Prozess auf einem µC laufen soll, der doch schon etwas augelastet ist, sodass ich auf weitere Interrupts verzichten möchte.
    Schade, von dieser Variante hätte ich mir einiges an Performancegewinn versprochen.

    Auch die Idee, den Offset vor Start durch ein Poti einzustellen, ist kontraproduktiv, weil zuviel Aufwand und nicht standalone.
    Diese Idee gefällt mir auch nicht (eher aus Gründen der Zuverlässigkeit, Potis fangen irgendwann zu "kratzen" an, das kann man hier nicht brauchen.
    Alternativ könnte man die PWM auf mehr als 2 byte ausweiten, das wäre auch kein riesiger Aufwand. Die machbare Frequenz wird dann aber schon langsam (je nachdem, welchen Timertakt du maximal zulassen kannst). Damit könnte man sich alles Kalibrieren vor dem Start sparen, weil der gesamte Meßbereich des Sensors im bester Auflösung erfasst wird.

    bei 1V Referenz, 12Bit Auflösung und Gain=64 auf nichtmal 1Lsb Rauschen. In der Realität habe ich aber ca. 1.14mV Rauschen.
    Die "Rechnung" war ja nur eine Abschätzung für ein rechteckiges Eingangssignal. Das läßt sich nicht ernsthaft über gekoppelte Tiefpässe fortsetzen. Momentan weiss ich nicht, ob eine Kaskadierung von Tiefpässen sinnvoll ist, oder ob man es mit einem Tiefpass mit möglichst niedriger Grenzfrequenz probieren soll. Das Thema hatten aber andere auch schon, wenn du z.B. im mikrocontroller.net die Suchbegriffe "pwm restwelligkeit" eingibst, kommt einiges zum Lesen. Alternativ über spice simulieren, das geht manchmal schneller.

    In der Realität habe ich aber ca. 1.14mV Rauschen.
    An welcher Stelle? Rauschen oder Restwelligkeit? Realität oder Simulation? Rauschen kommt mit Sicherheit über den Sensor rein, das kann man durch Tiefpassfilterung (Hardware, Software) auf Kosten der Bandbreite reduzieren. Das ist ja hier die eigentliche Kernfrage, gibt es hier noch Potential zum Optimieren?

    Ist mein Layout womöglich so schlecht? Könnte es bei Bedarf ja mal reinstellen.
    Glaube ich nicht. Für Tiefpässe von Meß- und Vergleichs- und Referenzspannungen sollte man ausschließlich Folienkondensatoren nehmen. Kerkos und Elkos nur zum Abblocken von unkritischen Betriebsspannungen.

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    31
    Beiträge
    1.578
    Hi,

    was genau meinst du mit Perfomancegewinn? Im Sinne von schneller reagierenden Eingangssignalen?
    Beim ATXMega lassen sich 2 16Bit Timer zu einem 32Bit Timer kaskadieren, das hab ich allerdings noch nicht gemacht, kann deswegen auch nicht sagen, ob damit dann noch PWM möglich ist, das liese sich aber herausfinden.
    Den momentanen Tiefpass 2. Ordnung hab ich schon mit Spice simuliert, da kommt am Ende kein messbarer / anzeigbarer Ripple mehr raus (nicht mal im µV Bereich), irgendwie will ich nicht glauben, dass das stimmt...
    Die 1.14mV hab ich direkt am ADC in der Realität, also nach dem Tiefpass 2. Ordnung. Ich nehme an, es ist Restwelligkeit, kein Rauschen (oder rauschen Widerstände so stark).
    Zum Sensor Rauschen gibts hier was: http://cache.freescale.com/files/sen...ote/AN1646.pdf , ich hab ja einen Spannungsteiler nach dem Sensor, diesem ist noch ein 220nF parallel geschaltet.
    Das ganze ist in SMD aufgebaut (0603), hab da bis jetzt immer nur Kerkos (X7R od. X5R) verbaut, hab aber auch noch nie andere Typen in der Bauform gesehen.

    Gruß
    Chris

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    was genau meinst du mit Perfomancegewinn? Im Sinne von schneller reagierenden Eingangssignalen?
    Ja, hätte ich erwartet. Die Routine gibt bei jeder Periode des PWM einen Output, ohne dass man auf eine Glättung warten müsste.

    Beim ATXMega lassen sich 2 16Bit Timer zu einem 32Bit Timer kaskadieren, das hab ich allerdings noch nicht gemacht, kann deswegen auch nicht sagen, ob damit dann noch PWM möglich ist, das liese sich aber herausfinden.
    Das geht einfacher auch, bei jedem Zählerüberlauf inkrementiert man ein Register, das ist dann das dritte Byte. Man muss das dritte Register nicht voll machen, sonst wird es zu langsam, bei 16MHz Zählertakt bekommt man nur noch etwa 1 Hz PWM.

    Den momentanen Tiefpass 2. Ordnung hab ich schon mit Spice simuliert, da kommt am Ende kein messbarer / anzeigbarer Ripple mehr raus (nicht mal im µV Bereich), irgendwie will ich nicht glauben, dass das stimmt...
    Ich auch nicht. Da ist wohl irgendwo ein Fehler drin.

    Das ganze ist in SMD aufgebaut (0603), hab da bis jetzt immer nur Kerkos (X7R od. X5R) verbaut, hab aber auch noch nie andere Typen in der Bauform gesehen.
    Folienkos gibt es auch in SMD, z.B. auch bei Reichelt, einfach mal danach suchen. Die keramischen Typen mit "X.." sind gut für Abblockkondensatoren. Sie haben verschiedene Eigenschaften (z.B. Mikrofonie, spannungsabhängige Kapazität), die sie für andere Anwendungen weitgehend disqualifizieren. Allerdings sind die erhältlichen Kapazitäten kleiner. Falls der zweite OP im Gehäuse noch frei wäre, könnte man mit dem einen Tiefpass (Integrator) auch mit einem kleinen Kondensator aufbauen.

    Die Appnote zum Sensor habe ich jetzt nicht angesehen, ich vermute dass die Welligkeit aus der PWM das Hauptproblem ist. In einer früheren Bastelei habe ich mal einen sample & hold Verstärker mit einem Analogschalter und einem kleinen Kondensator aufgebaut, das hat damals ganz brauchbar funktioniert. Die Idee ist, dass das geglättete PWM Signal vom Eingang des OP durch einen Analogschalter getrennt wird. Der Schalter wird immer nur ganz kurz durchgeschaltet und zwar immer in Phase zur PWM Spannung. Also z.B. immer bei einer Spitze des ripple. Damit kriegt man die Welligkeit ziemlich gut weg. Hinter dem Analogschalter sitzt der kleine Kondensator der nur die Spannung halten muss, bis zum nächsten Durchschalten (quasi als Analogspeicher).
    Noch eine Idee: Man kreiert ein gegenphasiges Ripple ohne Gleichstromanteil des PWM Signals und addiert das zum geglätteten PWM. Ist bestimmt einfacher als der S&H Verstärker.

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Schaltung, Servo überprüfen
    Von mechatronikilm im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 29.09.2012, 11:41
  2. Bitte Schaltung überprüfen - 3x Stepper Driver
    Von Netzman im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 08.12.2009, 17:11
  3. L200 Schaltung --- Bitte überprüfen
    Von PCF8574P im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 22.06.2009, 16:27
  4. Bitte meine Hexapod Schaltung überprüfen
    Von Roba im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 13
    Letzter Beitrag: 11.06.2009, 21:53
  5. Schaltplan überprüfen
    Von Mantra im Forum Elektronik
    Antworten: 22
    Letzter Beitrag: 19.05.2009, 01:11

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress