Forum: Mikrocontroller und Digitale Elektronik PPS5330 Labor-Netzteil hack


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
4 lesenswert
nicht lesenswert
Hallöchen..

Ich habe mir von ELV das PPS 5330 Labornetzteil als Bausatz gekauft und 
zusammengebaut. Alles hat bestens funktioniert. Nur ein kleiner Fehler 
meinerseits mit der Reflektorscheibe (siehe Link: 
Beitrag "Re: Joy-IT RD6006" ).

Kleines Preview von mir mit falsch eingebauter Reflektorscheibe: 
Youtube-Video "ELV PPS 5330"

2.Video zeigt Temperaturmessung bei großer Last: 
Youtube-Video "PPS5330 Power supply over temperature protection"

Das Kühlaggregat im Labor-Netzteil kann unter Belastung bis über 80 °C 
heiß werden. Aus diesem Grund möchte ich eine Temperaturanzeige in das 
Netzteil integrieren, die mir die aktuelle Temperatur am Kühlaggregat 
anzeigt. Da es schon eine LCD-Anzeige und einen Temperatursensor an 
geeigneter Stelle gibt, habe ich mir überlegt, dies zu nutzen und die 
Leistungsanzeige auf dem LCD-Display alternierend mit einer 
Temperaturanzeige zu kombinieren (siehe 3.Bild).

Leider gibt es im Internet für den verbauten ATmega88 Mikrocontroller 
von ELV keinen frei verfügbaren Quellcode. Also habe ich mich 
entschlossen die Software neu zu schreiben und eine Temperaturanzeige 
und wenn möglich eine USB Schnittstelle zu integrieren.

Die Hardware
Als erstes habe ich mir den seriellen Datenstrom zum LCD-Controller 
angesehen. Hierbei handelt es sich um eine SPI-Schnittstelle mit 3 
Steuerleitungen (MOSI,MISO und CLK) und einer Taktrate von 500KHz. Über 
die Mosi-Leitung werden syncron zum Takt 8Bit-Daten vom ATmega88 zum LCD 
Controller übertragen. Der LCD Controller signalisiert mit einem 
Low-Pegel auf der MISO Leitung das er bereit ist, Daten vom ATMEGA88 zu 
empfangen. Bei einem High-Pegel stoppt die Übertragung vom 
Mikrocontroller.

Mit meinem Rigol-Scope MSO5104 konnte ich die SPI Daten analysieren. 
Dazu habe ich die Datenleitung (MOSI) vom Mikrocontroller IC200 an den 
1.Kanal angeschlossen und die Taktleitung (CLK) an den 2.Kanal. Die MISO 
Leitung liegt auf Kanal 3. Wie mann im 4.Bild erkennen kann werden für 
die einzelnen Anzeige Elemente zB die Spannung insgesamt 5 Datenbytes 
übertragen. Das 1.Datenbyte (43h) ist das Adressregister für den 
Spannungswert. Die nachfolgenden 4 Datenbytes sind die vier 
Dezimalstellen für den Spannungswert. Die Strom- und Leistungsanzeige 
funktioniert ähnlich. Ein Adressregister gefolgt von 4 Datenbytes für 
den 4stellige Wert.

Gruß Rolf

: Bearbeitet durch User
von Harald W. (wilhelms)


Bewertung
-1 lesenswert
nicht lesenswert
Rolf D. schrieb:

> Ich möchte eine Temperaturanzeige in das Netzteil integrieren,

Das geht am einfachsten und vermutlich auch am billigsten
mit einem Fertigthermometer für rund 3 EUR von ebay o.ä.

von merciMerci (Gast)


Bewertung
-9 lesenswert
nicht lesenswert
Rolf D. schrieb:
> ELV das PPS 5330

... oh oh, ist die Front von dem Teil hässlich!
Das wäre dann gleich ein Showstopper für mich.

von merciMerci (Gast)


Bewertung
-10 lesenswert
nicht lesenswert
Rolf D. schrieb:
> ELV das PPS 5330 Labornetzteil

.. der Bausetz kostet echt 149€?
Warum gibt Mann für 30V/3A soviel aus, was waren da deine Argumente 
dafür?
Für rund 80-100€ bekommst du ein Labornetzteil fertig aufgebaut und dann 
auch nicht so hässlich, allerdings als Schaltnetzteil.

von Harald W. (wilhelms)


Bewertung
0 lesenswert
nicht lesenswert
merciMerci schrieb:

>> ELV das PPS 5330
> ... oh oh, ist die Front von dem Teil hässlich!

Ja, da schadet auch ein zusätzliches Loch für ein Thermometer nicht.

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Das Designe und die verbaute Technik finde ich nicht schlecht. Eine 
weitere Anzeige für die Temperatur gefällt mir nicht so gut. Mir gehts 
eigentlich um den Bastelspaß und das Verständnis der Netzteilschaltung.

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen..

Ich habe eine Bitte. Durch einen dummen Fehler am SPI Port des ATmega88 
habe ich die Firmware des PPS 5330 geschrottet. Das Auslesen des 
ATmega88 mit einem DIAMEX ALL AVR Programmer funktioniert zwar, aber das 
Hexfile binhaltet nur Datenmüll (siehe Anhang). Kann mir vielleicht 
jemand helfen ?

Vorab schon mal vielen Dank!

von Harald W. (wilhelms)


Bewertung
1 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Hallöchen..
>
> Ich habe eine Bitte. Durch einen dummen Fehler am SPI Port des ATmega88
> habe ich die Firmware des PPS 5330 geschrottet. Das Auslesen des
> ATmega88 mit einem DIAMEX ALL AVR Programmer funktioniert zwar, aber das
> Hexfile binhaltet nur Datenmüll (siehe Anhang). Kann mir vielleicht
> jemand helfen ?

Hast Du schon mal bei ELV nachgefragt?

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht sollte ich das tun. Aber ob die das machen ist eine andere 
Frage. Denke eher nicht :(

von Harald W. (wilhelms)


Bewertung
1 lesenswert
nicht lesenswert
Rolf D. schrieb:

> Vielleicht sollte ich das tun. Aber ob die das machen ist eine andere
> Frage. Denke eher nicht :(

Insbesondere wenn Du noch die Originalrechnung hast, würde sich
zumindest eine Anfrage lohnen.

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Ich arbeite zur Zeit mit einem zweiten ATmega328P "Nano" um das 
LCD-Display anzusteuern. Eigentlich hatte ich vor, die SPI-Daten vom 
ATmega88 über einen 2.Controller zu leiten, dann für die 
Temperaturanzeige abzuändern und dann zum LCD-Controller zu senden. Bei 
dieser ganzen Umsteckerrei am SPI Port und am Programmer ist es dann 
passiert.

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
So.. Anfrage bei ELV läuft. Bin gespannt und warte mal ab was die sagen 
:)

von Goran E. (gnom_eb_betrach)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rolf, ich finde Dein Projekt recht spannend, hast Du den 
kompletten Datenstrom zum Display schon 'entschlüsselt'?

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Der Weilen versuch ich schon mal den Temperatursensor über den 
speziellen AD-Wandler auszulesen (siehe Bild).

So wie ich das verstehe, wird über einen Integrator IC5 die Aufladezeit 
eines Kondensators C49 ermittelt und daraus der Temperaturwert 
berechnet. Der Messvorgang wird mit Starten eines 16Bit Timers im ATmega 
und dem Setzen von  Eingang 2 oder 3 von Multiplexer IC6 gestartet. 
Vorher wird der Integrator IC5 über den Multiplexer Eingang 5 
zurückgesetzt. Erreicht der Integratorausgang die gleiche Spannung wie 
am Temperatursensor wird Transistor T10 leitend und  ein 
Interrupt-Eingang am ATmega angesteuert. Als Folge stoppt der Timer und 
der Wert kann ausgelesen werden. Danach folgt die Berechnung für den 
Temperaturwert und die Anzeige auf dem Display.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Goran E. schrieb:
> Hallo Rolf, ich finde Dein Projekt recht spannend, hast Du den
> kompletten Datenstrom zum Display schon 'entschlüsselt'?

Fast alle Anzeige Elemente sind entschlüsselt. Weil ich versehentlich 
den eingebauten ATmega88 geflasht habe, fehlen zum Teil aber noch die 
Punkte und Unterstriche (siehe Bilder).

Für Spannungs- und Stromwerte muss zuerst die Element Adresse und 
nachfolgend 4 Bytes für den Nummerischen Wert von 0-9 (50hex - 59hex) 
gesendet werden. 5Fh ist fürs Ausbenden einer Dezimalstelle.

Gruß Rolf

: Bearbeitet durch User
von Lach (Gast)


Bewertung
1 lesenswert
nicht lesenswert
merciMerci schrieb:
> oh oh, ist die Front von dem Teil hässlich!

Dann erleuchte uns doch mal mit einem Beispiel eines tollen 
Frontplattendesigns.
Vor allem bei den von dir vorgeschlagenen Geräten:

merciMerci schrieb:
> Für rund 80-100€ bekommst du ein Labornetzteil fertig aufgebaut

Ach so du bist erst 10 und steht auf bonbonbuntes Chonadesign :-)

SCNR

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Harald W. schrieb:
> Rolf D. schrieb:
>> Hallöchen..
>>
>> Ich habe eine Bitte. Durch einen dummen Fehler am SPI Port des ATmega88
>> habe ich die Firmware des PPS 5330 geschrottet. Das Auslesen des
>> ATmega88 mit einem DIAMEX ALL AVR Programmer funktioniert zwar, aber das
>> Hexfile binhaltet nur Datenmüll (siehe Anhang). Kann mir vielleicht
>> jemand helfen ?
>
> Hast Du schon mal bei ELV nachgefragt?

Hallöchen..

Bezüglich meiner Anfrage an ELV, ob Sie mir die Firmware für das PPS 
5330 zusenden könnten, habe ich leider eine negative Antwort erhalten. 
Das heißt für mich, entweder die Firmware selber schreiben oder hoffen 
und bangen, dass vielleicht ein User die Firmware von seinem Gerät 
auszulesen kann und mir zuschickt.

Gruß Rolf

: Bearbeitet durch User
von Harald W. (wilhelms)


Bewertung
3 lesenswert
nicht lesenswert
Rolf D. schrieb:

> Bezüglich meiner Anfrage an ELV, ob Sie mir die Firmware für das PPS
> 5330 zusenden könnten, habe ich leider eine negative Antwort erhalten.

Das finde ich von einer Firma, die vom Verkauf von eher überteuerter
Ware lebt, mehr als seltsam. Also sollte man wohl in Zukunft eher nicht
mehr bei denen kaufen.

von Rolf D. (rolfdegen)


Bewertung
1 lesenswert
nicht lesenswert
Hallo

Mein Standpunkt ist der von OpenSource auch in meinen Projekten. Ein 
schönes Beispiel sind die Produkte von Mutable instruments 
https://mutable-instruments.net/. Alles OpenSource und trotzdem ist die 
Firma kommerziell erfolgreich.

Mein OpenSource Projekt "DEGENERATOR": 
https://www.sequencer.de/synthesizer/threads/avr-synthesizer-wave-1-de-generator.87599/page-20

Gruß Rolf

: Bearbeitet durch User
von Chris D. (myfairtux) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Lach schrieb:
> merciMerci schrieb:
>> oh oh, ist die Front von dem Teil hässlich!
>
> Dann erleuchte uns doch mal mit einem Beispiel eines tollen
> Frontplattendesigns.

Jepp, die Kritik ist mir auch nicht ganz klar. Sicherlich hätte man 
Strom- und Spannungseinstellung getrennt anbieten können, aber optisch 
finde ich die Netzteile durchaus ok (damals noch für €99 als Bausatz). 
Insbesondere sind das Vollmetallgehäuse.

> Vor allem bei den von dir vorgeschlagenen Geräten:

Wer ernsthaft Schaltnetzteile (mit all ihren Nachteilen) für diesen 
Leistungsbereich und die daraus offenkundigen Anwendungen im Labor 
erwägt, ist nicht wirklich ernstzunehmen.

Für das Geld ist das PPS5330 wirklich ok: Ströme und Spannungen lassen 
sich - messbar - milliampere/-voltgenau einstellen und oft benötigte 
Spannungen speichern.

Was mich etwas stört, ist die lange Anstiegszeit der Spannung beim 
Betrieb aus dem Standby heraus.

Rolf D. schrieb:
> Bezüglich meiner Anfrage an ELV, ob Sie mir die Firmware für das PPS
> 5330 zusenden könnten, habe ich leider eine negative Antwort erhalten.
> Das heißt für mich, entweder die Firmware selber schreiben oder hoffen
> und bangen, dass vielleicht ein User die Firmware von seinem Gerät
> auszulesen kann und mir zuschickt.

Erstmal ein dickes Lob an Dich, dass Du die Dinger selbst programmieren 
möchtest und die Dinge, die Du schon rausgefunden hast.

Ich muss mir mal den Schaltplan zu Gemüte führen und würde mal einen 
Ausleseversuch mit einem originalen avrispmkII starten.

Wie genau hast Du Deinen Controller ausgelesen (nicht dass ich denselben 
Fehler auch mache)?

Ich habe hier zwei Mal Softwareversion 1.1

von Friedhelm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kleine OffTopic-Frage: Wie kann man die beiden Bananenbuchsen des 
PPS5330 entfernen? Bekomme das einfach nicht hin. Möchte möglichst wenig 
Gewalt anwenden, da die Frontplatte recht empfindlich ist.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Der Zusammenbau ist schon etwas her, aber ich meine, die wären ganz 
normal von hinten per Mutter verschraubt (so sieht's auch auf den Fotos 
der Anleitung aus).

Also: einfach öffnen und gucken :-)

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Ja Rundmutter ist von hinten aufgeschraubt.

von hinz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Das Auslesen des
> ATmega88 mit einem DIAMEX ALL AVR Programmer funktioniert zwar, aber das
> Hexfile binhaltet nur Datenmüll (siehe Anhang).

Da sind wohl schlicht die Lockbits gesetzt, eben damit die Firmware 
nicht ausgelesen werden kann.

von René F. (therfd)


Bewertung
1 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Ja Rundmutter ist von hinten aufgeschraubt.

Gibt sogar ein Spezialwerkzeug dafür, 2 Zangen tuns auch.

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
hinz schrieb:
> Rolf D. schrieb:
>> Das Auslesen des
>> ATmega88 mit einem DIAMEX ALL AVR Programmer funktioniert zwar, aber das
>> Hexfile binhaltet nur Datenmüll (siehe Anhang).
>
> Da sind wohl schlicht die Lockbits gesetzt, eben damit die Firmware
> nicht ausgelesen werden kann.

Hallo Hinz,
dann würde der Anfang des Hex-Files nicht mit der Software auf meinem 
ATmega Ersatz-Board übereinstimmen.

Gruß Rolf

: Bearbeitet durch User
von Friedhelm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für Tipps :)

Die Buchsen konnte ich mittels 9er Maulschlüssel und Zange gut 
demontieren.

von Udo S. (urschmitt)


Bewertung
0 lesenswert
nicht lesenswert
@Rolf:
Du hast die Frage von Chris gelesen?

Chris D. schrieb:
> ch muss mir mal den Schaltplan zu Gemüte führen und würde mal einen
> Ausleseversuch mit einem originalen avrispmkII starten.
>
> Wie genau hast Du Deinen Controller ausgelesen (nicht dass ich denselben
> Fehler auch mache)?
>
> Ich habe hier zwei Mal Softwareversion 1.1

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Chris

Der Anschluss für den ISP Programmer sieht so aus (siehe 1.Bild).

2.Bild Anschluss am AVRISPMKII Programmer.

Schon mal vielen Dank für deine Mühe.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallöchen..

Ich programmiere gerade am Netzteil die PWM-Ansteuerung für Spannung und 
Strom. Könnte jemand mal überprüfen mit welcher PWM-Frequenz die U-Soll 
und I-Soll Anschlüsse im Netzteil angesteuer werden. Laut Rippel auf der 
Ausgangsspannung (siehe Bild) vermute ich so um die 2KHz.

Danke. Gruß Rolf

Beitrag #6323266 wurde von einem Moderator gelöscht.
von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Mmmm..

Ich habe diesbezüglich hier im Forum noch keine negativen Erfahrungen 
gemacht.

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo..

Ich programmiere gerade die PWM-Ansteuerung für Spannung (U-Soll) und 
Strom (I-Soll) im Netzteil. Dafür habe ich die PWM-Ausgänge OCR1A und 
OCR1B im ATmega328 benutzt und diese auf eine Auflösung von 14Bit und 
eine PWM-Frequenz von 1KHz eingestellt. Das PWM-Steuersignal wird im 
Netzteil über einen Tiefpass (R 42, R 43, C 27 sowie R 52, R 53 und C 
34) in eine proportionale Gleichspannungen gewandelt. Der Spannungswert 
für U-Soll ist in mV angegeben. Um eine größere Genauigkeit bei den 
Berechnungen zu erhalten, habe ich die Werte um den Faktor 1000 
skaliert.

Youtube: Youtube-Video "hack PWM control into PPS 5330"

Beispiel für U-Soll
{
  DDRB |= (1 << DDB1)|(1 << DDB2);
  // PB1 and PB2 is now an output

  ICR1 = 0x3FFF;
  // set TOP to 16383 14Bit/1KHz
  
  // set U-Soll
  uint8_t Digi_offset = 67; 
  uint16_t Umax = 30000;  // mV
  uint32_t Usoll = 20000;  // mV
  uint32_t PWM_value = 15540; // 15540 ~ 30.0V
  uint16_t OCR_value = 0;
  PWM_value = (PWM_value * 1000); 
  OCR_value = (uint32_t)(((PWM_value) / Umax) * Usoll) / 1000;
  
  //set PWM (U-Soll)
  OCR1A = Digi_offset + OCR_value;  

  OCR1B = 16382;  // Ampre
  // set PWM for 100% duty cycle @ 16bit

  TCCR1A |= (1 << COM1A1)|(1 << COM1B1);
  // set none-inverting mode

  TCCR1A |= (1 << WGM11);
  TCCR1B |= (1 << WGM12)|(1 << WGM13);
  // set Fast PWM mode using ICR1 as TOP
  
  TCCR1B |= (1 << CS10);
  // START the timer with no prescaler
  
}

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Habe gerade gesehen das man Usoll auch auf 16Bit setzen kann. Das spart 
ein wenig Prozessor Ressourcen ;)

von MaWin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Durch einen dummen Fehler am SPI Port des ATmega88 habe ich die Firmware
> des PPS 5330 geschrottet.

Ähm, d.h. du hast für 150 einen Bausatz für ein 40V/3A Netzteil gekauft, 
erfolgreich zusammengebaut und nun bei der Analyse wie du eine 
Temperaturanzeige nachrüsten kannst so geschrottet, dass du ohne 
Firmware dastehst, weil ELV Asi wie immer reagiert.

Da bleibt wohl nur, den Focus deines Bastelprojekts so zu verändern, 
dass du eine neue Firmware schreibst und dann veröffentlichst. Bei der 
kannst du gleich eine Temperaturanzeige einbauen. Obwohl so was bei 
funktionierenden Geräten überflüssig ist, eine galvanisch getrennte USB 
Programmierbarkeit als MODBus Device aber sehr wertsteigernd wäre.

Was ich nicht ganz verstehe, ist der CD4051 aufgebaute A/D Wandler. Die 
haben echt diese ungenaue Schaltung drin, obwohl der ATmega88 8 eigene 
Analogkanäle besitzt ? Die brauchen 4 Pind (ADW und AD0, AD2, AD2) um 4 
Analogwerte zu messen. Da sollte man die Schaltung restlos entsorgen, 
und an 4 Analogeingänge des ATmega legen (den man dafür ggf. 
umverdrahten muss) mit interner Referenz. Die ist zwar um +/-10% 
ungenau, aber ein mal kalibriert bleibt die 1000x stabiler als die 
Versorgungsspannung. Nein, die 10 bit sind nicht zu wenig. Auch wenn 
dein externer Wandler mit 16 bit timer auflöst, ist er erheblich 
unlinearer als 10 bit. Macht bei 30V halt 0.03V Auflösung.

Merkwürdig finde ich, dass beim Display IST und SOLL angezeigt wird, die 
Eingabe neuer SOLL-Werte aber wohl im IST Display gemacht wird. Da hat 
wohl jemand bei ELV sein Gehirn an der Garderobe abgegeben. Ich würde 
die Eingsbe aufs kleine Display verlagern, da dort Unterstriche fehlen 
wohl durch blinkende Ziffer

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier die Software zum Ansteuer vom Display im PPS 5330 Netzteil. Der 
Code ist noch nicht optimiert. Für die Entwicklung einer eigenen 
Software benutze ich ein ATmega328P "NANO" Board. Dieser besitzt im 
Vergleich zu dem ATmega88 im Netzteil einen größeren Programmspeicher 
und mehr Port-Leitungen. Die serielle Datenleitung (MOSI, MISO, CLK) zum 
Display habe ich über drei Port-leitungen mit dem ATmega328 verbunden 
und steuer diese softwaremäßig an. Die SPI-Schnittstelle im ATmega328 
ist mit dem Programmieradapter verbunden.

#define F_CPU 16000000UL

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

#define SOFT_SPI_MOSI_PORT    PORTD
#define SOFT_SPI_CLK_PORT    PORTD
#define SOFT_SPI_MOSI_DDR    DDRD
#define SOFT_SPI_CLK_DDR    DDRD
#define SOFT_SPI_MISO_DDR    DDRD
#define RESET_DDR            DDRD
#define SOFT_SPI_MOSI_BIT   PD4
#define SOFT_SPI_MISO_BIT    PD2
#define SOFT_SPI_CLK_BIT    PD3
#define SOFT_SPI_MISO_PIN   PD2


// Software SPI
void SOFT_SPI_init(void){
    // MOSI und CLK auf Ausgang setzen
    SOFT_SPI_MOSI_DDR |=(1<<SOFT_SPI_MOSI_BIT);
    SOFT_SPI_CLK_DDR  |=(1<<SOFT_SPI_CLK_BIT);

    // MOSI und CLK auf HIGH setzen
    SOFT_SPI_MOSI_PORT|=(1<<SOFT_SPI_MOSI_BIT);
    SOFT_SPI_CLK_PORT |=(1<<SOFT_SPI_CLK_BIT);

    // MISO auf Eingang setzen
    SOFT_SPI_MISO_DDR &=~(1<<SOFT_SPI_MISO_BIT);
    
    
}


SPI_wr2(unsigned char dataout)
{    
    uint8_t datain=0;
    //das Byte wird Bitweise nacheinander Gesendet MSB zuerst
    for (uint8_t a=8; a>0; a--){
        datain<<=1;                      //Schieben um das Richtige Bit zusetzen
        SOFT_SPI_CLK_PORT &=~(1<<SOFT_SPI_CLK_BIT);     // Clock auf LOW
        
        if (dataout & 0x80){                //Ist Bit a in Byte gesetzt
            SOFT_SPI_MOSI_PORT |=(1<<SOFT_SPI_MOSI_BIT);   //Set Output High
        }
        else{
            SOFT_SPI_MOSI_PORT &=~(1<<SOFT_SPI_MOSI_BIT);   //Set Output Low
        }
        
        _delay_us(1);
        if (SOFT_SPI_MISO_PIN & (1<<SOFT_SPI_MISO_BIT))   //Lesen des Pegels
        {
            datain |= 1;
        }
        
        _delay_us(1);
        SOFT_SPI_CLK_PORT |=(1<<SOFT_SPI_CLK_BIT);       // Clock auf High
        _delay_us(1);
        dataout<<=1;                     //Schiebe um nächstes Bit zusenden
    }
    _delay_us(100);
    while(PIND & (1<<SOFT_SPI_MISO_BIT));    // LCD chip Bussy ?
    
}


int main(void)
{
    // Set the PORTD as Output:
    DDRD = 0xFF;
    PORTD = 0x00;
        
    SOFT_SPI_init();
    
    DDRB |= (1<<PB1);
    PORTB |= (1<<PB1);
    PORTB &= ~(1<<PB1);
        
    _delay_ms(1000);
    SPI_wr2(0xF0);   // Display löschen
    _delay_ms(1000);
    SPI_wr2(0xC1);  // Beleuchtung einschalten
    
    SPI_wr2(0x43);    // " 0.00 V"
    SPI_wr2(0x50);
    SPI_wr2(0x50);
    SPI_wr2(0x50);
    SPI_wr2(0x5D);
    SPI_wr2(0x23);
    SPI_wr2(0x05);
    SPI_wr2(0x34);
    SPI_wr2(0x22);
    SPI_wr2(0x09);
    SPI_wr2(0x31);
    SPI_wr2(0x23);
    SPI_wr2(0x06);
    SPI_wr2(0x34);
    
    
    SPI_wr2(0x47);    // "0.000 A"
    SPI_wr2(0x50);
    SPI_wr2(0x50);
    SPI_wr2(0x50);
    SPI_wr2(0x50);
    SPI_wr2(0x27);
    SPI_wr2(0x03);
    SPI_wr2(0x31);
    SPI_wr2(0x27);
    SPI_wr2(0x01);
    SPI_wr2(0x34);
    
    SPI_wr2(0x23);    // " 0.00 W"
    SPI_wr2(0x03);
    SPI_wr2(0x31);
    SPI_wr2(0x4B);
    SPI_wr2(0x50);
    SPI_wr2(0x50);
    SPI_wr2(0x50);
    SPI_wr2(0x5E);    
    
    
    while(1)
    {    
        _delay_ms(2000);
        SPI_wr2(0x23);    // "W" off
        SPI_wr2(0x03);
        SPI_wr2(0x10);
        SPI_wr2(0x4B);    // "27.5C"
        SPI_wr2(0x5C);
        SPI_wr2(0x55);
        SPI_wr2(0x57);
        SPI_wr2(0x52);
        SPI_wr2(0x23);
        SPI_wr2(0x02);
        SPI_wr2(0x31);
        OCR0A = 128;
        _delay_ms(2000);
        SPI_wr2(0x23);    // "W" on
        SPI_wr2(0x03);
        SPI_wr2(0x31);
        SPI_wr2(0x4B);    // "0.000 W"
        SPI_wr2(0x50);
        SPI_wr2(0x50);
        SPI_wr2(0x50);
        SPI_wr2(0x5E);
        OCR0A = 20;
    }

}

Hab ein kleines Video gemacht: Youtube-Video "PPS 5330 Display hack"

Gruß Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
MaWin schrieb:
> Was ich nicht ganz verstehe, ist der CD4051 aufgebaute A/D Wandler. Die
> haben echt diese ungenaue Schaltung drin, obwohl der ATmega88 8 eigene
> Analogkanäle besitzt ? Die brauchen 4 Pind (ADW und AD0, AD2, AD2) um 4
> Analogwerte zu messen. Da sollte man die Schaltung restlos entsorgen,
> und an 4 Analogeingänge des ATmega legen (den man dafür ggf.
> umverdrahten muss) mit interner Referenz. Die ist zwar um +/-10%
> ungenau, aber ein mal kalibriert bleibt die 1000x stabiler als die
> Versorgungsspannung. Nein, die 10 bit sind nicht zu wenig. Auch wenn
> dein externer Wandler mit 16 bit timer auflöst, ist er erheblich
> unlinearer als 10 bit. Macht bei 30V halt 0.03V Auflösung.
>
> Merkwürdig finde ich, dass beim Display IST und SOLL angezeigt wird, die
> Eingabe neuer SOLL-Werte aber wohl im IST Display gemacht wird. Da hat
> wohl jemand bei ELV sein Gehirn an der Garderobe abgegeben. Ich würde
> die Eingsbe aufs kleine Display verlagern, da dort Unterstriche fehlen
> wohl durch blinkende Ziffer


Hi MaWin

Danke für dein Interesse. Der ADC im ATmega88 hat leider nur eine 10Bit 
Auflösung. Das reicht für eine genau Messwert-Analyse für 30V nicht aus.

Beispiel: 10Bit Auflösung 1024 / 30V = 29mV

Aus diesem Grund wurde ein hochauflösender 16Bit Timer benutzt, der die 
Aufladezeit eines Integrator misst. Die gemessene Zeit wird dann in 
einen Spannungswert umgerechnet. Klar das die Umwandlung dann etwas mehr 
Zeit benötigt als bei einem echten AD-Wandler. Als Referenzspannung für 
die Messungen dient hier ein LM385 mit 2.5V D16.

Gruß Rolf

: Bearbeitet durch User
von M. K. (sylaina)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Das reicht für eine genau Messwert-Analyse für 30V nicht aus.

Was genau soll denn da nicht ausreichen bei so einem LNG? Das soll ja 
jetzt keine hochgenaue Kiste sein.

OK, mir waren die 10 bit auch etwas zu eng, ich hab deswegen einen 
MCP3208 (12bit ADC) eingesetzt in meinem LNG zum Auswerten der Potis und 
der Ist-Werte des LNGs

von Martin (Gast)


Bewertung
1 lesenswert
nicht lesenswert
M. K. schrieb:
> Rolf D. schrieb:
>> Das reicht für eine genau Messwert-Analyse für 30V nicht aus.
>
> Was genau soll denn da nicht ausreichen bei so einem LNG? Das soll ja
> jetzt keine hochgenaue Kiste sein.

Du stellst eine Frage ...

> OK, mir waren die 10 bit auch etwas zu eng, ich hab deswegen einen
> MCP3208 (12bit ADC) eingesetzt in meinem LNG zum Auswerten der Potis und
> der Ist-Werte des LNGs

... und beantwortest sie selbst. Einfach zu drollig.

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hallöchen..

Ich werde Heute versuchen, die Spannungsmessung über den speziellen 
AD-Wandler im Netzteil zu programmieren und bin dann auf die Genauigkeit 
der Messung gespannt.

Gruß Rolf

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Ich werde Heute versuchen, die Spannungsmessung

ene Bitte, kannst du auch deinem Rigol mal ein Sinus zeigen fast von der 
unteren Displaykante zur oberen, und dann genau so nach oben oder unten 
rausschieben bitte. Plottet das Rigol am Rand weiter oder nicht?

beide Bilder wären toll
Danke

von MaWin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> Der ADC im ATmega88 hat leider nur eine 10Bit Auflösung. Das reicht für
> eine genau Messwert-Analyse für 30V nicht aus.

Bloss: der diskret aufgebauter misst nicht genauer. Er erfindet nur ein 
paar bits dazu. Für genauer als 0.1% müssten Widerstände, 
Referenzspannungsquelle, OpAmp-Offsetspannung, Kondensatorkonstanz, 
dielektrische Absorption und Unabhängigkeit der Kapazität von der 
Spannung auch entsprechend genau sein. Das ist alles nicht der Fall.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Joachim B. schrieb:
> Rolf D. schrieb:
>> Ich werde Heute versuchen, die Spannungsmessung
>
> ene Bitte, kannst du auch deinem Rigol mal ein Sinus zeigen fast von der
> unteren Displaykante zur oberen, und dann genau so nach oben oder unten
> rausschieben bitte. Plottet das Rigol am Rand weiter oder nicht?
>
> beide Bilder wären toll
> Danke

Ja kein Problem. Hier meine Pics..

von hinz (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
> hinz schrieb:
>> Rolf D. schrieb:
>>> Das Auslesen des
>>> ATmega88 mit einem DIAMEX ALL AVR Programmer funktioniert zwar, aber das
>>> Hexfile binhaltet nur Datenmüll (siehe Anhang).
>>
>> Da sind wohl schlicht die Lockbits gesetzt, eben damit die Firmware
>> nicht ausgelesen werden kann.
>
> Hallo Hinz,
> dann würde der Anfang des Hex-Files nicht mit der Software auf meinem
> ATmega Ersatz-Board übereinstimmen.

Es gibt mehr als ein einziges Lockbit.

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Er erfindet nur ein paar bits dazu.

Ist doch egal. Hauptsache es sieht auf der Anzeige huebscher aus. :)

> Für genauer als 0.1% müssten Widerstände,
> Referenzspannungsquelle, OpAmp-Offsetspannung, Kondensatorkonstanz,
> dielektrische Absorption und Unabhängigkeit der Kapazität von der

Ich vermute mal da es ein Bausatz war, hat man auch einen Schaltplan und 
kann dann ganz einfach alle Bauteile verbessern. Ist vielleicht unoetig 
weil man bei Netzteilen mit 0.1V auskommt, aber schadet ja auch nicht.
So kann man dann auch gleich die Anschaffung seines teuren Multimeter 
rechtfertigen das man zum kalibrieren braucht. :-)

Olaf

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:
>> beide Bilder wären toll
> Ja kein Problem. Hier meine Pics.

danke, so ein tolles Gerät aber das machen sie immer noch falsch, beim 
Sinus ist es ja eindeutig, aber beim Rechteck liest man auf die Schnelle 
mal falsche Vpp ab, das nervt mich.
Ich weiss die Vertikalauflösung ist begrenzt, aber die FW könnte im 
Zweifel das plotten auch sein lassen, TEK kann es ja auch (OK 9 bis 12 
Bit)

Aber ein 7-Bit Anzeige ist mir lieber als eine Falschanzeige.

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Das Display hat eine Color Grade Funktion. Darin wird beim Überschreiten 
des Bildschirmrandes die Wafeform rot gezeichnet.

: Bearbeitet durch User
von Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Da ich auch über so ein PPS5330 verfüge, hier eine kleine Messreihe 
(Herstellerkalibrierung):

Einstellung (Volt)   Messung (Volt, Multimeter)

 3                   3,00
 5                   5,00
12                  11,99
15                  14,99
18                  17,99
24                  23,98
27                  27,98
30                  29,97


von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Wobei die Auflösung laut Anleitung bei 14Bit liegt. Ich habe die 
PWM-Ansteuerung für Strom und Spannung auch auf 14Bit programmiert. 
Damit Beträgt die Spannungsauflösung 1.8mV und beim Strom 181uA.

: Bearbeitet durch User
von Chris D. (myfairtux) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Martin schrieb:
> Da ich auch über so ein PPS5330 verfüge, hier eine kleine Messreihe
> (Herstellerkalibrierung):
>
>
> 
> Einstellung (Volt)   Messung (Volt, Multimeter)
> 
>  3                   3,00
>  5                   5,00
> 12                  11,99
> 15                  14,99
> 18                  17,99
> 24                  23,98
> 27                  27,98
> 30                  29,97
> 
> 

Ja, ziemlich ähnliche Werte (bis auf die 27,98V ;-) haben wir hier auch 
gemessen (selbst kalibriert). Wie ich schon schrieb: so schlecht scheint 
die A/D-Einheit nicht zu sein - im Gegenteil: auch die Stromregelung ist 
wirklich gut. Wenn ich für einen Sensor 78mA benötige, dann kann ich die 
(messbar) auf +/- 1mA einstellen.

@Rolf: am WE starte ich mal den Ausleseversuch - bis dahin habe ich 
leider noch zu viel zu tun.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
@Martin
Null Problemo. Ich hab Zeit.

Ich habe die Wandlerfunktion für den AD-Wandler im Netzteil 
programmiert. Folgende Zeitwerte für die Spannungsmessung konnte ich am 
Kollektor (ADW-Ausgang) von Transistor T10 messen (Low-Impuls). Der 
Collektor liegt über einen Pullup Widerstand an +5V.

Ausgangsspannung    Zeit
========================
0.1V  =  3.71ms
1.0V  =  1.76ms
2.0V  =  1.24ms
3.0V  =  950us
10V   =  422us
20V   =  246us
30V   =  168us

Jetzt muss ich diesen Zeitwert in einen Spannungswert umwandeln.

Gruß Rolf

von Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rolf D. schrieb:

> @Martin
> Null Problemo. Ich hab Zeit.
Der Beitrag stammt von Chris.

Deine gemessenen Zeiten überzeugen mich nicht. Erwarte eher einen 
linearen Zusammenhang von t und U. Kannst du das Programm posten?

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Die Zeiten habe ich mit dem Scope gemessen.
void start_ADC()
{
  // clear intecrator
  PORTC |= (1<<ADC_AD0);
  PORTC &= ~(1<<ADC_AD1);
  PORTC |= (1<<ADC_AD2);
  _delay_ms(1);

  // Voltage measurement
  PORTC &= ~(1<<ADC_AD0);
  PORTC &= ~(1<<ADC_AD1);
  PORTC &= ~(1<<ADC_AD2);
  _delay_ms(10);
  
  /*
  // Temp1 measurement
  PORTC |= (1<<ADC_AD0);
  PORTC |= (1<<ADC_AD1);
  PORTC &= ~(1<<ADC_AD2);
  _delay_ms(10);
  */
}

In der main wird start_ADC() permanent aufgerufen. Das Scope hängt am 
Kollektor von T10.

Gruß Rolf

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Spannungsmessung noch mal etwas verändert und starte den 
Mess-vorgang wie folgt:

1. Eingang Nr.5 am Multiplexer IC6 aktivieren um den Integrator IC5d zu 
initialisieren. 5ms warten fürs Entladen von Kondensator C49 und warten 
auf  High-Pegel am ADW-Ausgang von Transistor T10.

2. Eingang Nr.0 am Multiplexer für U-Mess aktivieren und Test-Pin für 
Scope auf High-Pegel setzen.

3. Auf Low-Pegel am ADW-Ausgang von Transistor T10 warten. Danach 
Test-Pin auf Low und kleine Pause von 5ms und neue Messung starten.

Scope Bild: Gelb = ADW-Ausgang, Blau = Test-Pin

Messwerte:

0.1V  =  3.384ms
1.0V  =  1.486ms
2.0V  =  998us
3.0V  =  780us
4.0V  =  653us
5.0V  =  569us
6.0V  =  508us
7.0V  =  461us
8.0V  =  425us
9.0V  =  395us
10.0V =  370us
20.0V =  242us
30.0V =  190us


void start_ADC()
{
  // clear intecrator
  PORTC |= (1<<ADC_AD0);
  PORTC &= ~(1<<ADC_AD1);
  PORTC |= (1<<ADC_AD2);
  _delay_ms(5);
  while (PINC & (1<<ADC_ADW)); 
  
  // Voltage measurement
  // Reset Timer
  PORTC &= ~(1<<ADC_AD0);
  PORTC &= ~(1<<ADC_AD1);
  PORTC &= ~(1<<ADC_AD2);
  PORTC |= (1<<Test_Pin);  // Test_flag = High
  while (!(PINC & (1<<ADC_ADW)));
  PORTC &= ~(1<<Test_Pin);  // Test_flag = low
  _delay_ms(5);
  
  /*
  // Temp1 measurement
  PORTC |= (1<<ADC_AD0);
  PORTC |= (1<<ADC_AD1);
  PORTC &= ~(1<<ADC_AD2);
  PORTC |= (1<<Test_flag);  // Test_flag = High
  while (!(PINC & (1<<ADC_ADW)));
  PORTC &= ~(1<<Test_flag);  // Test_flag = low
  _delay_ms(5);
  */
}

Gruß Rolf

: Bearbeitet durch User
Beitrag #6325017 wurde von einem Moderator gelöscht.
von Martin (Gast)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert

Grün - Eingang Integrator
Blau - ADW-Ausgang
Rot  - Ausgang Integrator

1. Phase (Ch. 5) - zurücksetzen des Integrators (ca. 0 V, 1 ms).
2. Phase (Ch. 0) - Messspannung anlegen (x V, Dauer: 19 ms).
3. Phase (Ch. 4) - Referenzspannung anlegen (-2,5 V bis Komparator High, Dauer 38 ms).

x = 38 ms / 19 ms * 2,5 V = 5 V


Gehe nach dem obigen Muster vor und liste die Spannungen/Zeiten auf. 
Eventuell die Wahl des Kanals (Ch.) in einem Befehl zusammenfassen und 
nicht auf mehrere verteilen.

Die Zeiten und Spannungen im Bild sind "erfunden" und stimmen nicht mit 
dem PPS5330 überein.

von Rolf D. (rolfdegen)


Bewertung
1 lesenswert
nicht lesenswert
Hallo Martin

Vielen Dank für die tolle Erklärung. Ich hatte die Schaltung des 
AD-Wandlers falsch verstanden und gedacht, dass es sich bei der 
AD-Wandlung um ein Single-Slope Verfahren handelt. Aus diesem Grund habe 
ich nur die Aufladezeit des Kondensators gemessen statt die Entladezeit 
über Uref. Das war natürlich falsch.

Der AD-Wandler im Netzteil arbeitet im Dual-Slope Verfahren. Hatte mich 
schon gewundert, was die negative Referenzspannung von -2.5V am 
Multiplexer bewirken soll.

Link: http://www.vias.org/mikroelektronik/adc_dualslope.html

Vielen Dank nochmals. Man lernt doch nie aus ;)

Gruß Rolf

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Ja suppi.. Es hat funktioniert :)

Die Messsung von U-Mess hat jetzt funktioniert. Die Messwerte am Scope 
haben jetzt einen linearen Zusammenhang von t und U (siehe Tabelle).

Spannung   Zeit
===============
1.0V   =   824us
2.0V   =   1.334ms
3.0V   =   1.845ms
4.0V   =   2.355ms
5.0V   =   2.866ms
6.0V   =   3.376ms
7.0V   =   3.887ms
8.0V   =   4.398ms
9.0V   =   4.908ms
10.0V  =   5.419ms
20.0V  =   10.527ms
30.0V  =   15.639ms

Die Zeit-Differenz für 1.0V beträgt genau 511us.
Es gibt einen positiven Offset den man bei 1V abziehen muss um auf einen 
linearen Zusammenhang zwischen den Messwerten zu kommen. Dieser Offset 
beträgt 824us - 511us = 313us

Beispiel: 30 x 0.511 = 15.330 + 0.313 = 15.64ms

void start_ADC()
{
  // clear ADC
  PORTC |= (1 << ADC_AD0) | (1 << ADC_AD2);
  PORTC &= ~(1<<ADC_AD1);
  _delay_ms(50);
  
  // set U-Mess for measurement
  PORTC &= ~((1 << ADC_AD0) | (1<<ADC_AD1) | (1<<ADC_AD2));
  _delay_ms(19);
  
  // start with measurment
  PORTC |= (1 << ADC_AD2) | (1 << Test_Pin);
  while (PINC & (1<<ADC_ADW));  // wait until ADW-Signal is low (end of measurment)
  PORTC &= ~(1<<Test_Pin);    // clear Test-Pin
  _delay_ms(38);
}

Gruß Rolf

: Bearbeitet durch User
von Martin (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Well done!

von Rolf D. (rolfdegen)


Bewertung
0 lesenswert
nicht lesenswert
Hallöchen..

Jetzt gibt es noch ein kleines Problemchen mit der Timer Einstellung.

Die Auflösung der Messspannung liegt bei 10mV. Das sind 511us/100 = 
5,1us. Bei 30V wären das 511us x 30 = 15.330us. Der Timer1 läuft bei 
16Mhz MCU Takt und einem Vorteiler von 8 mit einer Frequenz von 2MHz ~ 
0,5us. Die maximale Messzeit beträgt damit 32,767ms.

Da ich den Timer1 schon für die 16Bit PWM Spannung- und Stromsteuerung 
verwendet habe, muss ich die Messung mit Timer0 bewerkstelligen. Der 
Timer0 hat aber nur ein 8Bit Zählregister. Das reicht für eine Messung 
im gesamten Spannungsbereich von 0-30V leider nicht aus. Also muss ich 
ein zweites Speicherregister erstellen, in dem der Timerüberlauf von 
Timer1 gezählt wird.

Durch einen externen Interrupt vom ADW-Signal (T10) stoppt der Timer0 
und ich kann die beiden Register (Timer1 und Speicherregister) auslesen. 
Die 16Bit Zahl ergibt dann meine Messzeit.

Mal schaun ob ich das so umsetzen kann.. Ideen und Anregungen nehme ich 
gerne an.

Gruß Rolf

: Bearbeitet durch User
von Rolf D. (rolfdegen)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallöchen..

So.. habs hinbekommen. Muss die Software aber noch etwas optimieren.

Auf dem Display wird jetzt die Messzeit für die Spannung in 
Mikrosekunden angegeben. Da die ober Zeile nur 4stellig ist und das 
Messergebnis aber 5stellig, habe ich die 5.Zahlenstelle in die 2.Reihe 
verschoben.

Kleines Video (Messspannung 5V): Youtube-Video "PPS 5330 16Bit time measurement for 5V"

Spannung   Zeit
===============
1.0V   =   824us
2.0V   =   1.334ms
3.0V   =   1.845ms
4.0V   =   2.355ms
5.0V   =   2.866ms
6.0V   =   3.376ms
7.0V   =   3.887ms
8.0V   =   4.398ms
9.0V   =   4.908ms
10.0V  =   5.419ms
20.0V  =   10.527ms
30.0V  =   15.639ms

Jetzt muss ich die Zeitwerte nur noch in Spannungswerte umsetzen :)

Gruß Rolf

: Bearbeitet durch User
Beitrag #6327112 wurde von einem Moderator gelöscht.
Beitrag #6327129 wurde von einem Moderator gelöscht.
Beitrag #6327198 wurde von einem Moderator gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.