DCG und Arbitrary-Funktion

Hier könnt ihr Diskussionen über die Software des Labornetzteiles des c't-Lab führen.
psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 942
Registriert: 25.01.2008, 23:34

DCG und Arbitrary-Funktion

Beitrag von psclab38 »

Hallo DCG-Freunde,

wir hatten ja schon mal anderweitig andiskutiert, dem DCG eine Arbitrary-Funktion zu spendieren. Wer mich kennt, weiß, daß mir das keine Ruhe läßt, bis die Idee nicht mindestens mal auf ihre Machbarkeit abgeklopft ist. Ich hab' dann da mal kurz was vorbereitet 8) und das sieht so aus:
ISO-Puls
ISO-Puls
ISO-Puls_27.JPG (22.12 KiB) 8833 mal betrachtet
Von 11,4V auf 4.8V, dann auf 7,6V und wieder zurück auf 11,4V. Zwischen den Stützstellen im Interrupt auch brav interpoliert, mit Auflösung 1 ms. Sieht doch nett aus, oder? :P
Und die Rampe sieht auch sehr nett aus, allerdings mit der Dual-DAC-Version des DCG:
ISO-Flanke
ISO-Flanke
ISO_Flanke_26.JPG (21.99 KiB) 8831 mal betrachtet
Bevor Ihr jetzt meint, das ist alles schon fertig, da muß ich Euch enttäuschen. Das ist extrem experimenteller Code, denn das DCG macht derzeit nix anderes, als diese Sequenz wiederholt auszugeben. Die DAC-Werte sind auch nur frei Auge geschätzt und fest vorgegeben.

Damit wollte ich auch nur mal überprüfen, was die Hardware so kann. Wenn sich dann noch jemand findet, der das Resultat auf einem Standard-DCG testen will, dann baue ich das noch um.

Jetzt bin ich erst mal gespannt, was Ihr dazu sagt.

Viele Grüße
Paul

PS: Die Parameter zu dem Array sind diese:

Code: Alles auswählen

//                                   12V     12V      5V      5V      7V       7V     12V
static volatile uint16_t ArbDAC[] = {0xC000, 0xC000, 0x5000, 0x5000, 0x8000, 0x8000, 0xC000};   // DAC in raw values
static volatile uint16_t ArbT[] =   {200   , 20    , 50    , 10    , 100   , 20    , 0};        // Duration in ms
Benutzeravatar
Marcel
kann c't-Lab-Module umbauen
kann c't-Lab-Module umbauen
Beiträge: 91
Registriert: 31.12.2008, 17:26
Wohnort: Siegen

Re: DCG und Arbitrary-Funktion

Beitrag von Marcel »

Interessieren würds mich schon, ich müsste mir allerdings erst von den Nachbarn ein Oszi ausleihen. Hast du das mit oder ohne Last getestet?
Stolzer Besitzer eines c`t-Lab:

1x 19" Gehäuse von Segor [ 100% ]
1x IFP ohne LAN [ 100% ]
2x DCG/DCP 16bit [ 100% ]
Benutzeravatar
thoralt
Site Admin
Site Admin
Beiträge: 262
Registriert: 10.04.2006, 08:48
Wohnort: Chemnitz
Kontaktdaten:

Re: DCG und Arbitrary-Funktion

Beitrag von thoralt »

Hallo Paul,

RESPEKT.

Ich hoffe, dass Du aus dem "extrem experimentellen" Status irgendwann herauskommst, denn dies scheint mir eine wirklich geile Erweiterung des DCG zu sein. Mit diesem Feature wird es dann noch unbezahlbarer :)

Danke für Deine Arbeit!

Thoralt
There are 10 kinds of people in this world: Those who understand binary and those who don't.
psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 942
Registriert: 25.01.2008, 23:34

Re: DCG und Arbitrary-Funktion

Beitrag von psclab38 »

thoralt hat geschrieben:Danke für Deine Arbeit!
Hi Thoralt,
Gerne, immer wieder und immer noch. (Aber irgendwie vermisse ich Deine PWM-Funktion in der DDS?! Da ist so ein Stückchen freier Speicher und eine Drahtbrücke hängt auch so komisch weg! 8) )

Zurück zum DCG und der Arbitrary-Funktion: Ich werde den Code bestimmt noch weiter aufbohren, Schritt für Schritt. Da bin ich aber aus zwei Gründen auf Eure Mithilfe angewiesen: a) zum Testen auf der Standard-DCG-Hardware und b) zur Diskussion der Features.

Ich kann mal umreissen, was sicher und mit vertretbarem Aufwand funktionieren wird:
- vordefinierte Sequenzen, im ROM
- verschiedene Modi: Single-Shot auf Encoder-Druck oder Bus-Kommando, Wiederholung 1-oft, unendlich

Was aufwendiger wird, ist das Laden und Ablegen von User-Sequenzen. Machbar ist das aber sicher auch.

Sonst noch Wünsche, Ideen oder Vorschläge?

Marcel hat geschrieben:Interessieren würds mich schon, ich müsste mir allerdings erst von den Nachbarn ein Oszi ausleihen.
Ich kann Dir gerne ein entsprechendes Hexfile machen und schicken. Wenn Du die Ripplefunktion sowieso ausprobieren möchtest, dann ist das die zweite Stufe... Bring am Besten Deinem Nachbarn schon mal vorsichtig bei, daß er in der nächsten Zeit zu Dir kommen muß, wenn er mit dem Oszi was messen will. :lol:
Marcel hat geschrieben: Hast du das mit oder ohne Last getestet?
Das Bild ist ohne Last entstanden.

Viele Grüße
Paul


EDIT:

Den Code hab ich dann gleich mal aufgebohrt, so daß ich jetzt die Spannungswerte direkt als Double angeben kann. Die entsprechende Routine rechnet das dann um in DAC-Werte. Es wird. :D

Damit sieht mein ISO-4-Puls mit den "richtigen" Spannungswerten so aus:
ISO-4
ISO-4
ISO4_29.JPG (21.9 KiB) 8705 mal betrachtet
und ein wenig verfremdet:
ISO-4-M
ISO-4-M
ISO4m_30.JPG (22.2 KiB) 8705 mal betrachtet
Um die derzeit bestmögliche Impulsflanke abzuschätzen dient dieser Versuch. Peaks runter zu den Sollwerten: 5V, 8V und 10V:
3Peaks
3Peaks
3Peaks_5V_8V_10V_31.JPG (23.9 KiB) 8704 mal betrachtet
Wie man sehen kann, gehen die Peaks nicht ganz runter bis zum Sollwert. Das heißt, daß der Tiefpaß nach dem DAC mit der Zeitkonstante im Bereich der 1ms ist und nicht wirklich darunter. Das müssen wir nochmal ausloten, was insbesondere mit der Standard-Hardware möglich ist.

Damit erstmal genug für heute. 8)
Benutzeravatar
Marcel
kann c't-Lab-Module umbauen
kann c't-Lab-Module umbauen
Beiträge: 91
Registriert: 31.12.2008, 17:26
Wohnort: Siegen

Re: DCG und Arbitrary-Funktion

Beitrag von Marcel »

Dann fummel mal ein hex zusammen für Standart DCG+DCP, ich werds dann testen wenn ich zeit hab. Allerdings muss ich direkt sagen, dass das vielleicht dauern kann. Ich bin in der Woche in meiner Studentenbude und es stehen bald auch noch die Klausuren an.

Falls es wen interessieren sollte:
- Einführung Infomatik (Generelles und c++)
- Mathe für Elektrotechniker II (Alle formen von Differenzialen und Integralen)
- Grundlagen Halbleiterphysik (von PN-Übergang bis MOSFET)
- Grundlagen Elektrotechnik V (nichtideale Bauelemente, Filter)
- Grundlagen Signal- und Systemtheorie (mein Sorgenkind...)

Also einiges zu tun.

€DIT: je nach Ergebnis des tests werde ich mein DCG dann auch auf DualDAC umbauen, aber warten wir erstmal ab
Stolzer Besitzer eines c`t-Lab:

1x 19" Gehäuse von Segor [ 100% ]
1x IFP ohne LAN [ 100% ]
2x DCG/DCP 16bit [ 100% ]
Rainer
kann c't-Lab-Module umbauen
kann c't-Lab-Module umbauen
Beiträge: 75
Registriert: 29.11.2007, 01:38
Kontaktdaten:

Re: DCG und Arbitrary-Funktion

Beitrag von Rainer »

Marcel hat geschrieben: Falls es wen interessieren sollte:
- Einführung Infomatik (Generelles und c++)
- Mathe für Elektrotechniker II (Alle formen von Differenzialen und Integralen)
- Grundlagen Halbleiterphysik (von PN-Übergang bis MOSFET)
- Grundlagen Elektrotechnik V (nichtideale Bauelemente, Filter)
- Grundlagen Signal- und Systemtheorie (mein Sorgenkind...)
Das mit dem Sorgenkind kann ich gut verstehen, das war auch nicht so mein Thema.
Zum Glück habe ich diese Fächer schon alle hinter mir. ;)
Benutzeravatar
ompf
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 168
Registriert: 19.01.2008, 13:03
Wohnort: Dortmund

Re: DCG und Arbitrary-Funktion

Beitrag von ompf »

Marcel hat geschrieben:- Mathe für Elektrotechniker II (Alle formen von Differenzialen und Integralen)
Dann hast Du ja III und IV noch vor Dir. Das wird noch viel absurder...

Im Informatik-Praktikum haben wir seinerzeit Modula-2 gemacht. Diese ziemlich ungewöhnliche Sprache wurde gewählt, "damit die, die schon einen Computer zu Hause haben, dadurch keine Vorteile haben". Irgendwann haben sich die Institute beschwert, daß sie Leute brauchen, die auch programmieren können. Dann wurde auf C umgestellt.
- Grundlagen Signal- und Systemtheorie (mein Sorgenkind...)
Dann kannst Du den DCG-SenseAmp-Thread weiter bearbeiten ;-) Man muß das Zeug mal gebaut oder wenigstens simuliert haben, um es zu verstehen. Also, laß Dich nicht vom Basteln abhalten!


Wünsche jedenfalls viel Erfolg.


Gruß
Patrick
psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 942
Registriert: 25.01.2008, 23:34

Re: DCG und Arbitrary-Funktion

Beitrag von psclab38 »

Ich mache gerade am Code weiter für die Arbitrary-Funktion und habe das Oszi am DCG dran zum Messen. Dabei ist mir was aufgefallen:

Könnte mir mal bitte jemand mit einem ganz normalen Standard-DCG, Pascal-FW und Oszi einen Gefallen tun?
Ich bekomme beim Start der Firmware bzw. nach dem Einschalten des DCG mit Leerlauf am Ausgang einen ziemlich hohen Peak von fast 18V mit ca. 300µs Breite, und zwar in dem Moment, in dem der "Enable Switch" Q3 eingeschaltet wird. Ich hab mal mit dem Zeitpunkt des Einschaltens des Enable Switches in der Firmware gespielt und der Effekt ist mitgewandert.
gelb Ausgang (Leerlauf)<br />blau Output Enable Signal
gelb Ausgang (Leerlauf)
blau Output Enable Signal
Peak.JPG (24.94 KiB) 8606 mal betrachtet
PeakDetail
PeakDetail
PeakDetail.JPG (25.16 KiB) 8604 mal betrachtet
Der Q3 liegt weit außerhalb meiner Modifikationen am DCG und ich glaube auch nicht, daß es an der C-Firmware liegt. Ich möchte jetzt niemanden irritieren und es kann sein, daß ich komplett falsch liege und meine Hardware spinnt.

Irgendjemand da draußen? Nur einschalten und messen? Danke!!

Viele Grüße
Paul


EDIT: neue Features von heute:
1) Der derzeitige Codestand hat jetzt die Möglichkeit, mehrere (viele) vordefinierte Arbitrary-Sequenzen im >ROM< abzulegen. Diese sind auswählbar und werden für den Interrupt von Double in die DAC-Werte umgerechnet, incl. Kalibrierungsdaten etc., wie für "echte" Spannungswerte auch. Der Spannungsbereich für die Umschaltung wird automatisch ermittelt.

Wenn jemand einen Wunsch für eine Defaultsequenz hat, dann möge er es bitte posten.

2) Die Kurvenform ist komplett skalierbar über den Standardparameter 20 "DCVoltMod", 0...100%, über den Bus.

3) Der Arbitrary-Modus ist nicht mehr exklusiv an, sondern kann jetzt per Bus-Parameter 182 ein- und ausgeschaltet werden ( 0/1). Dto für die Auswahl der Sequenz aus dem ROM: Parameter 183 (derzeit 0..2)

Menü hab ich noch keines, das ist bedeutend aufwendiger. Die Bussteuerung sind zwei simple Zeilen copy-paste. Der Code ist derzeit auch nur gegen den gröbsten Unfug geschützt, und über die saubere Umschaltung der Modi hab ich mir noch keine ernsthaften Gedanken gemacht.
Zuletzt geändert von psclab38 am 22.01.2010, 16:26, insgesamt 2-mal geändert.
Benutzeravatar
Marcel
kann c't-Lab-Module umbauen
kann c't-Lab-Module umbauen
Beiträge: 91
Registriert: 31.12.2008, 17:26
Wohnort: Siegen

Re: DCG und Arbitrary-Funktion

Beitrag von Marcel »

Was man noch machen könnte wäre ein Gleichgerichteter, ungefilterter Sinus bei 100 Hz, also quasi genau das was bei der Gleichrichtung aus der Steckdose rauskommt. Da würde man dann auch 100% nen Unterschied zwischen Dual-DAC und Single-DAC erkennen, bei letzterem kann da nichtmehr viel vernünftiges rauskommen (5 Stützstellen pro Halbwelle)
Stolzer Besitzer eines c`t-Lab:

1x 19" Gehäuse von Segor [ 100% ]
1x IFP ohne LAN [ 100% ]
2x DCG/DCP 16bit [ 100% ]
Benutzeravatar
thoralt
Site Admin
Site Admin
Beiträge: 262
Registriert: 10.04.2006, 08:48
Wohnort: Chemnitz
Kontaktdaten:

Re: DCG und Arbitrary-Funktion

Beitrag von thoralt »

Hallo Paul,
Irgendjemand da draußen? Nur einschalten und messen? Danke!!
ähem, ich habe "leider" nur eine angepasste C-Firmware drin und laut Deiner Anforderung Pascal-FW falle ich hier durchs Raster. Es ist im Moment auch schwierig, "mal eben" die Firmware auszutauschen, weil mein Equipment nach dem Umzug immernoch nicht wieder betriebsbereit ist.
Aber irgendwie vermisse ich Deine PWM-Funktion in der DDS?! Da ist so ein Stückchen freier Speicher und eine Drahtbrücke hängt auch so komisch weg! 8)
Da hast Du recht! Aber ich habe das natürlich immernoch auf dem Plan.

Mal noch was anderes: Wenn ich das richtig verstehe, moduliert die Arbitrary-Funktion die Ausgangsspannung. Es könnte doch sein, dass irgendwann man jemand einen modulierten Ausgangsstrom benötigt. Ließe sich das nicht ebenfalls umsetzen? (Nur so ne Idee...)

Viele Grüße
Thoralt
There are 10 kinds of people in this world: Those who understand binary and those who don't.
psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 942
Registriert: 25.01.2008, 23:34

Re: DCG und Arbitrary-Funktion

Beitrag von psclab38 »

thoralt hat geschrieben:Hallo Paul,
Irgendjemand da draußen? Nur einschalten und messen? Danke!!
ähem, ich habe "leider" nur eine angepasste C-Firmware drin und laut Deiner Anforderung Pascal-FW falle ich hier durchs Raster. Es ist im Moment auch schwierig, "mal eben" die Firmware auszutauschen, weil mein Equipment nach dem Umzug immernoch nicht wieder betriebsbereit ist.
Hi Thoralt, jede Hilfe wird gerne angenommen. Im Prinzip geht's mir darum ob ich hier ein prinzipielles Problem sehe oder ob das an meiner Hardware hängt. Wenn's bei Dir auch auftreten sollte, dann isses schonmal nicht meine Hardware.
thoralt hat geschrieben:
Aber irgendwie vermisse ich Deine PWM-Funktion in der DDS?! Da ist so ein Stückchen freier Speicher und eine Drahtbrücke hängt auch so komisch weg! 8)
Da hast Du recht! Aber ich habe das natürlich immernoch auf dem Plan.
Dann isses ja gut! Aber ich scharre schon unruhig mit den Hufen! 8)
thoralt hat geschrieben:Mal noch was anderes: Wenn ich das richtig verstehe, moduliert die Arbitrary-Funktion die Ausgangsspannung. Es könnte doch sein, dass irgendwann man jemand einen modulierten Ausgangsstrom benötigt. Ließe sich das nicht ebenfalls umsetzen? (Nur so ne Idee...)
Jetzt mach aber 'mal 'nen Punkt ! :D Nein, im Ernst: die Idee hatte ich schon vor ein paar Tagen, das ist vorgemerkt. Zuerst wollte ich mal die Spannungsmodulation machen, das wird öfter benötigt. Das mit dem Strom ist dann die Kür. Im Prinzip unterscheidet sich die Strommodulation programmtechnisch aber nicht von der Spannungsmodulation.
Marcel hat geschrieben:Was man noch machen könnte wäre ein Gleichgerichteter, ungefilterter Sinus bei 100 Hz, also quasi genau das was bei der Gleichrichtung aus der Steckdose rauskommt. Da würde man dann auch 100% nen Unterschied zwischen Dual-DAC und Single-DAC erkennen, bei letzterem kann da nichtmehr viel vernünftiges rauskommen (5 Stützstellen pro Halbwelle)
Hi Marcel, so ungefähr?:
100Hz Graetz ohne Last /DualDAC(!)
100Hz Graetz ohne Last /DualDAC(!)
Graetz_ohneLast.JPG (26.07 KiB) 8560 mal betrachtet
100Hz Graetz mit Last /DualDAC(!)
100Hz Graetz mit Last /DualDAC(!)
Graetz_mitLast.JPG (26.77 KiB) 8559 mal betrachtet
Viel besser wird's selbst mit der Dual-DAC-Hardware nicht gehen. Das Raster ist hier definitiv 1ms. Ist aber auch nicht viel schlechter als das, was aus der Steckdose kommt. :lol: Für's Testen, ob eine Schaltung mit einer solch ungesiebten Versorgung zurechtkommt, dürfte das aber allemal reichen.

Viele Grüße
Paul
Benutzeravatar
thoralt
Site Admin
Site Admin
Beiträge: 262
Registriert: 10.04.2006, 08:48
Wohnort: Chemnitz
Kontaktdaten:

Re: DCG und Arbitrary-Funktion

Beitrag von thoralt »

Hallo Paul,
Hi Thoralt, jede Hilfe wird gerne angenommen. Im Prinzip geht's mir darum ob ich hier ein prinzipielles Problem sehe oder ob das an meiner Hardware hängt. Wenn's bei Dir auch auftreten sollte, dann isses schonmal nicht meine Hardware.
Dann werde ich mir Mühe geben, das am Wochenende zu erledigen. Noch eine Frage: Tritt das Problem mit und/oder ohne Last auf?

Thoralt
There are 10 kinds of people in this world: Those who understand binary and those who don't.
psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 942
Registriert: 25.01.2008, 23:34

Re: DCG und Arbitrary-Funktion

Beitrag von psclab38 »

thoralt hat geschrieben:Dann werde ich mir Mühe geben, das am Wochenende zu erledigen. Noch eine Frage: Tritt das Problem mit und/oder ohne Last auf?
Danke Dir! Der Effekt tritt mit und ohne Last auf. Wenn ich Q3 C-E kurzschließe, also die Ausgangsstufe immer eingeschaltet lasse, dann gibt's keinen Peak an der Stelle. Ich hab so den Eindruck, daß das Einschalten schneller geht, als die Spannungsregelung gegenhalten kann.

Ich bringe die Firmware in den Reset, indem ich mit dem Programmer die Signature auslese. Damit vemeide ich andere Effekte. Beim Hochlaufen tritt der Peak dann direkt nach dem Kanal-Blinken der Activity-LED auf (zumindest mit der C-Firmware).

Der Peak tritt bei beiden DCGs auf, einmal mit 18V und beim anderen mit 20V. Ich werde dem Ding wohl noch ein EKG anlegen müssen. Aber mich interessiert schon, ob das nur bei mir so ist. Danke nochmal für Dein Hilfsangebot.

Viele Grüße
Paul


EDIT:
So jetzt gibt's noch einen Parameter mehr: ArbRepeat 184. Da kann man die Anzahl der Zyklen einstellen, die die mit Parameter 183 ausgewählte Sequenz wiederholt werden soll. Die Ausgangsspannung bleibt auf dem Spannungswert des >ersten< Samples der Sequenz stehen (das sollte sowieso den gleichen Wert haben wie das Stopsample (mit Dauer 0) )

Das sieht dann beispielsweise so aus:
Dateianhänge
Graetz ohne Last, 3 Zyklen, Dual-DAC
Graetz ohne Last, 3 Zyklen, Dual-DAC
Graetz_ohneLast_3Zyklen.JPG (26.57 KiB) 8527 mal betrachtet
Zuletzt geändert von psclab38 am 23.01.2010, 00:09, insgesamt 1-mal geändert.
gewo
kann c't-Lab-Bausätze löten
kann c't-Lab-Bausätze löten
Beiträge: 26
Registriert: 01.12.2009, 22:09

Re: DCG und Arbitrary-Funktion

Beitrag von gewo »

psclab38 hat geschrieben:Ich mache gerade am Code weiter für die Arbitrary-Funktion und habe das Oszi am DCG dran zum Messen. Dabei ist mir was aufgefallen:

Könnte mir mal bitte jemand mit einem ganz normalen Standard-DCG, Pascal-FW und Oszi einen Gefallen tun?
Ich bekomme beim Start der Firmware bzw. nach dem Einschalten des DCG mit Leerlauf am Ausgang einen ziemlich hohen Peak von fast 18V mit ca. 300µs Breite, und zwar in dem Moment, in dem der "Enable Switch" Q3 eingeschaltet wird. Ich hab mal mit dem Zeitpunkt des Einschaltens des Enable Switches in der Firmware gespielt und der Effekt ist mitgewandert.
Ich habe das gerade mal bei einem Standard-DCG mit DCP gemessen. Beim Einschalten bzw. Reset vom µC
gibt es auch den von dir beschriebenen Peak.

Gerhard
psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 942
Registriert: 25.01.2008, 23:34

Re: DCG und Arbitrary-Funktion

Beitrag von psclab38 »

Hallo Gerhard,

erst mal herzlich willkommen im Forum und danke auch für Deine Unterstützung.
gewo hat geschrieben:Ich habe das gerade mal bei einem Standard-DCG mit DCP gemessen. Beim Einschalten bzw. Reset vom µC
gibt es auch den von dir beschriebenen Peak.
Das hab ich mir fast gedacht. Riecht irgendwie nach prinzipiellem Problem. Oh jeee! :roll:
Du hast mit Pascal-FW gemessen (nur um alle Möglichkeiten auszuschließen)?

Noch jemand mit einem entsprechenden Meßergebnis?

Na prima, eigentlich hab ich auch so schon genügend offene Baustellen. Grad ist mir auch noch das interne Netzteil meines Faxes abgeraucht. +3.8V statt 5V, der Controller läuft dann Amok.

Viele Grüße
Paul
Antworten