PPS5330 Labor-Netzteil hack

Beitrag #6396555 wurde von einem Moderator gelöscht.
Gast #6396575
Lesenswert?

zu den belegten Ports:
ELV ist mit den Pins recht verschwenderisch umgegangen, jede Taste ein 
Pin.
Das kann man multiplexen oder mit einem Port-Extender erledigen.
Serielle kommt unbedingt, zur Not mache ich das.
Hat jemand Vorschläge zum Protokoll?

PCINT16 RXD PD0 IC200/30 Stecker ST200/12 (Regler=Signal ob U oder I 
begrenzt)
PCINT17 TXD PD1 IC200/31 Taster  TA206 (Recall)

Ich bringe das auch in die 8kB unter, den Code kann man noch kompakter 
schreiben.
Wir pimpen das Ding ;-9

Zum Auslesen des Codes:  da habe ich wenig Hoffnung, dass der Hersteller 
vergessen hat, die Fuses entwprechend zu setzen.
#6396587
Lesenswert?

eProfi schrieb:
> Das kann man multiplexen oder mit einem Port-Extender erledigen.
> Serielle kommt unbedingt, zur Not mache ich das.
> Hat jemand Vorschläge zum Protokoll?

PeDas
per Timer Interrupt auch für Matrix geeignet
um wieviel Tasten geht es denn?
nur je weniger Tasten umso weniger nutzt Multiplex, eine I2C Tastatur 
mit PCF8574(a) habe ich erfolgreich eingesetzt, 8 Tasten direkt ohne 
Matrix im Timer IRQ gelesen und entprellt, PCF lesen irgendwas um 1.5µs, 
kein Beinbruch bei 10ms Timer IRQ, sogar IRMP Befehle kann ich noch 
verarbeiten.
Interrupt auf 15000/s in IRMP, dann bis 150 zählen -> 10ms und in die 
Entprellroutine, wer mag setzt einen Marker und gibt den IRQ noch mal in 
der 10ms frei um weitere IRMP entgegenzunehmen.
#6396807
Lesenswert?

Rolf D. schrieb:
> Im PPS5330 Netzteil gibt es 7 Tasten. Dafür würde ein 74HC165
> Schieberegister (parallel in seriell out) ausreichen.

Würdest du so eine Änderung an deinem vorhandenen Netzgerät oder bei 
einem zweiten, vollständig selbst konstruierten Gerät machen?
Im zweiten Fall würde sich ja gleich ein größerer Controller anbieten 
und natürlich ein anderes Display. Zur Messung der Temperatur(en) 
könnten digitale Sensoren benutzt werden. Ein zweiter Drehgeber wäre 
auch gut.
#6396871
Lesenswert?

Joachim B. schrieb:
> ich dachte auch an ATmega 1284p, wenn schon denn schon und immerhin 2
> serielle und Platz für alles inkl. Fernbedienung

Oder doch 'nur' ein 328PB? Wobei man sich ja erst dann auf den 
Controller festlegen kann und muss, wenn die Hardware festgezurrt ist.

Eine 'Fernbedienung' wäre klasse. Nützlich finde ich diese aber nur mit 
einer guten PC-Software. Mein TDK ist per RS232 fernsteuerbar, die 
verfügbare Software bietet aber nichts außer der Einstellung von U und 
I. Das kann ich auch direkt am Gerät - genau einmal angeschaut, dann nie 
wieder benutzt.
OP #6396889
Lesenswert?

Kann nichts ins EEPROM des ATmega88 schreiben. Steht immer nur Mist drin 
:(

Weis jemand Rat ?
1
//*************************************************************************
2
// EEPROM write
3
//*************************************************************************
4
void EEPROM_write(unsigned int adress, char data)
5
{
6
  /* Warten bis vorheriger Schreibvorgang beendet */
7
  while(EECR & (1<<EEPE));
8

9
  EEAR = adress; // Adresse an der das Byte im EEPROM geschrieben werden soll
10

11
  EEDR = data;   // Datenbyte, welches im EEPROM gespeichert werden soll
12

13
  EECR &=~ (1<<EEPM0); // Erase and Write in one Operation (siehe Datenblatt Programming Mode)
14

15
  EECR &=~ (1<<EEPM1);
16

17
  EECR |= (1<<EEMPE);
18

19
  EECR |= (1<<EEPE); // Starte EEPROM Write
20
}


Ich habe das davor mit dieser Funktion gemacht. Aber da kann ich keine 
Adressen übergeben.
1
eeprom_write_word (&eeFooWord, myByte);
OP #6398777
Lesenswert?

Hallöchen..

Ich muss noch ein paar kleine Fehler beseitigen (siehe Video) und dann 
bin ich fertig :)

Die Temperaturanzeige habe ich wie folgt programmiert. Wenn kein Strom 
fließt wird auf dem Display die Spannung, Strom und Temperatur 
angezeigt. Wenn ein Strom fließt wird die Temperatur alternierend mit 
der Leistung in Watt angezeigt.

Es können jetzt 16 Sollwerte Vorgaben für Spannung und Strom im EEPROM 
des ATmega88 abgespeichert werden. Mit der Taste "Memory" wird die 
Speicherfunktion aufgerufen und das "Memory" Symbol mit der 
Programmnummer wird angezeigt. Gleichzeitigt fängt die Programmnummer an 
zu blinken. Jetzt kann mit dem Encoder eine Programmnummer ausgewählt 
werden mit der die Sollwert-Vorgaben gespeicher werden. Mit der "Enter" 
Taste werden die Werte in das EEPROM geschrieben und die "Memory" 
Funktion beendet.

Das gleiche gilt für das Aufrufen von Sollwert-Vorgaben mit der "Recall" 
Taste. Mit dem Encoder wird die Programmnummer ausgewählt und mit 
"Enter" die Sollwert-Vorgaben geladen und die "Recall" Funktion beendet.

In einem Beitrag habe ich falsche Angaben über die Anzahl der 
Schreibzyklen auf das interne EEPROM im ATmega gemacht. Laut Datenblatt 
sind es keine 10.000 sondern 100.000 Schreibzyklen.


Kleines Video: https://youtu.be/3XXFefjjd7o

Gruß Rolf
Angehängte Dateien:
#6398871
Lesenswert?

Hallo, schöner Hack und Gratulation, dass Du es trotz der Ignoranz der 
Logabirumer-Edelelektronik-Schmiede hinbekommen hast. Eine 
Temperaturanzeige ist für mich persönlich nicht interessant, aber ich 
habe die Beiträge doch mit Interesse verfolgt und fand diese Arbeit sehr 
unterhaltsam und anregend!

Gruß
Holger
#6398933
Lesenswert?

Wie stabil lassen sich eigentlich kleine Ströme einstellen? Z.B. werden 
8mA als Sollwert vorgegeben, bleibt der Strom dann konstant oder 
schwankt/driftet er weg? Oder regelst du die Drift per Software nach?
Was mich auch interessieren würde ist, wie schnell die 
Ausgangsspannungen/-ströme verändert werden können.
#6399006
Lesenswert?

Ich spiele mit dem Gedanken, das Gerät nachzubauen. 'Natürlich' mit 
einigen Änderungen/Ergänzungen.
Angefangen habe ich damit, den ELV-Schaltplan in Eagle zu übernehmen. 
Der Analogteil ist im Prinzip fertig (der Schaltplan, nicht die 
Platine), über den Teil mit dem Controller denke ich noch nach. 
Vermutlich werde ich einen Atmega328PB einsetzten, DAC/ADC und ein 
Display mit ILI9341. Man wird sehen. Das gibt aber einen eigenen Thread, 
deinen möchte ich nicht kapern.
Gast #6399118
Lesenswert?

> Dabei habe ich die Spannung auf 10V eingestellt und den Strom auf 20mA.
> Die LED hats überlebt ;)
Ein vernünftiges Labornetzteil hat eine kleine Kapazität am Ausgang, 
damit solche Experimente nicht schief gehen ::
Erwin, da würde ich eher bei den Profis abschauen als bei ELV (47µF).

Rolf, interessiert dich eine PC-Schnittstelle nicht?
Kennlinien aufnehmen und so...

Meins kommt voraussichtlich morgen - freu.
OP #6399155
Lesenswert?

Hi Erwin :)

Die Idee finde ich sehr gut. Bin gespannt auf dein Projekt. Mein 
Programmcode für das Netzteil ist Open Source und wenn du willst kannst 
du oder andere ihn gerne benutzen oder ändern.

Der Einsatz eines 14Bit oder 16Bit DA/AD-Wandlers ist ein Vorteil 
bezüglich schneller und Regelung und störungsfreie Ausgangsspannung. Im 
PPS5330 arbeitet ein langsamer 14Bit AD-Wandler nach dem Prinzip des 
Zwei-Rampen-Wandlers (Dual-Slope). Für die Regelung von Strom und 
Spannung wird eine 14Bit PWM Steuerspannung geringer Taktfrequenz 
benutzt, was die Regelung noch zusätzlich verlangsamt.

eProfi schrieb:
> Rolf, interessiert dich eine PC-Schnittstelle nicht?
> Kennlinien aufnehmen und so...

Das müsste schon eine USB Schnittselle sein und das mit einem ATmega328 
? Ich weis nicht, ob das zu viel Resourcen frist.

>Meins kommt voraussichtlich morgen - freu.
Ja ist schon wieder Weihnachten ;)



Gruß Rolf
#6399159
Lesenswert?

eProfi schrieb:
> Ein vernünftiges Labornetzteil hat eine kleine Kapazität am Ausgang,

die auch u.U. bei 10V eine LED killt bevor die Strombegrenzung einsetzt.

Rolf D. schrieb:
> Ich hab mal
> einen Strom- und Spannungstest mit einer LED gemacht. Dabei habe ich die
> Spannung auf 10V eingestellt und den Strom auf 20mA. Die LED hats
> überlebt ;)

ich schalte LEDs immer einen R davor auch am Labornetzteil oder 
schliesse die Spannung vorher kurz.
Gast #6399187
Lesenswert?

Nicht unbedingt natives USB, sondern mit USB-Seriell-Chip wie zum 
Beispiel FTDI oder CH340, oder gleich mit WLAN (ESP32 o.Ä.).

Vor 4 Jahren hat jemand nach einer Fernbedienbarkeit gefragt:
Beitrag "ELV PPS 5330 Labornetzteil hacken -> Schnittstelle nachrüsten?"

Zum PWM habe ich gelesen, dass ein "kleiner" Ripple messbar ist:
https://de.elv.com/forum/500hz-auf-ausgangsspannung-611
In der Bedienungsanleitung 75915_pps5330_g_um_161014.pdf steht ja was 
von 1mVeff.
OP #6399191
Lesenswert?

Hier einige alte Messungen mit dem ELV PPS 5330 und Original Software

1.Bild - Rippel & Noise no LOad
2.Bild - Rippel & Noise 3A Load
3.Bild - 1A Load peak
4.Bild - 3A Load peak
5.Bild - 3A Load off peak

Die Lastmessung habe ich mit einer Elektronischen Last durchgeführt 
(6.Bild).

Gruß Rolf
#6399480
Lesenswert?

Joachim B. schrieb:
> wie soll eine Strombegrenzung auf den C44 wirken?

Andersherum. Stell die Ausgangsspannung auf 30V und die Strombegrenzung 
auf 10mA. Dann schließt du die LED am Ausgang an. C44 ist auf 30V 
geladen und gibt seine gespeicherte Energie direkt an die LED ab - dann 
greift erst die Strombegrenzung und regelt die Ausgangsspannung zurück, 
so dass nur noch 10mA fließen. Leider zu spät für die LED.
Ich habe das mit meinem Banggood Clone 
Beitrag "Re: Labornetzgerät - Fragen zum Schaltplan" getestet, 
dieses LNG hat nur 10µF am Ausgang. Auch hier stirbt die LED bei 
eingestellten 30V. Genauso übrigens an einem 10µ Elko, der auf 30V 
geladen wurde. Stabilere LEDs kaufen? Oder eben doch die Spannung 
runterstellen, bevor LEDs angeschlossen werden.
OP #6400891
Lesenswert?

Hallo

Ich habe noch ein paar Messungen in Bezug auf die Regelgeschwindigkeit 
der Ausgangsspannung im PPS5330 Netzteil gemacht.

1.Bild Anstiegszeit von 0V auf 30V ohne Last

2.Bild Anstiegszeit von 0V auf 30V mit 1A Last

3.Bild Anstiegszeit von 5V auf 30V mit 1A Last

4.Bild Abfallzeit von 30V auf 0V ohne Last

5.Bild Abfallzeit von 30V auf 0V mit 1A Last

Im Anhang eine aktualisierte Liste der Steuercodes für das LCD Display

Gruß Rolf
Angehängte Dateien:
Gast #6400944
Lesenswert?

> Ich habe noch ein paar Messungen in Bezug auf die Regelgeschwindigkeit

1s zum einschalten? Oh Backe. Probier mal aus wie das auf einen 
Lastsprung
von 1A reagiert. Und nimm da am besten nicht deine chinesische Last fuer 
weil man dies sonst vielleicht auch erst mal vermessen muesste.

Naja, wenigstens kannst du mit dem traegen Dingen Tantalelkos 
einschalten ohne das sich von der Platine huepfen. :)

Olaf
OP #6400962
Lesenswert?

Die Begründung für die träge Spannungsregelung im PPS5330 Netzteil liegt 
vermutlich an der niedrigen PWM-Frequenz des Steuersignals und der 
nachgeschaltet Filterschaltung, bestehend aus R53 und C34 (siehe Bild).

Diese hat eine Zeitkonstante von r * c = 0.726s (0.22Hz). Eine Erhöhung 
der PWM-Frequenz ist mit dem ATmega88 leider nicht möglich, da der Timer 
bei 14Bit Auflösung keine größere PWM-Frequenz erzeugen kann.

Gruß Rolf
Angehängte Dateien:
OP #6400983
Lesenswert?

Olaf schrieb:
> 1s zum einschalten? Oh Backe. Probier mal aus wie das auf einen
> Lastsprung
> von 1A reagiert. Und nimm da am besten nicht deine chinesische Last fuer
> weil man dies sonst vielleicht auch erst mal vermessen muesste.

Ok. Hab mal ein 12V/20W Halogenlämpchen genommen. Ausgangsspannung auf 
12V gestellt und das Lämpchen versucht prellfrei an die Ausgangsbuchsen 
anzuschließen (Bild).

Gruß Rolf
Angehängte Dateien:
Gast #6400997
Lesenswert?

Doch könnte er, wenn man den µC höher taktet. Ich lasse ihn oft mit 24 
MHz laufen. Ich sehe schon, ein DAC-IC muss her.


> oder erst die Ausgangsklemmen brücken, kurzschliessen bevor die
> LED angeschlossen wird und dann erst die Brücke entfernen, dann kann
> die Strombegrenzung gleich arbeiten und der Ausgangselko sich nicht
> über Gebühr aufladen!
Oder die Standby-Funktion verwenden (viel einfacher). Die guten LNT 
haben weniger als 1µF am Ausgang, was die Situation deutlich entschärft.

Danke für die Signalverläufe, Rolf. Interessant wären halt abrupte 
Lastwechsel, z.B. [0 oder 10 mA] -> 3A  und umgekehrt.

Ich werde das Ding sowieso massiv umbauen, 3-polige Netzbuchse und PE 
vorne herausführen. Dann kann man auch noch eine weitere Plus-Buchse mit 
Vorwiderstand für LED-Prüfungen anbringen. ;-)
Diese könnte gleich auch noch als Remote-Sense-Leitung dienen.
OP #6401023
Lesenswert?

eProfi schrieb:
> Ich werde das Ding sowieso massiv umbauen, 3-polige Netzbuchse und PE
> vorne herausführen. Dann kann man auch noch eine weitere Plus-Buchse mit
> Vorwiderstand für LED-Prüfungen anbringen. ;-)

Mir ist aufgefallen, dass ich beim Messen mit meinem Scope, die GND und 
Plus Klemmen am PPS5330 Netzteil immer vertauschen muss (Netzteil-PLUS 
an Scope-GND), da es sonst zu einem Spannungsabfall im Netzteil kommt. 
Liegt vermutlich an der speziellen Schaltung im Netzteil und das mein 
Scope geerdet ist !?
Gast #6401037
Lesenswert?

Weitere Gedanken: Warum ist die Spannung eigentlich auf 30,0V begrenzt?
Ich bin mir sicher, dass bei kleinen Strömen auch 35-40V gehen sollten.

D15 (Ausgangs-Verpolschutz) sollte mindestens 3A abkönnen, wenn man 
Netzteile seriell betreibt und das erste abregelt.

Dann die Sache mit der relais-schaltbaren Spannungsverdopplung, das ist 
doch Murks, weil die Cs C15 und C16 effektiv nur mit 50 statt 100 Hz 
nachgeladen werden --> unnötig hohe Trafobelastung durch hohen 
Nachladestrom.
Daher hat der Trafo auch 15,7V 9,8A und SI3 15A, bei 3A Ausgangsstrom?!?

Jedes bisschen bessere China-Netzteil hat da einen Trafo mit teilweise 
mehreren Anzapfungen und 100Hz-Gleichrichtung.

Wie ist das mit dem Power-Faktor? Müssen nicht alle Geräte >75W eine 
Oberwellenunterdrückung (PFC) haben?
#6401046
Lesenswert?

eProfi schrieb:
> Doch könnte er, wenn man den µC höher taktet. Ich lasse ihn oft mit 24
> MHz laufen. Ich sehe schon, ein DAC-IC muss her.

dann könnte er auch gleich den ATmega8 ersetzen durch Stärkeres und 
einen echten DAC verbauen, wäre sowieso mein Vorschlag.
Der kam auch schon mal wurde aber abgelehnt!

Seine Erkenntnisse zum Display sind ja auch da nützlich, die 
Regelgeschichte gefällt mir auch nicht!
Gast #6401053
Lesenswert?

> da es sonst zu einem Spannungsabfall im Netzteil kommt.
> Liegt vermutlich an der speziellen Schaltung im Netzteil und
> das mein Scope geerdet ist !?
Oh je, auch das noch. Vermutlich hängt es auch noch davon ab, wie herum 
der Netzstecker drinsteckt (Kopplungskapazitäten im Netztrafo).
Da sieht man halt wieder den Unterschied namhafter erfahrener Hersteller 
/ Spielzeug. Die alten Hasen wussten genau, was und warum sie etwas so 
und nicht anders machten.

Der Halogentest ist jetzt nicht so aussagekräftig, weil der 
Kaltwiderstand etwa 1/10 des Betriebswiderstandes ist. Dafür ist die 
Ausregelung noch relativ gut (geringer Überschwinger).
Gast #6401068
Lesenswert?

Wird die Trafotemperatur irgendwo ausgewertet oder angezeigt?
Ich würde ja lieber die statischen Anzeigen rechts für die beiden 
Temperaturen verwenden (abwechselnd wie gehabt).

Da noch 2 ADC-Eingänge frei sind, könnte man die unstabilisierte 
Spannung messen (und daraus die Transistor-Verlustleistung berechnen / 
integrieren).
#6401070
Lesenswert?

OP #6401363
Lesenswert?

eProfi schrieb:
> Wird die Trafotemperatur irgendwo ausgewertet oder angezeigt?
> Ich würde ja lieber die statischen Anzeigen rechts für die beiden
> Temperaturen verwenden (abwechselnd wie gehabt).
>
> Da noch 2 ADC-Eingänge frei sind, könnte man die unstabilisierte
> Spannung messen (und daraus die Transistor-Verlustleistung berechnen /
> integrieren).

Die Trafotemperatur wird nicht ausgelesen. Kommt vielleicht noch in 
einem Setup-Menü. Ich habe lieber die Werte für Ulimit und Ilimit immer 
im Blick. Da weis man sofort was los ist, wenn die Spannung mal 
einbricht.
Gast #6402763
Lesenswert?

Ideenansammlung:

Im Display-PDF bitte korrigieren:  Ampre: --> Ampere:
Im c-file Zeile 1293: // Stanby on  --> Standby
Die EinzelSegment-Befehle (z.B. für °) sind noch nicht aufgeführt.

> Mir ist aufgefallen, dass ich beim Messen mit meinem Scope, die
> GND und Plus Klemmen am PPS5330 Netzteil immer vertauschen muss
> (Netzteil-PLUS an Scope-GND), da es sonst zu einem Spannungsabfall
> im Netzteil kommt.
> Liegt vermutlich an der speziellen Schaltung im Netzteil und
> das mein Scope geerdet ist !?
Common der Regelung ist der +-Ausgang, das ist oft zu finden bei 
Netzgeräten. Vermutlich kommt die Störung über den Programmier-Adapter.
Entweder ist der Programmier-PC geerdet oder das (Laptop-?) Netzteil 
verbindet PC-Gnd über die Y-Entstör-Kondensatoren mit L und N.
Dann sowieso aufpassen beim Zusammenstecken:
den Netzstecker immer zuletzt einstecken und als ersten ausstecken!
Grund: beim Verbinden entladen sich die Y-Cs schlagartig mit hohem Strom 
evtl. über eine Datenleitung.

Am Gehäuserahmen gibt es in der Nähe der Netzbuchse einen 
6,3mm-Flachsteck-Erdungsanschluss.

> Zum PWM habe ich gelesen, dass ein "kleiner" Ripple messbar ist:
> https://de.elv.com/forum/500hz-auf-ausgangsspannung-611
> In der Bedienungsanleitung 75915_pps5330_g_um_161014.pdf steht
> ja was von 1mVeff.
Es sind 8000000/16384=488,28125 Hz
Wenn man den kleinen 8MHz-Resonator gegen einen 12MHz aus einem 
USB-Device austauscht, wird die Frequenz höher und der Ripple stärker 
bedämpft.
Ob dann der AD-Wandler noch funktioniert, ich denke schon, er könnte ein 
bisschen mehr rauschen.

Der Weihnachtsmann war da.
Habe die Spannungsverdopplungsschaltung mit LTspice simuliert, es ist so 
wie ich schrieb, die Trafoverluste sind 50-100% höher. Man könnte das 
umbauen, der Trafo könnte bifilar gewickelt sein, vielleicht sind beide 
Wicklungsenden zugängig. Das Ralais sollte dann 2x Um sein, damit man 
bei niedriger Spannung (24V) beide Spulen wie gehabt parallel schalten 
kann.
Der Trafo wird auch ohne Last leicht warm.

Zur langen Dauer nach Standby:
1
  if (Button_nr == 1 && Standby_flag == 0) {
2
    send_LCD_commands(Standby_on);
3
    set_Isoll(0);
4
    set_Usoll(0);
5
    print_value(0x43,0);
6
    print_value(0x47,0);
7
    Standby_flag = 1;
8
    return;
9
  }
Es sollte ausreichen, nur das Standby_on-Pin zu setzen und Isoll und 
Usoll bestehen zu lassen. Dann dürfte nach Standby_off die Spannung 
schneller steigen.

mehr als 30,0V / 3,00A:
Rolf, wie hoch sind denn Spannung und Strom, wenn man 7FFF PWM ausgibt?
OP #6402918
Lesenswert?

So viele Fragen ;)

Erst einmal danke für deine Hinweise :)



Ich fang mal mit der letzen Frage an. Dies betrifft die "Standby" 
Funktion.
Wenn ich die PWM Steuerspannung bei aktivierten Standby nicht auf Null 
setze,  entsteht beim deaktivieren von Standby ein großer positiver 
Spannungspeak auf der Ausgangspannung der um einge Volt höher ist als 
die eingestellte Spannung.

eProfi schrieb:
> Wenn man den kleinen 8MHz-Resonator gegen einen 12MHz aus einem
> USB-Device austauscht, wird die Frequenz höher und der Ripple stärker
> bedämpft.
> Ob dann der AD-Wandler noch funktioniert, ich denke schon, er könnte ein
> bisschen mehr rauschen.

Man könnte den Quarz von 8Mhz auf 16MHz ändern. Dann ist die 
Anstiegszeit etwas kürzer. Nachteil ist, das sich dadurch die Messzeiten 
am Integrator ändern und mann die Timer/Counter Werte ändern und die 
Messergebnisse für Spannung und Strom neu berechnen muss.

eProfi schrieb:
> Common der Regelung ist der +-Ausgang, das ist oft zu finden bei
> Netzgeräten. Vermutlich kommt die Störung über den Programmier-Adapter.
> Entweder ist der Programmier-PC geerdet oder das (Laptop-?) Netzteil
> verbindet PC-Gnd über die Y-Entstör-Kondensatoren mit L und N.
> Dann sowieso aufpassen beim Zusammenstecken:
> den Netzstecker immer zuletzt einstecken und als ersten ausstecken!
> Grund: beim Verbinden entladen sich die Y-Cs schlagartig mit hohem Strom
> evtl. über eine Datenleitung.

Ja du hattest Recht. Die Störungen kamen von ISP-Programmer. Hab das 
Scope testweise alleine an den Plus/Minus Buchsen des Netzteils 
angeschlossen. Keine Problem mehr :)

eProfi schrieb:
> Die EinzelSegment-Befehle (z.B. für °) sind noch nicht aufgeführt.
Die einzelnen Segmente lassen sich leider nicht alle getrennt 
ansprechen, sonder manchmal nur in Gruppen. Deshalb der Trick mit einer 
"2" und das Löschen und Setzen der anderen Segmente.

Gruß Rolf
OP #6402954
Lesenswert?

Rolf D. schrieb:
> Ich fang mal mit der letzen Frage an. Dies betrifft die "Standby"
> Funktion.
> Wenn ich die PWM Steuerspannung bei aktivierten Standby nicht auf Null
> setze,  entsteht beim deaktivieren von Standby ein großer positiver
> Spannungspeak auf der Ausgangspannung der um einge Volt höher ist als
> die eingestellte Spannung.

Siehe Bild:
PWM Steuerspannung bei aktivierten Standby nicht auf Null
Ausgangsspannung 5.00V und Spannungspeak wenn Standby Off
Angehängte Dateien:
#6403039
Lesenswert?

Rolf D. schrieb:
> Ok. Hab mal ein 12V/20W Halogenlämpchen genommen. Ausgangsspannung auf
> 12V gestellt und das Lämpchen versucht prellfrei an die Ausgangsbuchsen
> anzuschließen (Bild).

Uff, ich dachte mein Netzteil ist nicht besonders gut mit ca. 0.5ms 
Lastausregelung aber hier braucht das Teil ja fast 60ms...das ist 
heftig, übelst schlecht für ein Labornetzteil. Und dann bricht die 
Spannung auch noch weit über 50% ein, bei mir sind es nicht mal 5% 
Einbruch bei der Zuschaltung einer 1A Last. Also IMO steckt da aber noch 
mega viel Optimierungspotential drin.
#6403228
Lesenswert?

Rolf D. schrieb:
> Kann ja sein das es an meiner Software liegt

Darauf wollte ich mit meinem Post hinweisen. Versuch das mal 
nachzuvollziehen, vielleicht erstmal ein ganz simples Programm erstellen 
(auf Anzeigen und Co verzichten, mit durch im Code vorgegebenem 
Parametern wie Sollspannung und Sollstrom usw.).
Wie gesagt, 60ms Ausregelzeit sind für ein LNG mindestens zwei 
Ewigkeiten. Das geht IMO gar nicht (So etwas ist ja schon für das 
menschliche Auge „sichtbar“). 10ms wäre schon lang für ne 
Lastausregelung. Selbst für das Reinlaufen in die Strombegrenzung wäre 
das mit 60ms bis zur Ausregelung schon mindestens eine Ewigkeit. Stell 
dir nur mal vor du hast eine uC-Schaltung angeschlossen die alle 10 ms 
eine 1A Last bei 12V zuschaltet...Das würde dauern bis du dahinter 
kommst, dass die ständigen Resets des uCs von der schlechten 
Lastausregelung des LNGs kommen.
OP #6403668
Lesenswert?

Hallo

Ich habe den Belastungstest noch einmal mit normalen Widerständen 
gemacht.

Das Ganze sieht schon etwas besser aus. Die Spannung bricht im ersten 
Moment von 12V auf 9V zusammen und regelt innerhalb von 400usec nach.

1.Bild : Spannung 12V / 3.9 Ohm / 3A

2.Bild : Spannung 12V  12 Ohm  1A

Die verwendete Halogenlampe (12V/20W) in meinem vorlezten Belastungstest 
war nicht unbedingt geeignet, weil sie im Einschaltmoment einen sehr 
geringen Widerstand hat und die maximale Strombelastung des Netzteils 
übersteigt.

Gruß Rolf
Angehängte Dateien:
Gast #6403872
Lesenswert?

Eine Halogenlampe ist als Last eher ungeeignet, da sie ein PTC ist.
Die 60ms sind nicht die Ausregelzeit, sondern die Zeit, bis die 
Glühwendel bei 3A so heiß geworden ist, dass der Widerstand 12V/3A=4 Ohm 
ist.

Die Regelung funktioniert rein analog, der µC gibt über PWM-DAC den 
Sollwert vor.

Was ich mir noch zum 488Hz-Ripple überlegt habe:
Man kann die PWM-Unit auch mit 13 oder 12 Bits betreiben zu Gunsten der 
PWM-Frequenz zu Lasten der Auflösung.  Ich würde das als Menüpunkt 
aufnehmen.
#6403955
Lesenswert?

Rolf D. schrieb:
> Das Ganze sieht schon etwas besser aus. Die Spannung bricht im ersten
> Moment von 12V auf 9V zusammen und regelt innerhalb von 400usec nach

Die Regelzeit finde ich jetzt OK (Nicht besonders schnell aber noch OK, 
ist in der Tat bei meinem LNG ähnlich, hab das heute morgen mit der 
Halogenlampe auch gar nicht bedacht, dass das LNG dadurch wahrscheinlich 
in der Strombegrenzung war) aber der Einbruch ist IMO immer noch viel zu 
heftig. Man sieht aber auch, dass das anscheinend vom Regler kommt denn 
es ist recht egal ob man 3A oder 1A anfordert, der Einbruch ist in 
beiden Fällen ähnlich stark.
Gast #6403990
Lesenswert?

Gerade sehe ich, dass es ein sehr ähnliches Labornetzteil SPS5630, 30V 
6A, allerdings als Schaltnetzteil mit SG3524A-PWM-Regler, SPP15P10P-FET 
und STPS10L60D/FP Schottky, gibt.
Fertig  185,16 Artikel-Nr. 083569 EAN: 4047976835690
Bausatz 175,41 Artikel-Nr. 083399 EAN: 4023392833991
Der Digitalteil ist praktisch identisch, nur die Linear-Endstufe wurde 
durch den Schaltregler ersetzt.  6A liefert es nur bis 12V, darüber geht 
der Strom zurück auf 2,5A bei 30V (75W), das 5330 kann 30V*3A=90W.
Der Trafo hat 32V 4,8A.
Hier im Forum gibt es 2 Beiträge dazu:
2011: Beitrag "Aufbau Schaltnetztzeil SPS5630"
2015: Beitrag "Problem mit ELV Netzteil Bausatz PPS 5630" mit Bauanleitung
Bauanleitung  Best.-Nr.: 75572   Version 2.0   Stand: März 2008
https://www.mikrocontroller.net/attachment/56486/elv.pdf
3,79 MB, 94304 Downloads !   Es ist die einzige Stelle im weiten WWW, an 
der das PDF (Bau- und Bedienungsanleitung SPS 5630) zu finden ist.
Gast #6404012
Lesenswert?

> Die Begründung für die träge Spannungsregelung im PPS5330 Netzteil liegt
> vermutlich an der niedrigen PWM-Frequenz des Steuersignals und der

Ja das ist der Grund. Nach meinem Post dachte ich mir das auch noch.
Aber okay, das ist dann wohl okay. Solange man das Teil nicht schnell 
durchfahren will wird man damit leben koennen. Auch wenn sicher 2-3x 
schneller nett waer.
Im letzten Horrowitz und Hill (X-Chapter) war ein interessanter Trick 
drin wie man die PWM ein bisschen schneller bekommt.

Ich weiss aber nicht ob ich Elkos im Filter verwendet haette.

Olaf
OP #6405098
Lesenswert?

Hallöchen

Ich habe noch ein paar Vergleichsmessungen mit meinem PPS5330 und einem 
Siglent SPD3303X gemacht.

Siglent SPD3303X:
2x 32V/3.2A
1x 2.5/3.3/5V 3.2A

ELV PPS5330:
1x 30V/3A

1a.Bild: Siglent Spannungs Peak  12V/3A Last
1b.Bild: PPS5330 Spannungs Peak  12V/3A Last

2a.Bild: Siglent Standby_off Peak 12V/3A Last
2b.Bild: PPS5330 Standby_off Peak 12V/3A Last

3a.Bild: Siglent Standby_off Peak 12V ohne Last
3b.Bild: PPS5330 Standby_off Peak 12V ohne Last

4a.Bild: Siglent Spannungs Peak Halogen 12V/20W
4b.Bild: PPS5330 Spannungs Peak Halogen 12V/20W


Gruß Rolf
Angehängte Dateien:
OP #6405253
Lesenswert?

Hallöchen..

Mit einer kleinen Trick habe ich versucht, die Anstiegszeit der 
Ausgangsspannung nach einem Standby zu verkürzen.

Der Trick bestand darin, das ich vor der Aktivierung der 
Entstufentransitoren (T2-T5) durch die Standby-Leitung (T9), die PWM 
Steuerspannung an den Anschlüsse Usoll und Isoll einschalte und erst 
danach mit einer kleinen Zeitverzögerung von 1sec die 
Enstufentransistoren freigebe.

Leider hat das nicht funktioniert, weil am Ausgang wieder hohe 
Spannungsspitzen zu messen waren (siehe Bilder). Schade.. Verstehen tuh 
ich das nicht ? :(

2.Bild: soft_delay ca 0.1sec vor Standby_off (ohne Last)
3.Bild: soft_delay ca 1sec   vor Standby_off (ohne Last)


Standby Funktion u.a.
1
//*************************************************************************
2
// Button function
3
//*************************************************************************
4
void buttonFunction (uint8_t Button_nr)
5
{
6
  // Standby on -------------------------------------------------------- 
7
  if (Button_nr == 1 && Standby_flag == 0) {
8
    set_Isoll(0);
9
    set_Usoll(0);
10
    send_LCD_commands(Standby_on);
11
    Standby_flag = 1;
12
    return;
13
  }
14
  // Standby off -------------------------------------------------------
15
  else if (Button_nr == 1 && Standby_flag == 1) {
16
    read_Ulimit();    // read Ulimit from EEPROM
17
    read_Ilimit();
18
    set_Usoll(Ulimit);
19
    set_Isoll(Ilimit);
20
    Standby_flag = 0;
21
    if (Ulimit >= 15000) {
22
      SPI_wr2(0xB1);      // Relais on  unregulated VDC 48.0V
23
    }
24
    else if (Ulimit <= 14500) {
25
      SPI_wr2(0xB0);      // Relais off  unregulated VDC 24.0V
26
    }
27
    soft_delay(100);
28
    send_LCD_commands(Standby_off);
29
    return;
30
  }
31
....
32

33

34

35
//*************************************************************************
36
// set Usoll (0 - 30.000mV)
37
//*************************************************************************
38
void set_Usoll (uint16_t Usoll_value)
39
{
40
  uint8_t Digi_offset = 120;
41
  #define Umax 30000
42
  //#define counts_per_30v 15419
43
  
44
  if (Usoll_value == 0)
45
  {
46
    OCR1A = Digi_offset;
47
    return;
48
  }
49
  else Digi_offset = 127;
50
  
51
  uint16_t counts_per_30v = 15423;
52
  uint32_t u_factor = (counts_per_30v * 65536 / Umax);
53
  OCR1A = Digi_offset + ((Usoll_value * u_factor) >> 16) +
54
  (((Usoll_value * u_factor) >> 15) & 1);
55
}
56

57

58
//*************************************************************************
59
// set Isoll
60
//*************************************************************************
61
void set_Isoll (int Isoll)
62
{
63
  const uint8_t offset = 160;
64
  OCR1B = offset + (((int32_t)Isoll * 10000) / 2045);  // OCR1B 600=100mA 1200=230mA
65
}

Könntes es vielleicht an C21 in der Standby-Schaltung liegen ??
Angehängte Dateien:
Gast #6406421
Lesenswert?

1
void set_Isoll (int Isoll)
2
{
3
  const uint8_t offset = 160;
4
  OCR1B = offset + (((int32_t)Isoll * 10000) / 2045);  // OCR1B 600=100mA 1200=230mA
5
}
6

7
kürzer:
8
void set_Isoll (int Isoll){
9
  OCR1B = 160 + ((Isoll * 1252UL) >> 8);  // OCR1B 600=100mA 1200=230mA
10
}

> Könntes es vielleicht an C21 in der Standby-Schaltung liegen ??
Eher das Zusammenspiel C21 + C33 und bei Stromreglerbetrieb C26.
Funktion des Spannungsreglers:
Beispiel Uout=30,00
PWM=94,9% ((127+15423)/16384)
U(R52)=94,9/100*5/2=2,372V
Der Offset 127 kommt aus dem Spannungsteiler R50 (100) und R51 (22k auf 
-5V)

Der Verstärkungsfaktor ist (R47 || R48) / (R49+R50) und ist
150/2/5,7=13,15789474
* 2,372= 31,21052632
- Offset  --> 30V

d.h. R53  C34  und R50  C34  bilden ein PT2-Glied, das gegen das 
PT1-Glied (interne Treiberwiderstand IC201/30) / C21 arbeitet, so ein 
Murks.

Beim Stromregler ist das PT2 R43  C27 und R40  C26.
#6407305
Lesenswert?

Rolf D. schrieb:
> Ich habe noch ein paar Vergleichsmessungen mit meinem PPS5330 und einem
> Siglent SPD3303X gemacht.

Sehr schöner vergleich. Das SPD3303X ist ein, ich sag mal, 
durchschnittliches Labornetzteil, und an dem Vergleich sieht man jetzt 
mal wie krass schlecht das PPS5330 ist. Sicher, das PPS5330 kann man 
durchaus nutzen aber es ist halt, meiner Meinung nach, mega schlecht. 
Wenn man die Wahl hat...also kaufen würde ich das nicht.
Ich drück dir die Daumen, dass du es noch ein wenig optimiert bekommst.
Gast #6407347
Lesenswert?

M. K. schrieb:

> ... sieht man jetzt mal wie krass schlecht das PPS5330 ist.
> ... meiner Meinung nach, mega schlecht.

Das ist aber nur die Meinung eines unbedarften Bastlers, die er 
offensichtlich nicht mit technischen Fakten belegen kann.

Eine Antwort erübrigt sich, da ich hier nicht mitlese. Danke für dein 
Verständnis.
#6407371
Lesenswert?

Maulbeere schrieb:
> Das ist aber nur die Meinung eines unbedarften Bastlers, die er
> offensichtlich nicht mit technischen Fakten belegen kann.

Soso...solche User sind immer die Besten. Vor allem wenn man dann noch 
mit

Maulbeere schrieb:
> da ich hier nicht mitlese

um die Ecke kommt. Warum meldet man sich dann überhaupt zu Wort? Na, der 
Username ist anscheinend richtig gewählt.

Rolf D. schrieb:
> Die Strombegrenzung ist auch noch etwas merkwürdig. Sie reagiert zwar
> sehr schnell, aber wenn die Belastung bei 5 Volt Sollspannung abfällt,
> ist eine Spannungsspitze von über 1 Volt am Ausgang messbar (siehe
> Bild).

Das liegt wahrscheinlich schon in den anderen Beobachtungen begründet. 
Wie schnell die Strombegrenzung ist kann man hier auch schwierig 
abschätzen, könnte aber OK sein wenns so maximal 10-20ms sind. Ich 
glaube aber nicht, dass die schneller als 1-2ms sein wird.
Gast #6407799
Lesenswert?

Wenn Du genau sagst, was ich messen soll, mache ich das morgen.
Generell: ein bisschen mehr dazu schreiben (oder in den Videos sagen) 
was Du gerade machst und warum.
Die Überspannung kommt aus dem selben Grund wie beim Standby:
Der Stromregler greift und hat Priorität, und der Spannungsregler macht 
voll auf, weil die Spannung ja zu gering ist.
Fällt die Last weg, übernimmt der Spannungsregler, der aber voll offen 
ist.
Bis der herunterregelt, ist halt die Spannung zu hoch.
Das liegt hauptsächlich an den Elkos in der Regelung. Nur: wenn man die 
kleiner macht, könnte das Ding losschwingen (zum Oszillator werden).
Da muss man feinfühlig optimieren.
Eine LTspice-Simulation wäre angebracht. Aber der mechanische Aufbau 
spielt ja auch noch eine Rolle (parasitäre Rs, Ls und Cs).
Gast #6407846
Lesenswert?

Mich würden folgende Messungen interessieren:
-  Spannungsanstiegszeit mit Standby off  auf 5V ohne und mit Last.
-  Spannungsstabilität bei steigender Temperatur unter Last

Im Voraus schon mal ein Dankeschön für deine Mühe.

Gruß Rolf
Gast #6409097
Lesenswert?

Heute gemessen: sieht ähnlich aus wie bei Dir:
5V 1A Last-Abwurf geht die Spannung auf 8V hoch und in 350ms linear 
herunter.
Allerdings sehe ich bei 1A einen 500kHz-400mV-Ripple, das muss ich noch 
genauer untersuchen, das kann auch am Aufbau liegen.
Nach Standby dauert es über 1 Sekunde, bis die 5V vollständig da sind, 
egal ob mit oder ohne Last.
Hohe Temperaturen mache ich später.
OP #6409293
Lesenswert?

Danke Dir. Dann liegt es nicht an meiner Software. Schon mal gut zu 
wissen.

Jetzt mal schaun wie stabil die Ausgangsspannung ohne Last und mit Last 
ist. Hab das Gerät im kalten Zustand ohne Last auf 10V eingestellt und 
dann 20min gewartet und noch einmal gemessen.


Start ohne Last: Temp.: 24.0'C  Usoll: 10V    Uist: 10.005V
nach 20min       Temp.: 27.6'C  Usoll: 10V    Uist: 10.001V

danach direkt mit Last 10V/1000mA gemessen
                 Temp.: 27.6'C  Usoll: 10V    Uist: 9.977V
nach 30min       Temp.: 44.3'C  Usoll: 10V    Uist: 9.974V

Die Temperaturmessung erfolgte am Kühlkörper und die Spannungsmessung 
direkt an den Ausgangsklemmen.
Gast #6410428
Lesenswert?

> .alter Schwede, da kannst ja von Hand schneller

Sowas hab ich auch gerade gedacht. Sowohl die Groesse wie auch
die Zeitdauer sind erschuetternd!

Ich geb zu, ich hab mich seit 20Jahren nicht mehr mit linearen 
Netzteilen beschaeftigt. Man kauft sie halt und sie haben funktioniert. 
Aber sowas sollte man doch besser hinbekommen. Erst recht bei 
irgendwelchen Bausaetzen wo es doch egal ist ob da ein OP drin ist der 
0.5Euro mehr kostet, oder gar ein zweiter.

Olaf
OP #6410483
Lesenswert?

Hallöchen..

Vielleicht könnte man den Ausgang über eine "Ideale Diode" schaltbar 
machen.

Ideale Dioden zeichnen sich dadurch aus, dass sie hohe Spannungen und 
Ströme schalten können und einen sehr geringen Durchlasswiderstand von 
wenigen Milliohm besitzen.

Der Spannungsabfall am Ausgang wäre je nach Bauart und Aufwand sehr 
gering.

Link: 
https://praktische-elektronik.dr-k.de/Praktikum/Analog/DiodenTransistoren/Le-Ideale-Diode.html
Angehängte Dateien:
#6410509
Lesenswert?

Olaf schrieb:
> Erst recht bei
> irgendwelchen Bausaetzen wo es doch egal ist ob da ein OP drin ist der
> 0.5Euro mehr kostet, oder gar ein zweiter.

Am OP liegt es nicht sondern an der Schaltung ansich. Selbst eine 
Schnecke von LM358 und ähnliches bekommt das schneller hin.

Rolf D. schrieb:
> Vielleicht könnte man den Ausgang über eine "Ideale Diode" schaltbar
> machen.

Das wäre eine Idee, vielleicht schaust du mal via LTSpice ob das 
wirklich interessant wäre.
OP #6410546
Lesenswert?

An dem langsamen Regelverhalten würde sich ja nichts ändern. Man müsste 
schon die Netzteilschaltung an sich ändern. Die Strombegrenzung reagiert 
innerhalb von 2ms und ist damit ausreichend schnell. Die 
Spannungsregelung ist dafür aber sehr langsam (> 700ms von 0V auf 10V).
#7610855
Lesenswert?

Schade dass das Thema damals irgendwie eingeschlafen ist. Ich habe es trotzdem gewagt, mein hier im Forum günstig erstandenes PPS5330 mit der FW von Rolf zu flashen, als "Spiel-Objekt". Hat problemlos geklappt. Mal schauen, ob ich die noch fehlende Kalibrierfunktion programmiert bekomme. Habe aber bisher nichts mit AVRs zu tun gehabt... Ach ja: Die Original-FW ist wie vermutet auslesegeschützt.

#7610900
Lesenswert?

Rolf D. schrieb:

Beim Versuch die alte Firmware auszulesen, habe ich die Firmware gelöscht.

Alleine der Versuch die geschützte FW auszulesen löscht noch nichts - man bekommt auch keinen Fehler, sondern halt nur 0xFF's zurück. Aber im Microchip Studio liegt der Erase-Button natürlich in gefährlicher Nähe zum Read-Button...

Rolf D. schrieb:

Ich denke man kann an meiner Firmware bestimmt noch einiges verbessern.

Bis auf die fehlende Kalibrierfunktion (mein Gerät liegt mit deiner FW rund 0.1..0.2V bzw. 0.1A daneben), ist eigentlich alles drin, was auch das Original kann. Und mit der Temperaturanzeige sogar noch mehr.

OP #7610902
Lesenswert?

Hallo Klaus

Bevor du das Labor-Netzteil neu flascht, kannst du vielleicht ein paar Messungen machen. Zum Beispiel Anstiegs- und Abfallzeiten der Ausgangsspannung. Oder das Verhalten bei einer Strombegrenzung. Diese Test habe ich am Anfang meines Umbaus leider nicht gemacht.

Gruß Rolf

#7611231
Lesenswert?

So, da heute eh' kein Tatort lief, hab ich mal ein bisschen angefangen.

Kalibrierung lässt sich beim Einschalten durch Druck von "<-" und "->" starten, oder wird automatisch gestartet, falls noch keine gültige Kalibrierung im EEPROM hinterlegt ist. Ich habe mal 5V und 25V als zu kalibrierende Werte genommen, Einstellung mit Drehencoder und Bestätigung mit Enter. Mit beiden Werten werden Offset und Steigung berechnet und im EEPROM gespeichert.

Funktioniert soweit für Spannung einwandfrei. Strom habe ich noch nicht gemacht, sollte aber analog gehen und kein Problem sein.

Die "automatic voltage regulation" musste ich rausnehmen, da die Messwerte bei mir noch deutlich abweichen. Das ist dann die übernaächste Baustelle, vermutlich sollte man die Messung bei der Kalibrierung des Ausgangs gleich mit kalibrieren.

Eigentlich würde ich den Code gerne auf github werfen oder so, aber 98% sind von dir Rolf - was hältst Du davon? Hier im Forum gibt's einfach keine Versionskontrolle und Historie, das taugt nicht wirklich. Und nicht deutschsprachige Interessenten werden das hier auch kaum finden, wobei das ELV Netzteil vermutlich sowieso nur im Deutschsprachigen Raum verkauft wurde...

OP #7614961
Lesenswert?

Hallöchen..

Habe die neue Firmware jetzt aufgespielt. Funktioniert super. Die zwei Zahlen oberhalt von der "Standby" Anzeige sind das die Temperaturen ?

Irgentetwas stimmt da aber noch nicht mit der Kalibrierung von Strom und Spannung. Die Anzeigenwerte am Netzteil stimmen nicht (siehe Bild). Ich habe nach dem 1.Einschalten Spannung und Strom abgelichen bzw kalibriert ?

Gruß Rolf

Angehängte Dateien:
#7614995
Lesenswert?

Rolf D. schrieb:

Hallöchen.. Habe die neue Firmware jetzt aufgespielt. Funktioniert super. Die zwei Zahlen oberhalt von der "Standby" Anzeige sind das die Temperaturen ?

Ja. Wobei für die das gleiche gilt wie für Strom- und Spannungsmessung: Die werden alle noch nicht abgeglichen, ich habe nur Werte eingetragen, die bei mir einigermaßen passten. Mit deiner Firmware hat mein Netzteil 45 Grad angezeigt kurz nach dem Einschalten. Der Abgleich ist bisher ausschließlich für die PWM da, und lässt sich beim Druck auf die beiden Pfeiltasten beim Einschalten auch jederzeit wiederholen.

OP #7615586
Lesenswert?

Hallo Klaus

Hab deine aktuelle Firmware 199b5 gerade getestet. Spannungs- und Strom Kalibrierung funktioniert jetzt. Die Temperaturanzeige werde ich für mich wieder abändern. Ich fand das in meiner alten Firmware besser. Da wurde nur die Temperatur für den Kühlkörper im Wechsel mit der Leistungsanzeige angezeigt. In deiner Version ist die Trafo- und Kühlkörper Temperatur nicht eindeutig erkennbar.

Hab ein kleines Video gedreht..
Link: https://youtu.be/1CG0pDNu2Fw

Gruß Rolf

#7615612
Lesenswert?

Rolf D. schrieb:

n deiner Version ist die Trafo- und Kühlkörper Temperatur nicht eindeutig erkennbar.

Das stimmt, ist halt Geschmacksache. Ein Netzteil hat Strom und Spannung zu verteilen, und die Leistung auf einen BLick zu sehen finde ich auch nicht verkehrt. Die interne Temperatur in einem Netzteil interessiert mich eigentlich überhaupt nicht... wenn doch dann würde ich die durch irgendeinen langen Tastendruck anzeigbar machen.

OP #7616907
Lesenswert?

Aktuelle Firmware 199b7 partly revised button handling (using timer interrupt for debouncing) added seperate Contrast / Backlit settings like in original firmware, with backlit timeout in minutes Link: https://github.com/feelfree69/pps5330

Kann mal jemand überprüfen, ob die Original Firmware eine Temperatur Kompensation hat ? Eine Kalibrierung des Netzteisl habe ich nach 2 Std Betriebszeit durchgeführt. Jedenfalls ändert sich in der Firmware Version 199b6 mit steigender Kühlkörper Temperatur die Ausgangsspannung (sinkt). Im Einschaltmoment ohne Last habe ich bei 5.00V Einstellung eine Ausgangsspannung von 5.04 Volt. Bei 25.00V ist die Ausgangsspannung 25.04V. Die Ist-Werte von Spannung und Strom auf der LCD-Anzeige stimmen mit den gemessenen Ausgangswerten Werten überein.

OP #7618384
Lesenswert?

Messung der Strombegrenzung (Überstromschutzschaltung) im PPS5330

Die Bilder 1+2 zeigen die Messung der Strombegrenzung im PPS5330 bei 15V/ 100mA und 15V/1000mA. Das Netzteil reagiert innerhalb weniger Mikrosekunden und geht dann in die Strombegrenzung. Die dabei auftetenden Spannungsspitzen bleiben unterhalb der eingestellten Ausgangsspannung.

Im Vergleich reagiert das Korad KA3005P Labornetzteil etwas langsamer und benötigt ca. 4 Millisekunden (Bild 3).

Bei Laständerung von 15V/0A auf 15V/2.5A reagiert das PPS5330 Labornetzteil innerhalb von weniger als 1 Millisekunde (Bild 4).

Angehängte Dateien:
OP #7618435
Lesenswert?

Messung des Ein- und Ausschaltverhaltens über den Standby-Taster am PPS5330

Beim Einschalten der Ausgangsspannung über den Standby-Taster kann das PPS5330 Labornetzteil leider nicht punkten. Egal wie groß die Last am Ausgang ist, benötigt das Netzteil ca. 1.5 Sekunden bis die Spannung stabiel anliegt (Bild 1+2). Die Ausschaltzeit beträgt je nach Last (0mA - 3A) zwischen 1.5 Sekunden und 240 Mikrosekunden (Bild 3+4).

Angehängte Dateien:
OP #7619072
Lesenswert?

Danke für deinen Tip. Werde ich mal testen :)

Es gibt von Klaus auf github wieder ein Firmware Update Version 199b9 Link: https://github.com/feelfree69/pps5330

199b9 code cleanup, reduce flash footprint Key-combination <-,-> and MEMORY for zeroing EEPROM -> resets calibration and all user settings

199b8 added panel lock funtion (long-press "<-" and "->" simultaneously for toggling) like in original firmware

199b7 partly revised button handling (using timer interrupt for debouncing) added seperate Contrast / Backlit settings like in original firmware, with backlit timeout in minutes

199b6 added calibration of internal ADC measurements for U and I

199b5 code cleanup, cosmetics

199b4 add menu for display-settings (long press U/I), encoder/arrows for changing, enter for exit recall-button: blinky display of stored values before applying remove more magic numbers in code rework button handling (still room for improvement...)

199b3 added T2 (transformer) measurement toggle T1/T2 at 2-digit memory section decrease interval for temperature measurements

199b2 Added Current calibration

199b1 Minor code cleanups (or mess-up's, dependend on your view..) Display firmware version at startup Added Voltage calibration

OP #7619141
Lesenswert?

Messung der Strombegrenzung mit LED

Messspannung 10V und Strombegrenzung auf 20mA. Messobjekt rote LED.

Innerhalb von 2 Millisekunden reagiert die Strombegrenzung im PPS5330 und begrenzt den Strom für die LED auf 20mA. Im Vergleich dazu ist das NGE100 Netzteil von R&S etwas langsamer und benötigt 25 Milisekunden (Bild 2). Die gemessenen Spannungsspitzen liegen beim NGE100 mit 10V etwas höher. Beim PPS5330 habe ich maximal 6V gemessen (siehe Bild 1).

Gruß Rolf

Angehängte Dateien:
Beitrag #7619602 wurde von einem Moderator gelöscht.
OP #7619713
Lesenswert?

Temperaturen des PPS 5330 Labornetzteil gemessen nach dem Einschalten ohne Last bei einer Raumtemperatur von 22 C. Gehäuse geschlossen

T1 = KTY81-121 Temperatursensor am Kühlkörper Me = Messfühler am Kühlkörper (K type -40C~40C, 0.1C +-(2.0%+30)) Tr = KTY81-121 Temperatursensor am Transformator

Berechnung der Kühlkörper Temperatur

1
#define calib_offset_temp 5690      // Calibration to be done
2
#define calib_factor_temp 193803    // Calibration to be done 
3
uint16_t result = (((uint32_t)meas_time - calib_offset_temp) * calib_factor_temp) >> 16;

Kaltstart ohne Last T1 = 20.7 C Me = 20.5 C Tr = 20.0 C

Nach 60 Minuten ohne Last T1 = 27.8 C Me = 28.3 C Tr = 34.0 C

Temperaturen nach 60 Minuten Last von 5 Watt (5V/1000mA) T1 = 47.0 C Me = 46.5 C Tr = 40.0 C

Temperatur nach weiteren 60 Minuten Last von 10 Watt (5V/2000mA) T1 = 60.6 C Me = 58.2 C Tr = 45.0 C

OP #7619846
Lesenswert?

Hab die Werte für die Berechnung der Kühlkörper Temperatur noch etwas verändert, da die angezeigten Temperaturen vom T1 Sensor zu hoch waren.

1
#define calib_offset_temp 5695      // Calibration to be done
2
#define calib_factor_temp 191190    // Calibration to be done 
3
uint16_t result = (((uint32_t)meas_time - calib_offset_temp) * calib_factor_temp) >> 16;

Im Bereich zwischen 30C und 70C stimmen die Temperaturen vom Messgerät und T1 Sensor mit +- 0.5 C überein.

OP #7620570
Lesenswert?

Die angezeigten Temperaturen im PPS 5330 Labornetzteil waren immer noch etwas ungenau. Aus diesem Grund habe ich einen Digitalen Temperatursensor (DS1820) parallel zum Temperatursensor am Kühlkörper installiert und die Werte miteinander verglichen (Bild 1+2). Dadurch konnte ich die Werte für die Kalibrierung genauer bestimmen.

1
#define calib_offset_temp 5717      // Calibration to be done
2
#define calib_factor_temp 185150    // Calibration to be done 
3
uint16_t result = (((uint32_t)meas_time - calib_offset_temp) * calib_factor_temp) >> 16;
Angehängte Dateien:
OP #7621213
Lesenswert?

Die beiden KTY81-121 Temperatursensor zeigen unterschiedliche Temperaturen an. Ich habe beide Sensoren demontiert und im freien Raum mit dem digitalen Temperatur IC DS1820 verglichen. Eine Sensor zeigt 12.5 C an und der andere 20 C. Die 20 C entsprechen ungefähr dem Messwert vom ditalen Temperatur IC. Der Code für die Messwerterfassung beider Sensoren ist identisch. Ich schau mir jetzt mal beide Sensoren T1 und T2 an und die vorgeschalteten Reihenwiderstände R59 und R60 die an +5V gehen. Vielleicht gibts da irgendwelche Ungereimtheiten ?

Angehängte Dateien:
OP #7621460
Lesenswert?

Hab leider nichts entdeckt. Um auszuschließen, dass einer der beiden Temperatursensoren defekt ist oder zu stark streut, habe ich beide Sensoren durch zwei Widerstände (1kOhm 1%) ersetzt. Dabei traten wieder unterschiedliche Messwerte auf. T1 hatte 18 C und T2 hatte 26 C. Nach der Temperaturtabelle vom KTY81/121 liegt der Wert bei 1KOhm zwischen 25-30 C. Die Messung für T2 scheint ok zu sein. Aber bei T1 scheint also etwas nicht zu stimmen. Versuchsweise habe ich den Eingangskanal für T1 am Multiplexer auf einen nicht benutzten Kanal (7) am Multiplexer gebrückt. Hatte danach aber das gleiche Ergebniss. Die Bauteile am Messeingang habe ich nachgemessen. Keine großen unterschiede vestgestellt. Die Eingangspannungswerte am Multiplexereingang 2+3 lagen bei 1.3251V bzw 1.3250V.

Angehängte Dateien:
#7621476
Lesenswert?

Hallo Rolf, aus dem Bauch heraus würde ich ja auf einen Software Fehler tippen, da Du ja die Hardware ausgeschlossen hast. Im interrupt

Überlauf einer Variablen? Volatile/ non volatile? Variable überlebt den interrupt nicht?

Muss es eine 32bit variable sein? Reicht nicht 16bit und durch geschicktes Schieben oder Teilen durch 10 am Ende habe ich eine ausreichend hohe Auflösung der Temperatur? Beispiel 615 -> 61,5 Grad Celsius? 208 -> 20,8 Grad Celsius?

Vielen Dank das Du den Code veröffentlichst.

Gruß Sven

OP #7622347
Lesenswert?

Hallöchen.. Ich habe keinen Bug gefunden. Alles soweit ok. Nach einigen Test an der Hardware habe ich festgestellt, dass nur ein paar Ohm Unterschied schon einige Grad im Messwert ausmachen. Das kann am Multiplexer CD4051 mit seinen Schalter-Innenwiderständen ( R_on Widerstand) liegen. Oder aber an den Temperatursensoren die kleine Unterschiede in ihrer Kennlinie haben. Ich habe den Temperaturunterschied jetzt mit einem Reihenwiderstand von 51 Ohm am Temperatursensor kompensiert. Das scheint auch zu funktionieren. Aber bei höheren Temperaturen (65C) gibt ist bis zu einem Grad unterschied. Hab jetzt mal bei Reichelt 5 Stück von den KTY81-121 bestellt und werde diese dann in der Schaltung testen. Bin auf die Messwerte gespannt...

Gruß Rolf

OP #7622376
Lesenswert?

Hallöchen Manchmal ist man doch etwas vorschnell.. Der digitale Temperatursensor DS1820 braucht wohl etwas länger, bis sich die ausgelesenen Temperaturwerte stabilisieren. Im Vergleich mit dem KTY81-121 und dem zusätzlichen Reihenwiderstand von 51 Ohm stimmen die Werte jetzt bis auf +- 0.2C genau. Auch im oberen Temperaturbereich von 65C ist kein nennenswerter Unterschied der Temperaturen feststellbar :)

#7622480
Lesenswert?

Wenn ich mich nicht verrechnet habe, beträgt bei der gegebenen Verschaltung der Spannungshub am AD-Wandler gerade mal 7mV/K. Dann noch ein paar Toleranzen, dann wundert das Ergebnis nicht wirklich. Aber es handelt sich ja auch um ein Netzteil und nicht um einen Präzisionsthermometer...

#7622733
Lesenswert?

Rolf D. schrieb:

stimmen die Werte jetzt bis auf +- 0.2C genau.

Und was soll das bringen? Es reicht völlig, die Temperatur des Kühlkörpers auf 5° genau zu messen. Zumal die Temperatur des Substrats wieder eine völlig andere ist. CPUs haben nicht ohne Grund eine Meßdiode direkt auf dem Die. Si-Dioden sind als Temperatursensor mit etwa -2mV/°K recht linear.

OP #7622992
Lesenswert?

Hallo..

Ich habe die Messung für Ripple & Noise beim PPS5330 Labornetzteil nocheinmal wiederholt, da ich bei der alten Messung keine Massefeder (Bild1) für den Tastkopf hatte. Dadurch hatte ich HF-Einstreuungen in der Messung.

Bild2 => Rippel & Noise ohne Last (Vpp 6.89mV) Bild3 => Ripple & Noise mit Last 12V/1.6A Halogenlampe (Vpp 5.81)

Angehängte Dateien:
OP #7623794
Lesenswert?

Thomas Z. schrieb:

Rolf D. schrieb:

Messung des Ein- und Ausschaltverhaltens über den Standby-Taster am PPS5330

Das wird vermutlich an C21 (10uF) liegen. Den würde ich mal versuchsweise deutlich kleiner machen.

Habe den Elko C21 gegen einen 1uF ausgetauscht und versuchweise auch ohne Elko getestet. Hat leider nichts gepracht. Das Netzteil brauch bei Belastung über eine Sekunde bis die Spannung am Ausgang stabiel anliegt (siehe Bild).

Ich denke, dass das PWM-Signal für U-Soll und I-Soll im Standby auf Null stehen und wenn Standby den Ausgang einschaltet, die Regelung langsam das PWM Signal an den beiden Steuereingängen bis zum eingestellen Sollwert hochfährt ?

Angehängte Dateien:
#7623833
Lesenswert?

Rolf D. schrieb:

Ich denke, dass das PWM-Signal für U-Soll und I-Soll im Standby auf Null stehen und wenn Standby den Ausgang einschaltet, die Regelung langsam das PWM Signal an den beiden Steuereingängen bis zum eingestellen Sollwert hochfährt ?

Das würde aber doch bedeuten, dass die Standby Schaltung mit T9 / D10 gar nicht benutzt wird um den Ausgang abzuschalten. Das sollte dann aber in der FW zu sehen sein.

#7623835
Lesenswert?

Thomas Z. schrieb:

Das würde aber doch bedeuten, dass die Standby Schaltung mit T9 / D10 gar nicht benutzt wird um den Ausgang abzuschalten. Das sollte dann aber in der FW zu sehen sein.

Es werden (überflüssigerweise) sowohl die Standby-Funktion wie auch die PWM-Limits gesetzt. https://github.com/feelfree69/pps5330/blob/7f316769799e89947e692270dee4c7b2a2503abb/pps5330_fw.c#L1355

Beitrag #7624276 wurde von einem Moderator gelöscht.
OP #7624287
Lesenswert?

Hallöchen..

Hab die Zeilen für das PWM-Limits entfernt. Die Messung mit einem 43 Ohm Widerstand und 5 Volt zeigt Bild1. Der Spannungsspitzenwert im Einschaltmoment liegt bei knapp 12V und sink innerhalb von 3.5ms auf den eingestellten Sollwert von 5 Volt. Hab das Ganze mal bei 2 Volt getestet (Bild2+3). Zum Vergleich mein Siglent SPD3303x Labornetzteil bei 5V 43 Ohm Last (Bild4)

Angehängte Dateien:
OP #7625721
Lesenswert?

Keine Änderung bei Standby off. Das Regelverhalten ändert sich leider nicht. Entwerder man hat eine langsame steigende Ausgangspannung oder aber einen kurzen Spannunganstieg mit Spannungsspitzen größer U-Soll :(

Ich habe die Temperatursensoren jetzt kalibriert bekommen. Dazu habe ich einen Dallas DS1820 Temperatursensor (+- 0.5C) als Referenz benutzt. Die Temperaturwerte werden in meiner Firmware alternierend mit der Leistungsanzeige angezeigt (Bild1 und Video). Die Temperatur links ist die vom Kühlkörper und rechts vom Trafo.

Video: https://youtu.be/nk4u9k5hUBQ

Angehängte Dateien:
OP #7626403
Lesenswert?

Da ich kein gutes Matheverständnis besitze, hatte ich etwas Schwierigkeiten die Kalibrierung der Temperaturwerte in eine Formel zu packen und auszurechnen. Also habe ich mich mit ständigen Vergleichmessungen für die beiden Werte calib_offset_temp und calib_factor_temp herangetastet, bis die Werte bei niedrigster und höchster Temperatur stabiel waren. War die Temperatur am Anfang richtig aber beim höchsten Stand zu niedrig, habe ich den calib_factor_temp etwas erhöht. Dadurch stieg die niedrige Temperatur am Anfag der Messung wieder. Also musste ich den calib_offset_temp Wert etwas erhöhen um den Anfangswert der Temperaturanzeige zu verringern. Das ware eine kleine Sisyphusarbeit die dann aber leztendlich zum Erfolg geführt hat..

Da beide Temperaturkanäle mit dem selben Temperatursensor unterschiedliche Messwerte anzeigen, musste ich die Kalibrierung für beide Temperatursensoren durchführen. Da der Messkanal für T2 etwas genauer arbeitet, habe ich diesen für den Kühlkörper vewendet. T1 ist der Trafo. Im Original ist es umgekehrt.

Aktuelle Kalibrierungswerte Trafo T1 => calib_offset_temp1 = 5665 calib_factor_temp1 = 182908

HeatS T2 => calib_offset_temp2 = 5910 calib_factor_temp2 = 175608

1
//*************************************************************************
2
// print T measurement result (heat sink) and set Fan PWM/Overtemp alarm
3
//*************************************************************************
4
void print_T_heatsink_result(uint16_t meas_time)
5
{  
6
  #define calib_offset_temp2 5910
7
  #define calib_factor_temp2 175608
8
  
9
  uint16_t result = (((uint32_t)meas_time - calib_offset_temp2) * calib_factor_temp2) >> 16;
10
    
11
    if (Alternate_flag == TRUE)
12
    {
13
        print_T1_degree(result);
14
    }        
15

16
    result /= 100;
17
        
18
    // heat alert
19
    if (result >= 75)
20
    {
21
        wr_SPI_buffer4(Standby_On_cmd, set_standby);
22
        Standby_flag = 1;
23
        return;
24
    }
25
    else if (result >= 70)
26
    {
27
        wr_SPI_buffer3(set_overtemp);
28
        OCR0A = 255;    // set max Fan PWM
29
        return;
30
    }
31
    else if (result < 69)
32
    {
33
        wr_SPI_buffer3(clr_overtemp);
34
        
35
        if (result <= 35)
36
        {
37
            OCR0A = 20;    // set min Fan PWM
38
        }
39
        else
40
        {
41
            uint8_t fan_speed = ((result-31) * 4);  // calc fan_speed
42
            OCR0A = fan_speed;
43
        }
44
    }
45
}
46

47

48
//*************************************************************************
49
// print T measurement result (transformer)
50
//*************************************************************************
51
void print_T_transformer_result(uint16_t meas_time)
52
{  
53
  #define calib_offset_temp1 5665
54
  #define calib_factor_temp1 182908
55
    
56
    uint16_t result = (((uint32_t)meas_time - calib_offset_temp1) * calib_factor_temp1) >> 16;
57
    
58
    if (! (Memory_flag || Recall_flag))
59
    {  
60
    if (Alternate_flag == TRUE)
61
    {
62
      print_T2_degree(result);
63
    }
64
    }        
65
}

Gruß aus dem Bergischen Wuppertal. Rolf

Beitrag #7626723 wurde von einem Moderator gelöscht.
OP #7626725
Lesenswert?

Um den langsamen Spannungsanstieg der Ausgangsspannung nach einem Standby etwas schneller zu machen, habe einige Versuche mit der Firmware gemacht.

Bild_1 Usoll und Isoll werden im Standby Mode auf Null gesetzt. Das Bild_1 zeigt den langsamen Spannungsanstieg wenn Standby ausgeschaltet wird.

1
 
2
// Standby on -------------------------------------------------------- 
3
            if (Standby_flag == 0) {
4
                set_standby_mode();
5
                set_Usoll(0);
6
                set_Isoll(0);
7
            }
8
            else // Standby off -------------------------------------------------------
9
            {
10
                set_Usoll(Ulimit);
11
                set_Isoll(Ilimit);
12
                clr_standby_mode();
13
             }

Bild_2 zeigt einen schnellen Spannungsanstieg mit Überschwinger in der Ausgangsspannung wenn Usoll im Standby Mode nicht auf Null gesetzt wird.

1
// Standby on -------------------------------------------------------- 
2
            if (Standby_flag == 0) {
3
                set_standby_mode();
4
                //set_Usoll(0);
5
                set_Isoll(0);
6
            }
7
            else // Standby off -------------------------------------------------------
8
            {
9
                set_Usoll(Ulimit);
10
                set_Isoll(Ilimit);
11
                clr_standby_mode();
12
             }

Bild_3 zeigt einen schnellen Spannungsanstieg ohne Überschwingen in der Ausgangsspannung wenn Usoll etwas kleiner ist als Ulimit.

1
// Standby on --------------------------------------------------------
2
            if (Standby_flag == 0) {
3
                set_standby_mode();
4
                set_Usoll(Ulimit - 1000);
5
                set_Isoll(0);
6
            }
7
            else // Standby off 
8
-------------------------------------------------------
9
            {
10
                set_Usoll(Ulimit);
11
                set_Isoll(Ilimit);
12
                clr_standby_mode();
13
             }

Bild_4 Leider funktioniert das nicht mehr, wenn Ulimit auf 3 Volt eingestellt wird.

Angehängte Dateien:
#7627437
Lesenswert?

Weil es zum Thema passt:

Habe gerade ein PPS 5330 abzugeben. Würde es für die Hälfte des NP abgeben. Also 90 Euro plus Versand. Kleiner Haken (?) – mir hatte das Design nicht gefallen und meinte es schwarz lackieren zu müssen. Hatte dann keine Lösung für Beschriftungen der Bedienelemente des Frontpanels und habe es dann einfach ohne benutzt – so viele Bedienelemente hat es ja nicht.

Würde es dann in der Rubrik Markt mit aussagekräftigen Fotos einstellen, wenn hier überhaupt Bedarf besteht.

OP #7629649
Lesenswert?

Um den langsamen Spannungsanstieg zu beschleunigen, könnte man einen Digital-/Analog-Wandler (LTC2644) einsetzen, der ein PWM-Eingangssignal innerhalb von weniger Mikrosekunden in eine stabile Gleichspannung umwandelt. Der Wandler wird zwischen den PWM-Steuerleitungen für U-soll und I-soll geschaltet und wandelt die PWM-Signale in eine Gleichspannung um. Da das PWM-Signal nur eine kleine Taktrate von 500Hz besitzt, benötigt dieser Wandler ein paar Millisekunden bis die Gleichspannung am Ausgang stabiel ansteht. Die Elkos C27 und C34 die für die Filterung des PWM-Signals zuständig sind, müssten dann entfernt werden.

Link: https://de.farnell.com/ltc2644-zweikanal-und-ltc2645-vierkanal-dau

#7630499
Lesenswert?

Hallo Rolf, das ist ja einfach super, was du da alles bewerkstelligst ! Ich hab nur diesbezüglich eine Frage - die ev. andere Forenmitglieder auch interessieren könnte - das Netzgerät hat doch (für den Nachbau) eine "unmögliche" Displayanzeige mit dem unmöglich sauber lötbaren Controllerbaustein auf der Frontplatte drauf. Gibts da nicht eine "saubere" einfachere Lösung mit einem kompletten OLED (Auflösung für so eine Anwendung muß ja nicht "über drüber sein"). da würde ja die Lötarbeit für die Frontplatte auf ein Minimum reduziert sein, oder lieg ich da falsch ??

Gruß walter

OP #7630594
Lesenswert?

Machbar wäre das schon. Aber der Display-Controller IC201 steuert mit zwei Portleitungen die Standby-Funktion und das Umschalt-Relais für die Trafospannung. Dafür müsste man die (leider) an Masse liegenden Portleitungen ADC6 und ADC7 des ATmega88 Mikrocontroller IC200 freilegen und umprogrammieren (siehe Bild).

Angehängte Dateien:
#7630662
Lesenswert?

Hallo Rolf, danke für Antwort. Ich bin leider neu bei AVR, aber die Trafoumschaltung wäre ja mit OPAmps machbar und die Displayplatine müßte ja eh neu entworfen werden....und die Standby ? könnte die Leitg. nicht weggelassen werden ? Und die anderen Anschlüsse sind ja bei ähnlichen OLED (LCD) gleich ? Serielle Ansteuerung inkl. Mich fasziniert einfach das Netzteil, weil ich brauch öfters an die 50 V (48) bei etwa 3 A Gruß walter

#7630688
Lesenswert?

Walter schrieb:

Mich fasziniert einfach das Netzteil, weil ich brauch öfters an die 50 V (48) bei etwa 3 A

Dann taugt das überhaupt nicht, weil es nur 30V liefert.

Und selbst wenn das reichen würde, macht es ja überhaupt keinen Sinn, ein Netzteil praktisch komplett umzubauen, bis es den eigenen Anforderungen genügt. Da kauft man sich doch besser gleich etwas, was passt.

#7630710
Lesenswert?

Hallo Klaus, geb dir schon recht, aber 1.)gehts mir primär um das Selbstaufbauen (bin ja schon in Pension).. 2.) hab ich jede Menge an Elektronikmaterial auf Lager (aktive u. passive ) 3.)Und für die gewünschten 50 V hab ich jede Menge an RKTs und 4.)für die Beschaffung ev. nicht vorhand. BT geb ich halt gerne ein Paar Euronen aus. Aus meiner früheren Tätigkeit kenne ich ja das Problem Labornetzteil mit viel Welligkeit am Ausgang auch um eine Stange Geld. Die mit niedr. Welligk. kosten halt Ende nie....(sogar für manche Fa. ein Problem ?)

Gruß Walter

OP #7630751
Lesenswert?

Als Display könnte man ein Oled ohne Schutzglas nehmen. Das hier z.B. EA OLEDL128-6LWA von Electronic Assebly. Das würde von den Abmessungen gut hinter die Front passen.

Link: https://www.reichelt.de/grafik-oled-128x64-68x51-mm-weiss-ohne-schutzglas-ea-oledl128-6lwa-p259375.html?PROVID=2788&gad_source=1&gclid=CjwKCAjwnv-vBhBdEiwABCYQA4bLkKCe-HUmgKIMOiLDULt281RqYZc5P3FEa5pyXRYeRkSxUPHtQRoCFdAQAvD_BwE

Angehängte Dateien:
OP #7633935
Lesenswert?

Hallöchen..

Kleiner Versuchsaufbau mit dem LTC2644 und der Spannungssteuerung im Netzteil. Die beiden bestellten Chips haben eine kleine Flugreise hinter sich und kamen als Express Lieferung aus Minnesota in den Vereinigten Staaten.

Der Versuchaufbau hat funktioniert. Ich habe die PWM Steuerleitung zum U-Soll Anschluss getrennt und an den LTS2644 Eingangspin IN_a gelötet. Ferner wurde der Glättungskondensator C34 am Eingang U-Soll entfernt und der Ausgang VoutA vom LTC2644 mit dem Eingang von U-Soll verbunden. Der Spannungsanstieg sieht jetzt viel besser aus. Die Ausgangsspannung steigt nach "Standby OFF" innerhalb von weniger als 50ms auf das eingestellte U-Limit. Das ganze muss allerdings noch etwas optimiert werde. Da der LTC2644 ein paar Taktzyklen benötigt um aus dem PWM-Eingangssignal eine entsprechendes Gleichspannung zu erzeugen, entsteht am Ausgang eine kleine Verzögerung von weniger als 50ms bis die korrekte Spannung anliegt.

OP #7638300
Lesenswert?

Hallöchen..

Ich habe eine andere Lösung für einen schnellen Spannungsanstieg nach einem Standby gefunden. Diese Lösung funktioniert ohne LTC2644 und mit Standart Bauteilen. Siehe Schaltungsskitze (1+2 Bild).

Schaltungsbeschreibung. Wenn die Standby-Funktion aktiviert wird, dann wird das PWM-Signal am U-Soll Eingang nicht mehr abgeschaltet, sondern ein CMOS Schalter IC1 schaltet die gleichgerichtete PWM-Spannung vor dem Regler-Eingang IC4 Pin ab. Das Schaltsignal für den CMOS Schalter erhält das IC vom invertierten Standby-Signal. Vorteil dieser Schaltung ist, dass die Zeitdauer für die Gleichrichtung des PWM-Signals keinen großen Einfluss mehr auf die Spannungsanstiegzeit am Netzteil-Ausgang hat.

Angehängte Dateien:
OP #7639611
Lesenswert?

So.. Eine Kalte Lötstelle am SMD Mikrocontroller war die Ursache für die ständigen Abstürze. Jetzt läuft das Netzteil stabiel. Ich hoffe ;)

Ich werde die gleiche Testschaltung auch für den I-Soll Anschluss machen und das Ganze auf eine kleine Lochraster Platine löten und ins Netzteil einbauen. Ein gebrauchtes PPS5330 Netzteil mit Original ELV-Firmware ist auch schon unterwegs zu mir. Wenn es eintrifft werde ich Vergleichsmessungen machen können. Ich bin gespannt..

OP #7639830
Lesenswert?

Da ich schon mal dabei war den defekten Mikrocontroller Chip ATmega88PA auszulöten, habe ich gleich den 8MHz Quarz gegen einen 20MHz Quarz ersetzt. Das hat zur Folge, das die PWM-Frequenz von 488Hz auf 1.220Hz steigt und die Ausgangspannung einen kleineren Rippel & Noise hat.

(Firma: Frickelhauptquartier) #7640388
Lesenswert?

Moin Rolf, wie ich sehe, krempelst du das Netzgerät ja ziemlich um. Wissen "Die" in Leer das eigentlich? Das relativ langsame Ansteigen der Ausgangsspannung hat mich auch immer gestört, viele µC starten nicht. Eine andere Sache, wenn ich einen U/I-Memorywert abrufe, kann man die vorgegebenen Werte ohne weitere Nachfrage erhöhen (hat mich mal 96 WS2812 gekostet). Kann man da irgendwas einbauen? Schönen Sonntag noch

OP #7640433
Lesenswert?

Hallo Walter Der AD7660 ist ein 16Bit AnalogDigital-Wandler im klassichen Sinne und besitzt am Ausgang ein digitales Interface um die Daten mit einer MCU o.Ä. weiter zu verarbeiten. Das wäre für das Netzteil ein zu großer Bauteilaufwand. Außerdem müsste man das PWM-Signal vom ATmega erst gleichgerichtet, um es an den Eingang des AD7660 zu führen.

Im PPS5330 Netzteil wird die Sollwert-Vorgabe für Spannung und Strom von der Atmega MCU mit PWM-Signalen realisiert. Die PWM-Signale (488Hz) werden über einen Tiefpassfilter in eine proportionale Gleichspannung gewandelt. Das Problem im Netzteil ist die niedrige PWM-Frequenz von 488Hz und der Tiefpassfilter (R53 + C34) mit einer Grenzfrequenz von 0.2Hz. Eine schnelle Spannungs- und Stromregelung ist damit nicht möglich.

Mit meiner kleine Trick-Schaltung (Bild) und einer Änderung in der Software (PWM-Signal wird im Standby-Mode nicht mehr abgeschaltet) erreiche ich, dass der Spannungs- und Stromanstieg beim Ein- und Ausschalten über den Standby-Taster sehr schnell ist (< 50ms) und keine 1.4 Sekunden mehr benötigt.

Angehängte Dateien:
#7640451
Lesenswert?

Thomas G. schrieb:

Eine andere Sache, wenn ich einen U/I-Memorywert abrufe, kann man die vorgegebenen Werte ohne weitere Nachfrage erhöhen (hat mich mal 96 WS2812 gekostet). Kann man da irgendwas einbauen?

Verstehe ich dich richtig: Du willst verhindern, dass Du die Einstellungen aus Versehen (Fehlbedienung) falsch einstellst? Dafür gibt es die Tastenkombination langer Druck auf "<-" und "->", mit der das Bedienpanel gesperrt wird.

Beim Abrufen der gesicherten Werte funktioniert meine Firmware so: Druck auf "Recall", dann blinken Memory-Nr, U-Soll und I-Soll Werte, mit dem Drehencoder kann die Memory-Nr gewählt werden, und mit Druck auf Enter wird die Einstellung aktiv.

OP #7640470
Lesenswert?

Thomas G. schrieb:

Moin Rolf, wie ich sehe, krempelst du das Netzgerät ja ziemlich um. Wissen "Die" in Leer das eigentlich? Das relativ langsame Ansteigen der Ausgangsspannung hat mich auch immer gestört, viele µC starten nicht. Eine andere Sache, wenn ich einen U/I-Memorywert abrufe, kann man die vorgegebenen Werte ohne weitere Nachfrage erhöhen (hat mich mal 96 WS2812 gekostet). Kann man da irgendwas einbauen? Schönen Sonntag noch

Von der Hardware ist der Aufwand nicht groß. Nur ein paar Bauteile. Die Software hat Klaus hier aus dem Forum überarbeitet und auf Github bereitgestellt. Das Abrufen der U/I-Memorywerte hat der gute Klaus schon geändert. Wenn mit Taster "Recall" Memorywerte abgerufen werden, blinken die neuen Werte U-Limit/I-Limit und müssen mit "Enter" bestätigt werden. Will man das nicht, kann mit einem erneuten Tastendruck auf "Recall" die Funktion abgebrochen werden. Ob das in der Original Firmware von ELV auch so funktioniert weis ich nicht. Aber Morgen bekomme ich ein zweites Gerät mit der ELV Firmware und kann das testen.

Gruß Rolf

(Firma: Frickelhauptquartier) #7640561
Lesenswert?

Das funktioniert soweit wie von ELV vorgesehen. Was ich meine ist, dass ich eine Einstellung abrufen kann, und diese beliebig, natürlich auch aus versehen, erhöhen kann. Das nach einem Memory-Recall automatisch die Tastensperre gesetzt ist wäre natürlich auch eine Möglichkeit.

Beitrag #7643323 wurde von einem Moderator gelöscht.
OP #7643334
Lesenswert?

Hallöchen.. :) Ich habe den Umbau jetzt erfolgreich abgeschlossen und mit zwei anderen Netzteilen verglichen. Netzteil_1 ist mein umgebautes PPS5330 ELV Netzteil. Netzteil_2 ist das Original ELV Netzteil mit unverändeter Software. Netzteil_3 ein Siglent SPD3303X Labornetzteil.

Zuerst habe ich bei jedem Netzteil den Spannungsanstieg nach einem Standby (Standby_OFF) gemessen (Bild 1-3). Die Ausgangsbelastung lag bei 30/V und 1A. Danach habe die Konstantstromregelung bei 5 Volt und 500mA gemessen (Bild 4-6.

Bild_1 "Standby off" PPS5330 mein Umbau (timebase 50ms) Bild_2 "Standby off" PPS5330 ELV Original (timebase 500ms) Bild_3 "Standby off" Siglent SPD3303X (timebase 50ms)

Bild_4 "CC Funktion" PPS5330 mein Umbau (timebase 200ms) Bild_5 "CC Funktion" PPS5330 ELV Original (timebase 500ms) Bild_6 "CC Funktion" PPS5330 Siglent SPD3303X (timebase 200ms)

Bild_7 Der Umbau

Schaltplan und Umbauanleitung folgt..

Gruß Rolf

Angehängte Dateien:
#7644956
Lesenswert?

so ganz grob driftet deine Spannung also mit -0.5mV / C°. (In der Hoffnung dass das linear ist) Bei dem Messprinzip wirst du da nicht sehr viel machen können. Wie Mawin vor einiger Zeit geschrieben hat, ist der Wandler halt ungenau. Es hindert dich aber niemand daran die PWM Inkremente z.B alle 5 min mit der Temp zu verknüpfen.

Die Regelung ist ja voll analog, Die CPU gibt ja nur die Sollwerte vor.

edit: Klaus war schneller

#7646068
Lesenswert?

Thomas Z. schrieb:

Rolf D. schrieb:

Belastung sinkt die Ausgangsspannung im umgebauten Netzteil stetig.

Die Drift ist ja nur im mV Bereich und liegt innerhalb der Anzeigegenauigkeit. Ich würde das ignorieren, solange das nicht einige 10mV sind.

Wie hoch ist den die Spannungsänderung pro PWM inkrement?

Hab's auch schon auf github kommentiert. Die minimale Schrittweite pro PWM inkrement beträgt 1,8mV. Man könnte also 2mV Abweichung durchaus ausgleichen, aber: Die Schrittweite des AD-Wandlers beträgt nur 7,2mV. Es macht also keinen Sinn, da was dran zu drehen.

#7646224
Lesenswert?

Rolf D. schrieb:

Laut Beschreibung hat der AD-Wandler doch eine Auflösung von 14Bit (1.8mV) !?

Ah ich dachte 12 bit.... war wohl wg. dem LTC2644 weiter oben....

Dann kannst Du die Regelung die in deiner Firmware drin war ja wieder einbauen und schauen wieviel es bringt. Solltest aber die Regelung beim Übergang Standby->Aktiv erstmal totlegen, sonst wird's wohl üble Überschwinger geben.... Oder vermutlich einfacher: Nur wenn die Soll/Ist-Abweichung kleiner einer Schwelle (z.B. 20mV) ist, wirklich nachregeln.

Beitrag #7646272 wurde von einem Moderator gelöscht.
OP #7646298
Lesenswert?

Ich denke ich habe das Problem mit der Spannungsdrift gefunden. Alle Belastungsmessungen habe ich immer mit 5.00V gemacht. Bei Belastung sank die gemessene Ausgangspannung stetik und der angezeigte Spannungswert auf dem Display blieb immer auf 5.00V stehen. Ich habe die Messungen dann mit 6.00V gemacht und festgestellt, dass die Ausgangspannung mit zunehmender Belastung nachgeregelt wurde und das Display den korrekten Spannungswert anzeigt.

Neues Video: https://youtu.be/1WIm6SWlFUY

#7646313
Lesenswert?

Von welcher Spannungsdrift sprichst du eigentlich, immer noch von dem guten Millivolt aus deinem Video?

Edit, ah gerade ins Neue Video reingeschaut. Das läuft wohl die Spannungsmessung aus irgendeinem Grund nicht richtig.

Edit2: bei 5V werden dauernd 5,00V angezeigt, bei 6V 5,99V.

Und nochmal: Es gibt keine Regelung im Digitalteil!

OP #7647748
Lesenswert?

Hallöchen.. Eine neue Firmware 2.00 mit angepasster Prellzeit und Hardwaremodifikation steht jetzt auf meiner github Seite zur Verfügung. Schaltplan für den Umbau folgt. Um die Temperaturanzeige von Heatsink und Transformator zu unterscheiden, habe ich die Anzeigedauer für den Heatsink etwas länger programmiert. Die Trafo-Temperatur wird im Wechsel mit der Heatsink-Temperatur nur kurz angezeigt.

Github: https://github.com/rolfdegen/PPS5330_PowerSupply_mod

Kleines Video: https://youtu.be/KPteA9frJQY

Gruß Rolf

OP #7649012
Lesenswert?

Hardware Modufikation Modifikationsschaltung. Das PWM-Signal für I-Soll und U-Soll an R43/R53 ist in der neuen Firmware nun ständig vorhanden und wird nicht mehr wie in der Original Firmware per Standby abgeschaltet. Ein CMOS-Schalter IC2 schaltet die gefilterte PWM-Spannung am Reglereingang IC4/B Pin 5 und IC4/C Pin 10 ab. Der CMOS-Schalter IC 2 erhält sein Steuersignal vom invertierten Standby-Signal. Der Vorteil dieser Schaltung besteht darin, dass bein Einschalten des Ausgangs keine Zeit für die Filterung des PWM-Signals benötigt wird. Nach der Hardware-Änderung beträgt die Spannungsanstiegsrate weniger als 50 ms.

Angehängte Dateien:
#7649028
Lesenswert?

Wenn ich mal wieder Zeit und Lust bekomme, versuche ich das schnellere Einschalten ohne Hardware-Änderung zu erreichen. Die weiter oben gezeigten Überschwinger kann man ja prinzipell durch die Firmware verhindern (Sollwerte im Standby verringern und beim Einschalten in der "passenden" Geschwindigkeit hochsetzen). Das wird bestimmt nicht so sauber wie in der Hardware-Schaltung, aber hoffentlich besser als mit Original-FW.

OP #7649157
Lesenswert?

Das eigentliche Problem ist der PWM-Filter bestehend aus R43/C27 und R53/C34. Rechnerich liegt die Zeitkonstante τ (tau) für das RC-Glied bei 0.726 Sekunden. Dann ist der Kondensator auf 63,2% seiner Ladespannung aufgeladen. Nach 5 × τ ist der Kondensator auf ca. 99% seiner Kapazität aufgeladen (3.63s). Ich glaube nicht, dass man das Einschalten nur mit Hilfe der Software verbessern kann. Aber.. Ich bin gespannt :)

Dazu gibts einen interessanten Artikel: https://www.us.lambda.tdk.com/resources/blogs/20130207.html

Gruß Rolf

#7649163
Lesenswert?

Rolf D. schrieb:

Ich glaube nicht, dass man das mit Hilfe der Software verbessern kann.

Ich dachte eben, die Sollspannung im Standby erst gar nicht abzuschalten wie du es hier getan hast: Beitrag "Re: PPS5330 Labor-Netzteil hack"

Und mittels Firmware die Überschwinger zu verhindern. Aber bei nochmaliger Betrachtung mit dem 2V-Beispiel gibt das doch wenig bis keine Hoffnung....

OP #7649455
Lesenswert?

So.. Für Testzwecke hatte ich mir letzte Woche noch ein gebrauchtes PSS5330 Netzteil besorgt. Da sind mir so ein paar kleine Fehler aufgefallen..

Auf dem Display sah man so ein merkwürdiges Punktraster. Das lag an der falsch eingebauten Reflektorscheibe vom LCD. Die hat ein aufgedrucktes Punktraster das nach unten zum PCB zeigen muss. Des Weiteren ist unbedingt zu beachten, dass die silber-beschichtete Seite der Reflektorscheibe an der gegenüberliegenden Seite der "Side-Looking-Lamps" liegen muss (1.Bild).

Ein anderer Fehler ist mir am Gleichspannungsausgang vom Netzteil aufgefallen. Die Gleichspannung hatte schon bei kleiner Belastung 5V/500mA einen großen Rippel&Noise von mehr als 100mVpp und 500kHz (2.Bild). Das könnte eventuell an einer kalte Lötstelle an einem Kondensator im Rückkopplungszweig eines Operationsverstärker liegen !? Werde mir mal die Basis-Platine ansehn und nach den Lötstellen an den nachzubestückenden Elkos schaun.

Ferner war der Lüfter für den HeadSink falsch eingebaut. Die Lüfterrichtung war nach innen zur Frontplatte gerichtet und verursachte einen Hitzestau.

Angehängte Dateien:
OP #7649704
Lesenswert?

Ich habe den Fehler noch nicht gefunden. Am Ausgang von IC5 Pin8 (Strommessverstärker) messe ich bei einer Last von 600mA eine Schwingung von 460KHz und 100mVpp. R56 und R55 sind ok. Da man C35 nicht messen kann, habe ich einen anderen 1nF über C35 gelötet. Auch da keine Besserung. ????

Angehängte Dateien:
OP #7650098
Lesenswert?

Hallöchen.. Der Fehler ist gefunden. Wie vermutet lag es am LM358. Dieser war defekt und verursachte das Schwingen am Netzteilausgang. Da ich keine SMD Version vom LM358 hatte, habe ich testweise einen normalen LM358 in DIP Form eingelötet. C31 habe ich auf 56pF erhöht, da es beim Aus- und Einschalten der Standby-Taste noch vereinzelt zu Schwingneigung kam.

Gruß Rolf

Angehängte Dateien:
Beitrag #7651058 wurde von einem Moderator gelöscht.
OP #7651064
Lesenswert?

Hallöchen in die Runde :) Kann man eventuell das Ripple & Noise beim umgebauten Netzteil noch etwas verbessern. Die Messung habe ich an beiden Netzteilen ohne Last gemacht. Das ELV Original Netzteil (2.Bild) zeigt hier einen besseren Wert als das umgebaute Netzteil (1.Bild). Ich kann mir vorstellen, dass der höhere Wert im umgebauten Netzteil durch die automatische Anpassung von Usoll und Ulimit beim messen entsteht.

1
// print measurement result ---------------------------------------
2
    if (Meas_phase == MEAS_PHASE_READ_RESULT)
3
    {
4
        // read timer value for measurements
5
        uint16_t meas_time = ((OCR2B << 8) | TCNT2);
6

7
        ADW_flag = 0;
8
            
9
        if (!displaySettingsActive)
10
        {
11
            if (enc_changed == FALSE && Hold_time == 0)
12
            {
13
                if (Meas_type == MEAS_TYPE_U)
14
                {
15
          print_U_result(meas_time);
16
          
17
          if (Standby_flag == FALSE)
18
          {
19
            uint16_t U_mess = ( (int32_t) ( (int32_t)meas_time - meas_counts_offset_0V) * 20000 + meas_counts_per_20V/2)  / meas_counts_per_20V;
20
            
21
            if (U_mess < Ulimit)
22
            {
23
              U_offset++;
24
              set_Usoll(Ulimit + U_offset);  
25
            }
26
            else if (U_mess > Ulimit)
27
            {
28
              U_offset--;
29
              set_Usoll(Ulimit + U_offset);
30
            }
31
          }
32
                }
33
                            
34
                if (Meas_type == MEAS_TYPE_I)
35
                {
36
                    print_I_result(meas_time);
37
                }
38
            }
39
        }
Angehängte Dateien:
#7651086
Lesenswert?

Rolf D. schrieb:

Z.B. 10 Messungen machen und den Mittelwert bilden und die Differenz von Ulimit zu Usoll als Ofsset-Spannung fürs nachregeln dazu addieren !?

Weiss nicht, die Messgenauigkeit entspricht ja genau dem Regelstep, jeweils 14 bit. Bei nur einem LSB Abweichung gibt es keinen Grund nachzuregeln, sonst kommt das System quasi ins Schwingen.

OP #7651763
Lesenswert?

Der Ripple bleibt wenn ich die Spannungsnachführung ausschalte. Vielleicht ist es durch den Umbau bedingt. Habe zwar kurze Kabelwege, aber die Platine ist handgelötet. Ich denke der kleine Ripple ist vertretbar. Das PPS5330 kann man ja nicht mit einem 500 Euro Netzteil vergleichen.

Eine andere Sache lässt mich aber noch etwas grübel. Die Spannungswerte sind nach ein paar Sekunden sehr genau und stabiel, aber die Spannungsnachführung ist leider sehr träge. Vielleicht kann man da noch etwas verbesser. Hier der entsprechende Code-Teil.

1
// print measurement result ---------------------------------------
2
  if (Meas_phase == MEAS_PHASE_READ_RESULT)
3
  {
4
    // read timer value for measurements
5
    uint16_t meas_time = ((OCR2B << 8) | TCNT2);
6

7
    ADW_flag = 0;
8
    
9
    if (!displaySettingsActive)
10
    {
11
      if (enc_changed == FALSE && Hold_time == 0)
12
      {
13
        if (Meas_type == MEAS_TYPE_U)
14
        {
15
          print_U_result(meas_time);
16
          
17
          if (Standby_flag == FALSE)
18
          {
19
            if (Standby_flag == FALSE)
20
            {
21
              uint16_t U_mess = ( (int32_t) ( (int32_t)meas_time - meas_counts_offset_0V) * 20000 + meas_counts_per_20V/2)  / meas_counts_per_20V;
22
              
23
              if (U_mess < Ulimit)
24
              {
25
                U_offset++;
26
                set_Usoll(Ulimit + U_offset);
27
              }
28
              else if (U_mess > Ulimit)
29
              {
30
                U_offset--;
31
                set_Usoll(Ulimit + U_offset);
32
              }
33
            }
34
          }
35
        }
36
      }
37
      
38
      if (Meas_type == MEAS_TYPE_I)
39
      {
40
        print_I_result(meas_time);
41
      }
42
      
43
    }
OP #7654417
Lesenswert?

Hallöchen..

Ich hatte noch ein kleines Problem nach dem Einschalten des Netzteils. Ab und an kam es vor, dass nach dem Einschalten des Netzteils auf dem Display falsche U-Limit und I-Limit Werte angezeigt wurden. Die Ursache war schnell gefunden. Die Fuses für die ATmega88 MCU waren falsch programmiert. Ich hatte den Fuse für 'Brown Out Detection' auf disabled stehen. Richtig ist aber 2.7V (siehe Bild).

Angehängte Dateien:
OP #7654778
Lesenswert?

Ich habe noch ein kleines Problem beseitigt. Ich musste den Elko C21 entfernen, da dieser beim Ausschalten von Standby ein kurzes überschwingen der Ausgangsspannung verursachte (Bild1).

Bild1+2 Gelb = Standby-Signal Hellblau = Relais-Signal Hellrot = Ausgangsspannung (inverse Darstellung)

Ich habe vergessen die alten Labels auf dem Scope zu löschen. Sie sind nicht richtig.

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren