PWM auf der DDS

Fragen zur Software des digitalen Funktionsgenerators und des True-RMS-Messaufsatzes bitte hier stellen.
psclab38
kann c't-Lab-Konstrukteure konstruieren
kann c't-Lab-Konstrukteure konstruieren
Beiträge: 915
Registriert: 25.01.2008, 23:34

Re: PWM auf der DDS

Beitrag von psclab38 » 19.11.2010, 20:28

dg1vs hat geschrieben:cvs ist Steinzeit, aber immer noch besser als gar kein KM-Tool! Selbst große Firmen (oder gerade große???) tun sich mit neuen KM-Konzepten schwer.
Steinzeit ist schon ok. Aber es sieht mir ganz danach aus, daß die *.png-Dateien auch das Binärproblem haben. Sobald ich die UNIX-Einstellung verlasse, sind wieder die 0D -> 0D0A-Erweiterungen im File. :roll:

Benutzeravatar
thoralt
Site Admin
Site Admin
Beiträge: 262
Registriert: 10.04.2006, 08:48
Wohnort: Chemnitz
Kontaktdaten:

Re: PWM auf der DDS

Beitrag von thoralt » 19.11.2010, 22:02

Hallo Leute,

ich stehe gerade auf dem Schlauch. Immerhin funktioniert schon beinahe die Einstellung PWMHi/Lo, aber jetzt habe ich folgendes Phänomen: Sobald das Offset-Null-Relais abgeschaltet wird, also sobald die Offsetspannung verschieden von 0 Volt ist, wird der Controller heiß. Dies tritt nicht nur im PWM-Modus auf, sondern auch bei allen anderen Wellenformen. Was zum Geier ist jetzt wieder los? Ich habe schon in der Firmware gestöbert, genauso wie im Schaltplan, aber mir fällt nichts dazu ein. Wenn ich das Panel abziehe, ist das Verhalten genauso.

Ich messe an PD3 (LED Offset) 5 V, wenn die LED aus ist und 2,2 V, wenn sie an sein soll. Der Controller kann also die Leitung nicht auf GND ziehen. PD3 hat keinen Kurzschluss zu einem anderen Pin oder zu Vcc/GND. Gibt es noch etwas, wonach ich suchen kann? Oder sind das die Nebenwirkungen von meinem neulichen Abschuss des OC1B-Ausgangs?

Irgendwie sehe ich hier kein Land.

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: 915
Registriert: 25.01.2008, 23:34

Re: PWM auf der DDS

Beitrag von psclab38 » 19.11.2010, 22:23

thoralt hat geschrieben:Ich messe an PD3 (LED Offset) 5 V, wenn die LED aus ist und 2,2 V, wenn sie an sein soll. Der Controller kann also die Leitung nicht auf GND ziehen. PD3 hat keinen Kurzschluss zu einem anderen Pin oder zu Vcc/GND. Gibt es noch etwas, wonach ich suchen kann? Oder sind das die Nebenwirkungen von meinem neulichen Abschuss des OC1B-Ausgangs?

Irgendwie sehe ich hier kein Land.
Hi Thoralt, was machst Du denn? :shock: Mein erster Gedanke: der kaputte Ausgang hat eine defekte Schutzdiode oder einen defekten Ausgangstransistor, mit mehr oder weniger Kurzschluß. Wenn Du nun den Anschluß umschaltest, dann fließt ordentlich Strom und der Controller kann heiß werden. Nur so in's Blaue hinein...

Grüße
Paul

PS: Ich hab für die Dokumentation grade die Bezugsfrequenzen der Marker im Sweepmodus grade in Latex eine Tabelle gesetzt. Schon lange nicht mehr gemacht. :mrgreen:

Benutzeravatar
thoralt
Site Admin
Site Admin
Beiträge: 262
Registriert: 10.04.2006, 08:48
Wohnort: Chemnitz
Kontaktdaten:

Re: PWM auf der DDS

Beitrag von thoralt » 20.11.2010, 12:58

Hallo,

ich habe den Pin vom Controller jetzt hochgebogen, dann tritt das Problem nicht mehr auf. Eine Strommessung vom Lötpad nach Masse ergab normale 4 mA für die LED, daran kann's also nicht gelegen haben. Wer weiß, was diese 4 mA im Controller durchgesteuert haben, dass der so "überreagiert". Weitere Nachforschungen erübrigen sich, der Pin ist jetzt abgebrochen :)

Hätte ich ein Ersatzteil rumliegen, würde ich ihn tauschen, aber so fehlt mir der Antrieb (ich hätte noch einen ATmega32 auf einer unbestückten DCG-Platine, aber der ist zu schade, um ihn runterzulöten).
psclab38 hat geschrieben:PS: Ich hab für die Dokumentation grade die Bezugsfrequenzen der Marker im Sweepmodus grade in Latex eine Tabelle gesetzt. Schon lange nicht mehr gemacht. :mrgreen:
Irgendwie seid ihr zwei nicht zu bremsen, oder? :)

Viele Grüße
Thoralt
There are 10 kinds of people in this world: Those who understand binary and those who don't.

dg1vs
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 136
Registriert: 20.12.2009, 22:26

Re: PWM auf der DDS

Beitrag von dg1vs » 25.11.2010, 21:46

thoralt hat geschrieben:Irgendwie seid ihr zwei nicht zu bremsen, oder? :)
Thoralt
Gibt genug Dinge die bremsen.... Aber was solls, ich habe wieder "3" Zeilen in die Doku eingefügt. Kommentare und "Prügel" wieder direkt an mich.

Das Binärproblem ist meiner Meinung nur dadurch lösbar, dass die png-File als binär-Files eingescheckt werden.

Grüße Karsten

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

Re: PWM auf der DDS

Beitrag von psclab38 » 25.11.2010, 22:38

dg1vs hat geschrieben:Gibt genug Dinge die bremsen.... Aber was solls, ich habe wieder "3" Zeilen in die Doku eingefügt. Kommentare und "Prügel" wieder direkt an mich.
Wenn Du "3" Zeilen einfügst, dann hab' ich grade noch 2 Cents dazugelegt :D

Dein Literaturhinweis zum AD9833 hat aber z. B. im *.tex gefehlt, sehe ich grade... :?:
dg1vs hat geschrieben:Das Binärproblem ist meiner Meinung nur dadurch lösbar, dass die png-File als binär-Files eingescheckt werden.
Befürchte ich auch. Wir sollten nur nicht wieder gleichzeitig dran drehen; kommt nicht gut.

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

Re: PWM auf der DDS

Beitrag von psclab38 » 29.11.2010, 21:14

psclab38 hat geschrieben:
dg1vs hat geschrieben:Das Binärproblem ist meiner Meinung nur dadurch lösbar, dass die png-File als binär-Files eingescheckt werden.
Befürchte ich auch. Wir sollten nur nicht wieder gleichzeitig dran drehen; kommt nicht gut.
Das mit den png-Dateien hab ich grade erledigt. Die sind jetzt als Binärdateien auf Sourceforge.

Grüße
Paul

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

Re: PWM auf der DDS

Beitrag von psclab38 » 30.04.2012, 14:12

Hallo Forum,

ich habe mir mal das alte Thema nochmal rausgegriffen, weil ich die Baustelle gerne mal zuende bringen wollte.
Thoralt im November 2010 hat geschrieben:Ich versuche gerade, mir die Auswirkungen der Überbrückung von C28 klarzumachen. Eigentlich will ich ja das PWM-Signal optimal in das System integrieren. Das heißt, es soll dem Signal des AD9833 möglichst nahekommen. Der hat 0,65 V Vout(max) - dieses Niveau kann man mittels R13 erreichen. Das Signal ist dann aber asymmetrisch. Mittels unserer Offset-Spannungsverstellung könnten wir zwar digital gegenhalten, aber dann ist das Gesamtsignal nicht mehr im vollen Bereich +/-10 V verstellbar.

Entweder klemmen wir an U12a/IN- noch 8k2 + Poti 4k7 nach +5V (damit sollte sich irgendwie 2,5 V negatives Offset an IN- einstellen lassen), oder wir ersetzen C28 durch was größeres (100 uF oder mehr, muss aber kein 50-V-Typ sein wie in der Schaltung angegeben). Die Lösung mit einem größeren C28 scheint mir verlässlicher, da sie näher am Original liegt.
Ich habe mir das nochmal durchgedacht und auch ein wenig gemessen. Schlußfolgerung ist, daß C28 raus muß. Er schneidet den DC-Anteil des PWM-Signals ab. Das ist ok, aber das stimmt jeweils nur für ein festes Tastverhältnis und Zweck der Übung ist halt ein variables Tastverhältnis. Für den (DC-freien) Audioeingang war C28 ok; nur hier können wir ihn nicht brauchen.

Auch die Originalschaltung um U12a muß geändert werden, damit am Ausgang 0..0,65V rauskommt, da wir ja dem Signal des AD9833 nahekommen müssen. Aus dem Controller-PIN kommt 5V-TTL und der U12a ist mit einer Verstärkung von 1 bis 6 dimensioniert, das wird also auch mit R13 auf Linksanschlag nie kleiner als 5V. Daher plädiere ich für einen Vorwiderstand vor R19 um auf das Niveau von 0,65V zu kommen. Den R13 kann man auch noch reduzieren, dann kann man die Amplitude besser einstellen.

Also nochmal die Fakten der Reihe nach:
- AD9833 hat einen Ausgangsspannungsbereich von 38mV bis 650mV. Das ist nicht symmetrisch und es gibt einen kleinen Offset von 38mV
- Der DC restorer mit U9/U8 verschiebt den Arbeitspunkt auf den "virtuellen" Ruhepegel (650mV-38mV)/2+38mV.
- Die PWM-Spannung vom Controller ist 5V-TTL
- Die Schaltung um U12a hat eine Verstärkung im Bereich V=1...6, einstellbar mit R13
- Die U12a Stufe für PWM muß eine Ausgangsspannung haben von 0..650mV, wir brauchen also einen Spannungsteiler
- C28 entkoppelt den DC-Anteil des PWM-Signals, aber dieser variiert mit dem Tastverhältnis (ist ja auch Zweck des Ganzen). Außerdem ruiniert C28 die PWM-Signalform unterhalb von 50Hz.

Vorschlag für eine Hardware-Änderung für den Einsatz der PWM-Option anstelle des Audio-In:
- neue Verbindung vom PWM-out des Controllers an PIN3/U12a über einen neuen Widerstand 470k (Verhältnis neu/R19 = 11:1)
- optional: neuer Widerstand 47k und R19 = 4k7 (Zielverhältnis 11:1)
- optional: damit die PWM-Amplitude feiner eingestellt werden kann, kann man R13 z. B. durch 10k ersetzen
- C28 durch eine Brücke ersetzen.

Jetzt ist doch alles gut!? Nein, leider nicht. Die 38mV Offset, die die Schaltung um U8 erwartet, holen uns leider ein. Das klingt erstmal nach nicht viel, aber im Verhältnis zu 650mV ist es doch eine Menge. In der Praxis kommen dann noch einige Millivolt Offset des U12a hinzu und dann landen wir ca. bei 50mV. Bezogen auf den DDS-Ausgang mit voller Amplitude +/10V sind das dann knapp 2Volt Offset.

Jetzt könnte man, wie Thoralt schon vorgeschlagen hat, noch ein Offset-Poti an U12a ranfädeln oder auch mit BS170 und Poti parallel zu R18 den DC-Restorer U9 schaltbar für den PWM-Modus justieren. Ist halt alles nicht schön.
Andere Alternative von Thoralt war, die Offset-Spannung softwaremäßig zu bemühen. Das geht recht gut, ich hab's schon mal ausprobiert, frißt aber etwas Code vom sowieso nicht allzu üppigen Flash und ein zusätzlicher Kalibrierparameter muß auch noch rein. Die zwei Volt zusätzlich sind in den Endstufen grade noch drin.

Was meint Ihr?

Grüße
Paul

Benutzeravatar
moosmichel001
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 175
Registriert: 06.12.2007, 10:09
Wohnort: Schwerin

Re: PWM auf der DDS

Beitrag von moosmichel001 » 02.05.2012, 14:11

psclab38 hat geschrieben: Ich habe mir das nochmal durchgedacht und auch ein wenig gemessen. Schlußfolgerung ist, daß C28 raus muß. Er schneidet den DC-Anteil des PWM-Signals ab. Das ist ok, aber das stimmt jeweils nur für ein festes Tastverhältnis und Zweck der Übung ist halt ein variables Tastverhältnis. Für den (DC-freien) Audioeingang war C28 ok; nur hier können wir ihn nicht brauchen.
Wie wäre es, wenn wir einfach darauf verzichten, das Relais SW1 zu schalten und eine Brücke von SW1/Pin4 zu U8/Pin3 verlegen, C28 ist dann gebrückt.
Gruß Moosi
Eine genagelte Schraube hält besser als ein geschraubter Nagel.
FPGA v2.61 CORERAM/COREIO/(LCD)
ADAC v1.73 IO8-32/DA12-8(16bit)/AD16-8/CVC/REL8/OUT8
2 DCG(16bit) v2.91 DCP/BF + EDL 2A v1.78 + DIV v3.10 TRMSC
DDS v3.71 TRMSC + DIV v3.10 TRMSC + EDL 10A

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

Re: PWM auf der DDS

Beitrag von psclab38 » 02.05.2012, 19:37

moosmichel001 hat geschrieben:Wie wäre es, wenn wir einfach darauf verzichten, das Relais SW1 zu schalten und eine Brücke von SW1/Pin4 zu U8/Pin3 verlegen, C28 ist dann gebrückt.
Tut mir leid, aber das verstehe ich nicht. Wenn Du den Relaiskontakt SW1 brückst, dann geht halt nur noch PWM. Der AD9833 kann über den 2k2 (R21) sicher nicht gegen den direkten Ausgang des U12a gewinnen. M. E. ist das Relais genau dort, wo es gebraucht wird. Nur der C28 stört und den kann man ganz einfach an seinen Anschlüssen brücken.

Gruß
Paul

Benutzeravatar
moosmichel001
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 175
Registriert: 06.12.2007, 10:09
Wohnort: Schwerin

Re: PWM auf der DDS

Beitrag von moosmichel001 » 02.05.2012, 21:15

Hallo,

nochmal ich.
Zur Veranschaulichung:
dds_detail.GIF
Schaltungsdetail
dds_detail.GIF (10.21 KiB) 7334 mal betrachtet
Solange Relais SW1 in Ruhe verharrt entspräche ja deine Schaltung deinem Vorschlag, wenn SW1 anzieht, dann haben wir wieder den "Urzustand".

Sorry, muß ich nochmal überdenken.
Eine genagelte Schraube hält besser als ein geschraubter Nagel.
FPGA v2.61 CORERAM/COREIO/(LCD)
ADAC v1.73 IO8-32/DA12-8(16bit)/AD16-8/CVC/REL8/OUT8
2 DCG(16bit) v2.91 DCP/BF + EDL 2A v1.78 + DIV v3.10 TRMSC
DDS v3.71 TRMSC + DIV v3.10 TRMSC + EDL 10A

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

Re: PWM auf der DDS

Beitrag von psclab38 » 02.05.2012, 21:49

Hallo Moosi,
moosmichel001 hat geschrieben:Solange Relais SW1 in Ruhe verharrt entspräche ja deine Schaltung deinem Vorschlag, wenn SW1 anzieht, dann haben wir wieder den "Urzustand".
Hmm. Ich verstehe es immer noch nicht: Du hattest eingangs geschrieben "einfach darauf verzichten, das Relais SW1 zu schalten". Nun möchtest Du doch schalten?

Für den Normalbetrieb Sinus/Dreieck/Rechteck muß der Relaiskontakt offen sein, weil sonst der AD9833 gegen den Ausgang des U12a ankämpfen muß (ob nun mit oder ohne C28), was er wegen des 2k2 R21 Widerstandes nicht schaffen kann. Und für PWM dominiert der U12a, mit geschlossenem Kontakt.

Wie schon geschrieben, ich habe kein Problem mit dem Relais, das gehört dahin wo es ist und der C28 gehört überbrückt, wegen dem variablen Gleichspannungsanteil. Weil man ja nur entweder den Audioeingang nutzen oder nach PWM umbauen kann, brauche ich ihn für PWM gar nicht. Ich suche nur nach der elegantesten Möglichkeit, die Sache mit dem Offset für PWM in den Griff zu bekommen.

Gruß
Paul
DDS_PWMinput_mod.png
Modifikation für PWM
Zuletzt geändert von psclab38 am 02.05.2012, 22:51, insgesamt 1-mal geändert.

Benutzeravatar
moosmichel001
kann c't-Lab-Module konstruieren
kann c't-Lab-Module konstruieren
Beiträge: 175
Registriert: 06.12.2007, 10:09
Wohnort: Schwerin

Re: PWM auf der DDS

Beitrag von moosmichel001 » 02.05.2012, 22:26

Ja, aber es sollte nur dann geschaltet werden, wenn der Externe Audioeingang zugeschalten wird.

Aber dein Einwand, daß der AD9833 nicht gegen den OPV ankommt besteht dann ja nach wie vor. Eine Alternative wäre ein Relais mit 2UM aber das müßte man ja ziemlich in de Schaltung improvisieren.

Ich höre auf mit meinen Umbauvorschlägen. ;)

Ich werde den Tag beenden.

Gruß Moosi
Eine genagelte Schraube hält besser als ein geschraubter Nagel.
FPGA v2.61 CORERAM/COREIO/(LCD)
ADAC v1.73 IO8-32/DA12-8(16bit)/AD16-8/CVC/REL8/OUT8
2 DCG(16bit) v2.91 DCP/BF + EDL 2A v1.78 + DIV v3.10 TRMSC
DDS v3.71 TRMSC + DIV v3.10 TRMSC + EDL 10A

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

Re: PWM auf der DDS

Beitrag von psclab38 » 02.05.2012, 23:02

moosmichel001 hat geschrieben: Eine Alternative wäre ein Relais mit 2UM aber das müßte man ja ziemlich in de Schaltung improvisieren.
Eher ein extra Relais und eine zweite OP-Stufe wie U12a; dann könnte man zwischen PWM und Audio-In wechseln. Für Deinen Vorschlag braucht man drei Zustände und die hat ein Relais allein halt nicht:
- Kein Relais angezogen: Normalbetrieb mit AD9833: Sinus/Dreieck/Rechteck
- Audio-In Relais mit C28
- PWM-In Relais mit direkter Verbindung
(oder so ähnlich). Thoralts Idee war ursprünglich, den PWM-Modus fest anstatt des Audio-In zu verwenden, nicht umschaltbar.

Gruß
Paul

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

Re: PWM auf der DDS

Beitrag von psclab38 » 10.05.2012, 23:08

Vorschlag zur Modifikation für PWM statt Audio-in:
DDS_PWMinput_mod2.png
Schaltungsvorschlag
Wann man für R13 4k7 rumliegen hat, dann wäre es fast noch besser.
Ach ja, das neue Poti und R13 beeinflussen sich gegenseitig ein wenig; da muß man ein wenig iterativ vorgehen.

Der Aufbau kann dann so aussehen:
IMG_2534rczx.jpg
mal wieder Huckepack!
IMG_2534rczx.jpg (88.04 KiB) 7273 mal betrachtet
Notfalls täte es auch ein ausgemessener Widerstand von Pin2/U12a nach -15V (bei mir ca.230k). Aber wer will schon eine solch schnöde Lösung.

Antworten