Hallo, ich mache gerade die ersten gehversuche einen DDS-Generator zu bauen. Ich habe den Schaltplan mal angehangen, und möchte eure meinung dazu hören, wo ich was verbessern könnte.
Aref nicht an VCC anlegen! Zwar wird der AD-Wandler nicht verwendet, aber wenn durch einen Programmierfehler der Wandler eingeschaltet wird, kann Vcc die interne uref-Erzeugung zerstören: lieber den Anschluss offen lassen. Für die ersten Schritte würde ich den analogen Teil garnicht bestücken, die 12V können tödlich sein für den Kontroller. Genauso erst einmal das Display und die Tasten garnicht anschließen/bestücken. Erst wenn die eigentliche DDS-Routine sauber abläuft, die weitere Bestückung vornehmen und die Tasten- und Display-Routinen ins Programm aufnehmen, also Schritt für Schritt vorangehen. Den analogen Teil finde ich nicht so gut: Wenn man das Poti für den Offset an den +Eingang des zweiten OP-Amp legt, kann man den dritten einsparen. Die Endstufe ist auch die einfachste mögliche Lösung: etwas Ruhestrom bei den beiden Transistoren würde nicht schlecht sein. Anspruchsvolle analog-Verstärker erforden mehr Aufwand. Da liegt der Teufel im Detail, wenn man Schwingschutz auch bei komplizierter Last und hohen Spannungshub mit wenig Verzerrungen beim Nulldurchgang haben möchte.
Mit AREF stimmt natürlich, habe ihn mit einem C gegen Masse gelegt. Die 12V kommen mit dem AVR doch garnicht in berührung. Meinst du den Scleifer von P3 an den +eingang an OP2A?
Der R2R-DAC benötigt eine niederohmige Last. Besser noch einen I/U-Wandler. OP1A könnte das übernehmen. Du benötigst einen Tiefpass! Gruß Jobst
Jobst schrob:
>Der R2R-DAC benötigt eine niederohmige Last.
Warum denn das? Eine niederohmige Last zerquetscht das Signal. Ein Oper-
rationsverstärker als Impedanzwandler ist schon richtig.
Ich habe das selbst auch so gemacht und schreibe das nicht in's Blaue
hinein.
MfG Paul
Nee, habe gemeint, plus-Eingang von OP1B benutzen. Aber dann wird der Offset durch die Verstärkungseinstellung verändert. Lassens wir P3 also lieber dort wo es jetzt ist. Man sollte nicht glauben, wie nahe beim ersten Experimentieren solche 12V-Leitungen zu den Leitungen sein können, wo Schaden entsteht. Irgendwie kommt mir noch der Punkt eigenartig vor, an dem die Ausgangsspannung des D/A-Wandlers abgenommen wird. Stimmt das wirklich? bzw. entsteht die Ausgangsspannung nicht an R17. Die Ausgangsspannung für TTL nicht direkt an der MSB-Leitung abnehmen. Die Eingangskapazität des MOSFET dürfte da Probleme machen. Die dadurch langsamer steigende/fallende Flanke des MSB würde da eine Zacke in den Sinus reinhauen. Das Rechteck-Signal lieber aus dem Ausgangssignal von OP1A erzeugen (Schmitt-Trigger oder Komparator)
Andreas S. schrieb: > So, habe OP1A angepasst. Meinst du das so ? Fast. R18 muß noch weg. Paul Baumann schrieb: > Warum denn das? Ein R2R-Wandler liefert einen AusgangsSTROM Paul Baumann schrieb: > Ich habe das selbst auch so gemacht und schreibe das nicht in's Blaue > hinein. Dann solltest Du nicht nur (falsch) nachbauen, sondern auch mal nachrechnen. Die AusgangsSPANNUNG ist nämlich nicht linear! Gruß Jobst
Ok, geändert. T3 soll dazu dienen, trotz hochgedrehter Amplitude ein TTL-Signal zu bekommen. Ist der wirklich an der falschen stelle, oder sollte mann es komplett anders machen?
T3 ist okay so. R26 kannst Du durch das Poti ersetzen. Damit kann OP1B wegfallen. Den Summierverstärker kannst Du Dir auch sparen, wenn Du parallel zum DAC-Ausgang einen weiteren Strom für den Offset hinzufügst (die Spannung ist ja immer 0V am Eingang des I/U-Wandlers). Gruß Jobst
Jobst schrob: >Dann solltest Du nicht nur (falsch) nachbauen, sondern auch mal >nachrechnen. Ich habe nicht falsch nachgebaut, sondern einen Sinusgenerator mit Attiny 2313, R2R-Netzwerk und einem Puffer-OPV dahinter. Und jetzt kommts: Das funktioniert prima. MfG Paul
Paul Baumann schrieb: > Und jetzt kommts: Das funktioniert prima. Aber es könnte besser funktionieren. Rechne mal nach! Tu Dir den Gefallen und rechne mal für alle 8 Kombinationen bei einem 3-Bit-R2R-Netzwerk nach! Gruß Jobst
Jobst schrob: >Dann solltest Du nicht nur (falsch) nachbauen, sondern auch mal >nachrechnen. Ich habe nicht falsch nachgebaut, sondern einen Sinusgenerator mit Attiny 2313, R2R-Netzwerk und einem Puffer-OPV dahinter. Und jetzt kommts: Das funktioniert prima. Übrigens ist hier noch Einer von Etlichen, der es so gemacht hat: http://www.avr-asm-tutorial.net/avr_de/avr_dac.html MfG Paul
Dieses geniale R2R-Netzwerk hast du sicher als Chip-Kaskade ausgeführt und nicht manuell aufgelötet, oder?
Die Transistoren am Ausgang sind etwas zu klein. Die würde nicht einmal eine normale 50 Ohm Last gut vertragen, geschweige denn einen Kurzschluss. Bei 6 V und 100 Ohm fließen 60 mA, und das macht dann für den Transistor 360 mW an Verlustleistung. Im Fall eines Kurzschluss dann ewta das doppelt. Die Transistoren sollten also eher so etwas wie 2N2905 und 2N2218 sein, ggf. auch BD135 / BD136. Etwas Vorspannung für die Basis wäre dabei wirklich angebracht, sonst muss der OP die Lücke von rund 1,2 V überbrücken. Beim Verstärker gibt es auch noch ganz andere einfache Alternativen, z.B. ein Leistungs OP wie L272 oder TCA0372. Für die maximalen etwa 20-100 kHz sollte da reichen. Einen der OPs könnte man noch einsparen. Die Verstärker sollten wenigstens eine Begrenzung der Bandbreite haben, als Ersatz für einen vollwertigen Rekonstruktionsfilter. Dafür jeweils ein Kondensator parallel zur Rückkopplung. Für ein brauchbares Digitales Ausgangs-Signal sollte man nicht direkt das MSB abgreifen, sondern hinter dem Tiefpassfilter (1. Verstärkerstufe) per Komperator vom Sinus zum Rechteck gehen. Sonst hat man im Digitalen Signal einen deutlichen Jitter, wegen der Quantisierung in der Abtastung. Je nach Software sind das wenigstens 0,5 µs, ggf. auch mehr als 1 µs. Je besser der Tiefpass hinter dem AD Wandler ist, desto höher kann man in der Frequenz gehen. Ein besserer Filter wäre also schon angebracht.
>wenn Du parallel zum >DAC-Ausgang einen weiteren Strom für den Offset hinzufügst Dem kann ich nicht so ganz folgen, wie meinst du das ?
Paul Baumann schrieb: > Übrigens ist hier noch Einer von Etlichen, der es so gemacht hat: Ja, sowas sieht man immer wieder. Ist das ein Beweis? Nachrechnen! Andreas S. schrieb: > Dem kann ich nicht so ganz folgen, wie meinst du das ? So:
1 | +12V |
2 | | |
3 | | |
4 | R<--R--------+-----------> zum I/U Wandler |
5 | | | |
6 | | vom DAC |
7 | -12V |
Gruß Jobst
Hab nun noch weiter angepasst, ich hoffe nicht zu viel b.z.w. hab es richtig verstanden. P.s. Die Endstufe wollte ich durch BC327/BC337 ersetzen.
Na 2 OP´s weg, und P3 so beschalltet wie du es vorgeschlagen hast, oder hab ich da was übersehen?
So. Kacke. Jetzt muß ich nämlich ganz kleine Brötchen backen und ganz vorsichtig zurück rudern. Die vorlaute Aussage, daß der R2R-Wandler nur bei Strom linear funktioniert, stimmt nämlich gar nicht. Habe selber nochmal nachgerechnet. :-/ **weia* Tschulligung ... Gruß Jobst
Andreas S. schrieb: > Na 2 OP´s weg, und P3 so beschalltet wie du es vorgeschlagen hast, oder > hab ich da was übersehen? Evtl. das falsche Bild hochgeladen? Gruß Jobst
Andreas S. schrieb: > Jetzt bin ich total verwirrt............... Du kannst es trotzdem so lassen ... Gruß Jobst
Hinter dem Poti muß noch ein Widerstand, wie in meiner Skizze. Evtl. kannst Du noch einen C gegen Masse an den Schleifer setzen. Gruß Jobst
@Andreas S. Zwischen DAC (R2R) Ausgang und Endverstärker brauchst du noch ein Tiefpassfilter von mindest 4..6 Ordnung um den Takt und Oberwellen aus dem Signal zu filtern. Ohne dieses Filter sieht dein Ausgangssignal aus wie Stacheldraht.
@Helmut: jopp Ich denke, die Endstufe sollte auch nicht so bleiben. Der OP bügelt zwar einiges aus, aber im Übernahmebereich wird es Verzerrungen geben. Gruß Jobst
Deine Grenzfrequenz der RC-Tiefpässe liegt bei rund 2MHz. Das ist viel zu hoch. Die Grenzfrequenz sollte bei ca. 1/3 des Taktfrequenz des DDS Generators liegen. Jobst M. schrieb: > Ich denke, die Endstufe sollte auch nicht so bleiben. Der OP bügelt zwar > einiges aus, aber im Übernahmebereich wird es Verzerrungen geben. Das sehe ich auch so. Etwas Ruhestrom sollte man den Transistoren schon gönnen. Wie es mit der Velustleistung aussieht habe ich jetzt nicht nachgerechnet.
Wofür ist P5? P3 niederohmiger wählen. Das Poti ist mit 3k3 gegen Masse belastet. Und als Filter würde ich zwei hiervon aufbauen (von den aktiven): http://de.wikipedia.org/wiki/Tiefpass#Tiefpass_2._Ordnung Gute Nacht Jobst
Einen Tiefpassfilter sollte man schon vorsehen - es muss nicht gleich 4.-6.ter Ordnung sein, aber wenigstens 2. Ordnung sollte es schon sein. Das mindeste ist aber die Bandbreite der Verstärker zu begrenzen - bei der gezeigten Position des Poties ist das gar nicht mal so einfach. Wie viel Aufwand da Treiben muss hängt vom Frequenzbereich ab - die Störungen liegen je nach Software so ab etwa 200 kHz - 800 kHz aufwärts. Den Offset sollte man auch lieber nach der Amplitudeneinstellung einkoppeln: Das ist zwar etwas mehr Aufwand, aber dann ändert sich der Offset nicht mit der Amplitude. Das TTL Signal vom MSB ab, hat gleich 2 Probleme: extra Last am Port und dann unnötiger Jitter.
Helmut Lenzen schrieb: > Die Grenzfrequenz sollte bei ca. 1/3 des Taktfrequenz des DDS > Generators liegen Bei dem flachen Filter kommt man damit nicht hin. Ich würde 1/10 ansetzen, wenn es nach Kurve aussehen soll und mich mit der Frequenz begnügen. Sollen das 800kHz DDS-Takt werden?
Nein, die Grenzfrequenz des Filters sollte etwa 1/10 der Abtastrate des AD Wandlers betragen, oder halt etwas (z.B. 50%) oberhalb der maximalen gewünschten Frequenz. Mit einem wirklich guten Filter (z.B. Eliptischer Filter 6-8 Ordnung) könnte man bis etwa 1/3 der Abtastrate hoch gehen. Dazu braucht man dann auch noch eine Korrektur der Amplitude. Je nach Programm kommt man mit 16 MHz Takt des µc auf 500 kHz - 1,7 MHz als Abtastrate für den AD. Die ganz langsame Version sollte man aber besser nicht wählen. Etwa 1 MHz (d.h. 16 Zyklen pro sample) sollte man gut hin bekommen. Damit kommt man hier dann auf etwa 100 kHz für den Filter, was gerade zu den gewünschten 50-70 KHz passt. Der Bereich bis etwa 150 KHz geht dann noch für ein Rechtecksignal, oder halt mit abfallender Amplitude beim Sinus.
Also sollte der Filter so aussehen........ Habe 150kHz als Grenzfrequenz gewählt, damit ich noch luft nach oben habe, um evtl. auf 100kHz Ausgangsfrequenz zu kommen.
Jobst schrob: >Jetzt muß ich nämlich ganz kleine Brötchen backen und ganz vorsichtig >zurück rudern. Die vorlaute Aussage, daß der R2R-Wandler nur bei Strom >linear funktioniert, stimmt nämlich gar nicht. Habe selber nochmal >nachgerechnet. :-/ Na Gott sei Dank. Ich habe nämlich mächtig gestutzt... MfG Paul
So, ich habe einen Tiefpass mit F_g 150kHz 6ter Ordnung eingefügt, und die Endstufe modifiziert. Wie ist es jetzt?
Andreas S. schrieb: > Wie ist es jetzt? Sieht schon besser aus. Allerdings wuerde ich die 10K in den Tiefpaessen auf 3.3K oder 4.7K aendern, dann kannst du die Kondensatoren groesser machen. 27pF ist schon etwas klein gegenueber den Schaltkapazitaeten.
So, bin gerade am Code. So ganz will es nicht. Der Sinus wird schön ausgegeben, nur die Frequenz passt nicht. Es sollten eigendlich 1000 Hz rauskommen, dind aber nur 125 Hz. Hab ich da was übersehen? Und ich weiss, ist Bascom, aber immerhin teils in ASM.
1 | $regfile "m48def.dat" |
2 | $crystal = 8000000 |
3 | $hwstack = 32 |
4 | $swstack = 16 |
5 | $framesize = 32 |
6 | |
7 | |
8 | Const Cycles = 9 |
9 | Const Multiplier =(_xtal / Cycles) / 2 ^ 24 |
10 | |
11 | Dim Wave(256) As Byte At &H100 |
12 | Dim Tmpw As Word |
13 | Dim F_out As Long |
14 | Dim Tmpl As Long |
15 | Dim Singl As Single |
16 | ' |
17 | |
18 | Ddrc = &B00000000 |
19 | Ddrd = &B11111111 |
20 | |
21 | Portc = &B11111111 |
22 | |
23 | |
24 | Singl = 1000 / Multiplier |
25 | F_out = Singl + 0.5 |
26 | |
27 | Restore Sine_table |
28 | Rjmp Run_gen |
29 | |
30 | Run_gen: |
31 | Tmpw = 1 |
32 | Do |
33 | Read Wave(tmpw) |
34 | Incr Tmpw |
35 | Loop Until Tmpw > 256 |
36 | Loadadr Wave(1) , Z |
37 | ldi r29,$00 |
38 | ldi r28,$00 |
39 | lds r24,{F_out+0} |
40 | lds r25,{F_out+1} |
41 | lds r26,{F_out+2} |
42 | Gen: |
43 | add r28, r24 ' 1 cycle |
44 | adc r29, r25 ' 1 cycle |
45 | adc r30, r26 ' 1 cycle |
46 | ld r0, Z ' 2 cycle |
47 | ! Out Portd , R0 ' 1 cycle |
48 | sbic PinC,3 ' 1 |
49 | rjmp Gen ' 2 cycles |
50 | Portd = 127 |
51 | |
52 | End |
53 | |
54 | |
55 | |
56 | Sine_table: |
57 | ' |
58 | Data &H80 , &H83 , &H86 , &H89 , &H8C , &H8F , &H92 , &H95 |
59 | Data &H98 , &H9C , &H9F , &HA2 , &HA5 , &HA8 , &HAB , &HAE |
60 | Data &HB0 , &HB3 , &HB6 , &HB9 , &HBC , &HBF , &HC1 , &HC4 |
61 | Data &HC7 , &HC9 , &HCC , &HCE , &HD1 , &HD3 , &HD5 , &HD8 |
62 | Data &HDA , &HDC , &HDE , &HE0 , &HE2 , &HE4 , &HE6 , &HE8 |
63 | Data &HEA , &HEC , &HED , &HEF , &HF0 , &HF2 , &HF3 , &HF5 |
64 | Data &HF6 , &HF7 , &HF8 , &HF9 , &HFA , &HFB , &HFC , &HFC |
65 | Data &HFD , &HFE , &HFE , &HFF , &HFF , &HFF , &HFF , &HFF |
66 | Data &HFF , &HFF , &HFF , &HFF , &HFF , &HFF , &HFE , &HFE |
67 | Data &HFD , &HFC , &HFC , &HFB , &HFA , &HF9 , &HF8 , &HF7 |
68 | Data &HF6 , &HF5 , &HF3 , &HF2 , &HF0 , &HEF , &HED , &HEC |
69 | Data &HEA , &HE8 , &HE6 , &HE4 , &HE2 , &HE0 , &HDE , &HDC |
70 | Data &HDA , &HD8 , &HD5 , &HD3 , &HD1 , &HCE , &HCC , &HC9 |
71 | Data &HC7 , &HC4 , &HC1 , &HBF , &HBC , &HB9 , &HB6 , &HB3 |
72 | Data &HB0 , &HAE , &HAB , &HA8 , &HA5 , &HA2 , &H9F , &H9C |
73 | Data &H98 , &H95 , &H92 , &H8F , &H8C , &H89 , &H86 , &H83 |
74 | Data &H80 , &H7C , &H79 , &H76 , &H73 , &H70 , &H6D , &H6A |
75 | Data &H67 , &H63 , &H60 , &H5D , &H5A , &H57 , &H54 , &H51 |
76 | Data &H4F , &H4C , &H49 , &H46 , &H43 , &H40 , &H3E , &H3B |
77 | Data &H38 , &H36 , &H33 , &H31 , &H2E , &H2C , &H2A , &H27 |
78 | Data &H25 , &H23 , &H21 , &H1F , &H1D , &H1B , &H19 , &H17 |
79 | Data &H15 , &H13 , &H12 , &H10 , &H0F , &H0D , &H0C , &H0A |
80 | Data &H09 , &H08 , &H07 , &H06 , &H05 , &H04 , &H03 , &H03 |
81 | Data &H02 , &H01 , &H01 , &H00 , &H00 , &H00 , &H00 , &H00 |
82 | Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H01 , &H01 |
83 | Data &H02 , &H03 , &H03 , &H04 , &H05 , &H06 , &H07 , &H08 |
84 | Data &H09 , &H0A , &H0C , &H0D , &H0F , &H10 , &H12 , &H13 |
85 | Data &H15 , &H17 , &H19 , &H1B , &H1D , &H1F , &H21 , &H23 |
86 | Data &H25 , &H27 , &H2A , &H2C , &H2E , &H31 , &H33 , &H36 |
87 | Data &H38 , &H3B , &H3E , &H40 , &H43 , &H46 , &H49 , &H4C |
88 | Data &H4F , &H51 , &H54 , &H57 , &H5A , &H5D , &H60 , &H63 |
89 | Data &H67 , &H6A , &H6D , &H70 , &H73 , &H76 , &H79 , &H7C |
Andreas S. schrieb: > Es sollten eigendlich 1000 Hz rauskommen, dind aber nur 125 Hz. Das hört sich so an, als ob dein µC mit der falschen Frequenz läuft. Im Schaltplan hast du 16 MHz, im Quellcode steht 8 MHz und möglicherweise sind deine Fuse Bits nicht richtig für den externen Quarz eingestellt.
Den Offset Regler sollte man besser hinter der Amplitudenregelung haben. Sonst skaliert man immer den Offset mit. Von den Störungen hat ist es auch besser erst den Filter zu haben, und dann den Poti für die Amplitude. Dann geht es auch viel besser das Digitalsignal hinter dem Filter zu gewinnen statt einfach und deutlich schlechter vom MSB. Die R2R Kette hat einen definierten Ausgangswiderstand von 10 K, könnte also auch gleich als Eingang für den Filter dienen. Auch sollte der Amplitudenregler bei einem Signal ohne Gleichspannung sein, also so dass sich mit der Amplitude die Gleichspannung nicht ändert. Eine Möglichkeit dazu wäre es gleich bei der R2R Kette noch eine Negative Spannung dazu zu mischen, so ähnlich wie jetzt die Offseteinstellung. Die jetzige Offset ist also mehr als Abgleich der Schaltung, weniger später zur Bedienung geeignet. Beim Ausgangsverstärker sollte man besser wie bei einem normalen Klasse AB oder B Verstärker noch 2 Widerstände (z.B. 5 Ohm) zwischen die Emitter der Transistoren machen. Die Spannung an der 1N4148 könnte nämlich etwas höher sein als die Basis Emitterspannung beim BC337.
Ich habe erstmal nur den AVR mit dem DAC aufgebaut. Den Sinus habe ich mal angehangen. Habe es im Code auf 16mHz geändert, was aber nichts gebracht hatt. Die Fuses sind : Ext. Crystal Osc. 8.0- MHz; Start-up time PWRDWN/RESET: 1K CK /14 CK + 0 ms
Beim Mega48 ist im Neuzustand noch die CLKdiv8 Fuse Aktive, damit aus dem 8 MHz RC Takt 1 MHz wird. So werden dann aus 16 MHz 2 MHz und aus 1 KHz werden 125 Hz.
Moin, ich habe ein R/2R Netzwerk mit 20KOhm Präzisionsmetallfilmwiderständen aufgebaut. Als Verstärker nehme ich einen TDA7267. Ich glaube 2W an 8Ohm für 2EUR. Billige geht es nicht. Oberwellen sehe ich auf meinem Oszi-FFT nicht. Als DDS habe ich eine von mir angepasste Form des Poor-Man-DDS verwendet. Gruß Cheffe
Meine WDST. kommen morgen. Sind 20K und 10K 0.1%. Ich hoffe, das die Kurven noch etwas sauberer werden. Wenn mann genau hinschaut, sind kleine ausreißer zu sehen, die immer wider kehren.
Wenn man schon den Aufwand mit 0,1% Widerständen treibt, sollte man auf alle Fälle den MSB Ausgang nicht noch zusätzlich belasten. Wichtig sind auch gute Abblockkondensatoren. Durch den Ausgangswiderstand der IO Ports von etwa 30-50 Ohm hat man da aber ohnehin eine kleine Abweichung drin, vergleichbar mit der 0,1% Toleranz.
Ulrich schrieb: > Beim Ausgangsverstärker sollte man besser wie bei einem normalen Klasse > AB oder B Verstärker noch 2 Widerstände (z.B. 5 Ohm) zwischen die > Emitter der Transistoren machen. Die Spannung an der 1N4148 könnte > nämlich etwas höher sein als die Basis Emitterspannung beim BC337. Dazu schonmal ACK ... und zusätzlich noch 100uF Elkos parallel zu den Dioden. So wie hier: http://sound.westhost.com/project113.htm Klaus
Ich denke das ich den Fet weg lasse, und wie empfohlen das TTL-Signal hinter dem ersten OP generiere. Kondensatoren kommen selbstredent auch an die OP-Versorgung gegen masse, 100nF Ker.
Das Signal für das TTL Signal sollte man hinter den komplette Filter, aber vor der Amplitudenregelung abgreifen. Schon deshalb gehört der Poti für die Amplitude hinter den Filter. Das gleiche gilt für den Offset den der User einstellt - den will man eigentlich erst hinter dem Amplitudenregler. Für das TTL Signal kann man auch etwas Abfall in der Amplitude vertragen, und entsprechend auch etwas höher in der Frequenz gehen. All zu hohe Erwartungen sollte man an das Digitale Signal auch nicht haben. Der Filter nutzt für die Festlegung des Nulldurchganges vielleicht 8 Werte des AD Wandlers. Damit kommt man im günstigen Fall (hohe Frequenz) auf etwa eine Zeitlich Auflösung von vielleicht 1/100 bis 1/500 der Abtastzeit, oder rund 1-10 ns. Für niedrigere Frequenzen wird der Nulldurchgang aber zunehmen flacher und die Genauigkeit entsprechend schlechter.
Habe den Schaltplan aufgeteilt wie im Anhang zu sehen ist. Amplitude und Offset habe ich hinter die Filter gesetzt und einen Schmitttrigger angehangen, bei dem ich mir nicht sicher bin, ob das so geht. Um eure meinung wird gebeten.
Wenn du P1 auf minimalen Widerstand drehst hast du den Ausgang auf dem Eingang geschaltet damit hast du fuer dein Rechteck aber auch kein Signal mehr. Als Komparator fuer das Rechteck wuerde ich keinen TL0x8x nehmen. Das ist ein OP und kein Komparator. Besser sowas wie LM311 nehmen. Die sind schneller. Als Amplitudeneinstellung wuerde ich aber auch kein Poti in der Gegenkopplung nehmen sondern vor dem OP als ganz normalen Spannungsteiler schalten.
Also aus dem LM311 werde ich nicht so richtig schlau. Ich lese das so: pin1/4 -- masse pin8 -- 5V pin2 -- 5V pin3 -- eingang pin7 -- ttl ausgang ist das richtig?
Andreas S. schrieb: > Also aus dem LM311 werde ich nicht so richtig schlau. Ich lese das so: > pin1/4 -- masse > pin8 -- 5V > pin2 -- 5V > pin3 -- eingang > pin7 -- ttl ausgang > > ist das richtig? Nicht ganz. Pin 1/4 = GND Pin 8 = VCC Pin 3 = (-) Eingang hier dein Triggerpegel drauf (besten Poti nehmen) Pin 2 = (+) Eingang hier dein Signal drauf Pin 7 = Ausgang TTL braucht aber noch einen Pullupwiderstand nach +5V (1K) Komparatoren haben meistens Open Collector Ausgaenge.
R11 Weg. P5 Ende an OP2B Ausgang , P5 Anfang auf GND , P5 Schleifer an OP3A +Eingang, OP3A - Eingang mit OP3A Ausgang verbinden.
@Helmut, hab ich gemacht.....Ist der rest denn richtig? Zwischendurch erstmal Danke an alle für eure Hilfe !!!
Fast. Gib den beiden Transistoren noch einen kleinen Emitterwiderstand von 1 .. 2 Ohm.
... nur mal so gefragt: "Was hast du gegen die Kondensatoren parallel zu den Endstufedioden ? " Es müssen ja nicht gleich 100uF sein aber die verbessern meiner Meinung nach den Frequnzgang der Stufe erheblich. Vielleicht gibt es auch andere Meinungen. Klaus
Klaus De lisson schrieb: > Vielleicht gibt es auch andere Meinungen. Manchmal frag ich mich, wozu ihr sowas anzettelt. Also: Wozu mit Krampf aus einem uC ein DDS machen? ich würde schlicht und einfach einen AD9833 nehmen, der ist ein richtig richtiger DDS und er ist eigentlich spottbillig, obendrein gehäusemäßig klein. W.S.
> Es müssen ja nicht gleich 100uF sein aber die verbessern meiner Meinung > nach den Frequnzgang der Stufe erheblich. Dann würde ich das beim routen als Option brücksichtigen und Probehalber mit einbauen, dann sieht man ja das Ergebnis. @Andreas Auf deinem Schaltplan ist ein Mega16 eingezeichnet, so wie ich das mitbekommmen habe, wolltest du einen Mega48 verbauen? Da würde ich vielleicht noch ein Schieberegister für das Display mit einplanen sonst könnte es eng werden mit den Pins(wegen eventuellen Futures). Gruß Michael hatte ich eben erst gesehen... EDIT: @W.S. Also erstmal klein anfangen und dann an die grösseren Sachen ran, siehe Thread-Thema! Das ist schon Ok so, aus einem Atmel kann man schon Einiges rausholen, ich bin auch gerade dabei, sowas aufzubauen...
So wie gezeichnet hat man noch ein Problem mit der Amplitude - die wird reichlich klein: Hinter der R2R Kette hat man 5 Vss, nach dem ersten OP noch etwa 1,1 Vss und danach wird es nicht mehr, sondern nur ggf. weniger. Also lieber R10 etwas größer machen und ggf. auch hinten (z.B. bei OP3B) noch mal etwas Verstärkung einplanen.
W.S. schrieb: > Klaus De lisson schrieb: >> Vielleicht gibt es auch andere Meinungen. > > Manchmal frag ich mich, wozu ihr sowas anzettelt. > Also: Wozu mit Krampf aus einem uC ein DDS machen? ich würde schlicht > und einfach einen AD9833 nehmen, der ist ein richtig richtiger DDS und > er ist eigentlich spottbillig, obendrein gehäusemäßig klein. > > W.S. Diese Frage kann ich dir ganz locker beantworten. Man macht es weil es einen riesen Spass macht ! auch die kenntniss über Bausteile die meine Arbeit überflüssig machen könnten ersetzt niemals den Spass und den Lerneffekt. Ich halte also deine Aussage hier für falsch angeordnet. Klaus
So, habe die Schaltung mal zusammengesteckt. Ich habe das Problem, das daß Signal schon am I/U Wandler zusammenbeicht. Die Schaltung (steckbrett) habe ich schon 5 mal nachgesehn, kann keinen Fehler entdecken. Hätte jemand einen Tipp für mich?
Der erste OP hat nur eine Verstärkung von etwa 1/5. Es ist also zu erwarten das das Signal da schon kleiner wird. Danach sollte die geringe Größe etwa erhalten bleiben. Das könnte man aber leicht über den Widerstand R10 ändern - dann auch gleich R14 anpassen
Andreas S. schrieb: > Aber ich kann am DAC-Ausgang schon nix mehr messen. Das ist auch korrekt. Dort fliesst nur Strom, da liegt keine Spannung. Erst hinter dem I/U-Wandler ist wieder Spannung zu messen - sollte zu messen sein. Ansonsten nimmst Du den I/U-Wandler ab und misst dann die Spannung am DAC. Gruß Jobst
Ich habe heute mehrere versionen aufgebaut, und dabei ist die angehangene entstanden. So läuft alles super. Die Amplitude läßt sich bis auf 20 VPP einstellen, der Offset läuft, die Filter arbeiten korrekt. Der LM311 erledigt seinen dienst, ich kann allerdings das TTL-Signal nicht vernünftig am Oszi triggern, es ist zu unruhig ?
Damit die Schaltung auch bei niedriger Frequenz geht, sollte die Komperatorstufe ein kleines bisschen Hysterese bekommen - nicht viel, aber so ein paar 10 mV. Bei Frequenzen unter etwa 1 kHz wird das mit dem TTL Signal prinzipiell schwierig: Der D/A Wandler gibt da schon mehr fach einen gleichen Wert aus, und der Filter kann da auch keine Steigung mehr von der Stufe davor hineinretten. So ein langsames Digitales Signal erzeugt man besser direkt vom µC aus, oder gibt auf dem DA Wandler dazu keinen Sinus mehr aus. Dazu kommt noch, das im interessanten Bereich um 0 der DA Wandler gerade den größten Fehler hat, weil da das MSB umschaltet - mit Hysterese wird das schon mal besser. Ggf. bleibt da dann noch nur das Signal direkt vom MSB abzugreifen. Da hat man aber auch ca. 500 ns Jitter.
Ein Vorschlag: Das Signal für den Komparator aus dem MSB-Pin des Kontrollers auskoppeln. Aber möglichst recht hochohmig, sonst wird der D/A-Wandler beeinflusst. z.B mit Teiler 470kOhm/47kOhm sodass der Komparator an Pin2 so etwa 500 mV abkriegt und nicht zu sehr übersteuert wird. Leider hat das MSB systembedingt einen Jitter, der beim Sinusignal durch den Tiefpass gemildert wird. Bei Nutzung des MSB direkt bleibt der Jitter in voller Höhe erhalten.
Für das TTl Signal hat man die Wahl zwischen dem MSB mit konstant etwa 500 ns Jitter und dem Sinussignal, wo der Jitter kleiner wird, je höher die Frequenz. Grob geschätzt könnte unter etwa 1-2 kHz das MSB direkt besser sein. Der Weg über den Sinus wird bei niedriger Frequenz auch noch zunehmend empfindlich auf eingekoppelte Störungen - das könnte also mit Gehäuse noch einiges besser werden. Wenn es nur um das Rechtecksignal geht - wäre der DDS mit nachgeschaltetem Teiler (z.B. 16,256,1024) auch möglich.
Ja, den Spannungsteiler direkt an den Pin des Kontrollers, der das höchstwertige Bit für den DA-Wandler liefert.
Ich habe mal den BS170 an den MSB-Pin angeschloßen, wie im Anhang zu sehen ist. Das Bild daneben zeigt das TTL-Signal bei 50kHz.
Ja, und die doppelt erscheinenden Flanken des Signals sind ein typisches Merkmal bei der DDS-Technik. Sie treten dann auf, wenn die gewünschte Frequenz aus der Taktfrequenz nicht durch einen ganzzahligen Faktor erzeugt werden kann. 127,33333.. entsteht eben dadurch, dass zweimal durch 127 geteilt wird und einmal durch 128.
Ich denke das ist dann ein generelles problem des DDS, und nicht der erzeugung des TTL-Signals. Oder ist die version mit Spannungsteiler und LM311 stabieler?
Andreas S. schrieb: > Oder ist die version mit Spannungsteiler und > LM311 stabieler? Da hast du noch ein Tiefpassfilter drin. Aber warum probierst du es nicht einfach mal aus.
Da stimmt dann aber was nicht. Wenn die DDS Frequenz nicht genau einstellbar ist, kommt man nur nicht auf das Ziel, aber doppelte Takte darf es nicht geben.
Ich muß gestehen, das die LM311 version hinter den Filtern doch stabieler und in den höheren Frequenzen Flankensteiler ist.
Elektrohans schrieb: > Da stimmt dann aber was nicht. Wenn die DDS Frequenz nicht genau > einstellbar ist, kommt man nur nicht auf das Ziel, aber doppelte Takte > darf es nicht geben. Es gibt keine "doppelten Takte". Das ist einfach nur Phasenjitter.
Ich habe jetzt mal die endstufe dazu gebaut. Nun rauchen mir die Transistoren weg.......Die gesteckte Schaltung hab ich schon 5mal nachgesehen.
Bei den kleinen Transistoren musst du mindestens jeweils 22Ohm statt 1Ohm in die Emitter einfügen. Die rauchen sonst schon vom Ruhestrom ab, wenn die Toleranzen der Ube und Ud "unglücklich" sind.
Mach zum Testen erstmal die Emitterwiderstaende groesser. Dann mist du mal die Spannung zwischen den beiden Basen und dann die Spannung ueber die Emitterwiderstaende.
Und selbst mit größeren Emitterwidertsänden "verbrennen" diese kleinen Transistoren bei vollem Hub und erst recht im Falle von Kurzschluß am Ausgang. Endstufen von Funktinionsgeneratoren sollten so ausgelegt werden, dass sie Dauerkurzschluss vertragen.
Habe die Basis wdst. auf 27 Ohm erhöht, zwischen den Basen habe ich 1,28V, über den Emitterwdst hab ich 38 mV.
Wenn da jetzt 1 Ohm Emitterwiderstaende drin sind dann fliessen bei 38mV locker 38mA Strom. 38mA * 6V = 228mW Verluste im Ruhezustand. Das ist jetzt fuer die beiden Transistoren schon reichlich viel. Hast du eventuell BD137/138 da?
Die "doppelte" Frequenz auf dem Oszilloskop ist nur scheinbar sichtbar, weil das Oszilloskop mehrfach auf den Schirm schreibt und da einmal mit einem kurzen Takt (aus"128" stammend) und ein anderesmal mit einem langen Takt (aus "127" stammend, Beispiel 127,3333) beginnt. Im single-slope-Betrieb sieht man so etwas nicht. Durch Tiefpass wird dieses hin-und her-Ruckeln des Taktes weitgehend geglättet, wie auch die "Treppenstufen" des Sinusverlaufs. Nur fängt hinter dem Tiefpass der Komparator meistens Streusignale zusätzlich zum Sinus ein, sodass bei direkter Entnahme aus dem MSB der Takt wenigstens "eindeutiger" ist. Nun muss man halt entscheiden, welche Ausgangsform des Taktes willkommener ist. Der aus dem MSB oder der aus dem Sinus gewonnene. Es war halt nur ein Vorschlag. Trotzdem, Glückwunsch zum Fortgang des Projekts!
Die BD-typen hab ich leider nicht. So wie es aussieht, sollte ich mir die besorgen, oder?
Andreas S. schrieb: > Leider nicht. Ansonnsten nur die standart typen BC547/557, einige bd437 > , bd618 , bd139. BD139 -> Komplementär ist BD140 hast du den da? BD437 -> Komplementär ist BD438 " " " " ?
@Helmut L. Die Komplementären hab ich leider nocht (noch). Für die Emitter WDST. reichen die normalen 1/4W ?
Wenn du die Transitoren noch besorgen must dann nimm aber BD137-16 /BD138-16. Du kannst ja 4 x 3.9 Ohm parallel schalten dann hast du 1 W.
Zur Not könnte man von den BC338/ BC328 auch je 2 Stück parallel (jeder mit eigenem Emitterwiderstand) nehmen. Damit hätte man eine gewisse Chance das der Verstärker auch einen Kurzschluss übersteht. Die Emitterwiderstände sollten eher so um die 10-22 Ohm sein. Zur Sicherheit - vor allem für den Fall des Auschaltens bei Induktiver Last, ggf. auch noch am Ausgang Dioden (ggf. auch nur 1N4148) zur Versorgungsspannung gegen Überspannung. Wenn man Transistoren besorgen muss, wären die BD137 / BD138 meine Wahl - ggf. auch die ähnlichen (höhere Spannungsfestigkeit) BD139/BD140. Für den Anfang könnte man auch den BD618 mit dem BD139 kombinieren - ist nicht Ideal, aber wenn sie da sind.
dachte i mir fast ;) , i brauch ~ 10x mehr, werd wohl zu einem ADxxxx greifen muessen Danke! & vlG Charly
Die sollten dafür ausreichen. Du hast ja nur +- 12V. Aber bitte ein kleines Kühlblech dran machen
Es läuft, mit 1 Ohm Emitter wdst. Kühlkörper kommt drann. Sollte ich im Ausgang noch eine 315mA sicherung vorsehen? Reicht für den normalfall ja aus.
Andreas S. schrieb: > Sollte ich im > Ausgang noch eine 315mA sicherung vorsehen? Bevor die kommt sind die Transistoren längst platt. Dann besser elektronische Strombegrenzung vorsehen.
Der 50 Ohm Widerstand am Ausgang sollte als Strombegrenzung reichen. Ohne den Widerstand hat man sonst ohnehin Probleme den Verstärker mit jeder Last stabil zu bekommen. Wegen dem Widerstand macht es auch nichts wenn die Widerstände am Emitter größer als 1 Ohm werden - für eine thermische Stabilität wäre das auch zu empfehlen. je nach Kühlkörper besteht sonst die Gefahr eines thermischen "davonlaufens". Als Grobe Abschätzung für den nötigen Widerstand: Für 1 A mehr an Strom gibt es im ungünstigen Fall etwa 12 W mehr an Leistung oder bei rund 40 K/W für den Kühlkörper dann 480 K an Temperaturerhöhung. Mit einem Tk von 2 mV/K wären das 960 mV, und die dürfen dann maximal zu 1 A an Stromerhöhung führen, damit das ganze noch stabil ist. Mit 1 Ohm ist man da schon arg dicht an der Grenze. Die oben vorgeschlagenen 4,7 Ohm passen da schon besser und sind immer noch kleine gegen die 50 Ohm am Ausgang.
Die Kühlkörper müssen so groß dimensioniert werden, dass alle Bauteile einen außen angelegten Dauerkurzschluß bei maximal einstellbarer Spannung aushalten. Auch der 50Ohm Widerstand muss mit entsprechend großer Bauform gewählt werden. Man kann natürlich auch viele kleine Widerstände parallel und in Serie schalten um auf die 50Ohm zu kommen.
Ich habe mal eine Frage bezüglich der Spannungsversorgung. Angedacht ist eine symetrische versorgung mit einem 2x12V/425mA Trafo, ein 7812/7912/7805 und dem üblichem kleinkram. Würdet ihr was anderes vorschlagen?
Andreas S. schrieb: > Sollte mann dem TTL-Ausgang auch eine kleine Endstufe verpassen z.b. mit > einem BC337? Besser 3 .. 4 Gatter von einem HC04 oder 00 parallel Schalten. Dann hast du eine bessere Flankensteilheit als ein BC337. Und den 50 Ohm Ausgangswiderstand nicht vergessen.
Naja kannst du machen dann aber als Gegentaktendstufe. Wofür brauchst du soviel Strom?
So, ich habe das ganze nach den angehangenen Plänen mal aufgebaut und es läuft alles bestens. Die TTL-erzeugung habe ich wälbar gemacht weil ich festgestellt habe, das in den unteren Frequenzen es über den MSB-Spannungsteiler, und in den oberen Frequenzen über den Filter die besten ergebnisse bringt.
Wider ein Problem. Ich wollte ja einen Schalter zum abschalten des Filters einbauen, so wie in der Zeichnung zu sehen ist. Wenn ich nun den Filter einschalte, ist alles ok. Schalte ich ihn ab, ist das Signal vermurkst. Ist das so überhaupt möglich?
Andreas S. schrieb: > Wider ein Problem. Ich wollte ja einen Schalter zum abschalten des > Filters einbauen, so wie in der Zeichnung zu sehen ist. Wenn ich nun den > Filter einschalte, ist alles ok. Schalte ich ihn ab, ist das Signal > vermurkst. Ist das so überhaupt möglich? Der Filter hat bei DDS schon seinen Sinn. Je hoeher die Ausgangsfrequenz sich der Taktfrequenz des DDS Generators naehert um so wichtiger wird der Filter. Also braucht man ihn auch nicht abschaltbar zu machen.
Ich wollte evtl. den Filter abschalten, wenn ich andere Wällenformen darstelle außer einen Sinus. Bei entsprechender Frequenz sieht sonnst alles nach Sinus aus.
Die käulichen Geräte haben einfach zwei oder mehr Filter je nach Signalform. 1 Filter für Sinus 1 Filter für Dreieck
Für die Generierung des Rechtecks sollte man den Filter immer drin lassen. Für niedrige Frequenzen wäre gff sogar noch eine deutlich niedrigere Grenzfrequenz sinnvoll. Ein Dreiecksignal wird auch ohne Filter nicht gut, wenn die Frequenz höher (so ab etwa 1/100-1/20 Abtastrate) wird. So viel schneidet der Filter nicht weg von den Frequenzen (außer den Spiegelfrequenzen) die der DA Wandler produziert. Ein bisschen Filter braucht man auch für das Dreiecksignal, sonst bekommt man ggf. zu viele HF Störungen. Es kann hier auch schon sein, dass die R2R Kette ohnehin nicht so schnell ist.
Hallo, jetzt hatt sich noch ein problem ergeben. Ich hab das layout schon x-mal nachgesehen und keine erklärung dafür gefunden. File1 zeigt das Signal direkt am Ausgang vom Amplituden OP, und File0 das selbe am eigendlichen Ausgang, also hinter der Endstufe. Hatt jemand von euch einen tip????
Andreas S. schrieb: > Hatt jemand von euch > einen tip???? Dein unterer Transistor macht Probleme. Passiert das bei auch bei kleinen Amplituden? Wie sind die Spannung an der Endstufe ohne Signal? Alle Symmetrisch?
Bei ca. 4v sieht die Kurve normal aus, wobei der Offset nach oben verschoben ist. ( Obere welle 3v, untere 1v). Die Spannungen an den C´s vom BDxxx ist 11.82 und -11.96
Das könnte ein Problem mit R29 (dem Widerstand von -12 V zur Basis des Transistors sein, ist der eventuell etwas sehr groß ?. Schon der eingezeichnete Wert von 4,7 K ist schon recht groß, vor allem ohne Kondensatoren parallel zu den Dioden. Wie sieht denn die Spannung an der Baisis des Transistors aus =
Ohne Signal habe ich am oberen 1.28V und am unteren 0V. Die Widerstände sind beide 4.7k.
Andreas S. schrieb: > Ohne Signal habe ich am oberen 1.28V und am unteren 0V. Die Widerstände > sind beide 4.7k. Wo hast du den Pin 1 vom OP abgeschlossen? Sieht so aus als waere der nicht an der Mitte der beiden Dioden sondern an der Basis des unteren angeschlossen.
Hab mal das Layout angehangen. Die Endstufe ist Links oben. Der Pin1 ist richtig angeschloßen.
Sieht erstmal richtig aus. Schon mal die Dioden durchgemessen ob da nicht irgendwo eine Loetbruecke ist? Ohne Signal muss der OP an Pin 1 0V ausgeben. Und damit an den Basen -0.7 und 0.7V anliegen. Auch der Pin 2 muss 0V haben und Pin3 ebenso. Also Pin 1 = ?V Pin 2 = ?V pin 3 = ?V NPN Basis = ?V PNP Basis = ?V
Pin1=-0,6v bis -8,5v je nach offset einstellung Pin2=6,2mV Pin3=6,2mV bis -8V je nach offset einstellung npn basis=188mV bis -8V pnp basis=-1,1v bis -9,1v
Jetzt noch bitte die Spannung an den beiden Emittern. Bitte auch die Emitterwiderstaende kontrollieren.
Die Spannungen pnp basis=-1,1v bis -9,1v und PNP Emitter BD136/e=6,5mV passen irgendwie nicht zusammen. Damit wuerde der PNP ja eine UBE von 1.1V haben. Und npn basis=188mV bis -8V BD135/e=6,5mV passt auch nicht, der ist ja immer gesperrt. Hast du schon mal beide Transistoren und die Widerstaende getauscht b.z.w. durchgemessen.
Komisch. Ich hatte in der aufgebauten Schaltung statt BD135/136 die BD137/138 eingesetzt. Jetzt habe ich mal den BD135/136 eingebaut, und es läuft jetzt. Die beiden eingebauten BD137/138 sind aber nicht def.
Kalte Lötstelle , Haarriss in einer Leiterbahn , Feinschluss zwischen Bahnen irgendensowas könnte es sein. Wenn es jetzt läuft ist doch alles OK.
Hier mal ein Bild vom fertigen Gerät. Wellenformen sind Sinus, Rechteck, Dreieck, Sägezahn, Sägezahn revers, ECG, Noise, Pulse und TTL.
@Andreas S. Das sieht manierlich aus. Womit hast Du die Frontplatte beschriftet? MfG Paul
Erst doppelseitige Klebefolie, und darauf die eigendliche, bedruckte Folie (Spiegelverkert) aufgeklebt.
Du hast dich aber beeilt damit. Doch hast du schön gemacht. Einen kleinen Tipp für das Display. Wenn du hinter dem Display ein Blechwinkel machst kannst du es da anschrauben und hast keine Schrauben in der Frontplatte. Und auch schon mal den Klirrfaktor gemessen? Ich bin in einem aktuellen Projekt auch an sowas dran. Allerdings mit 12 Bit Auflösung und nur bis 2 KHz. Komm dabei auf ca. 0.1 % Klirr. Ist allerdings kein Funktionsgenerator.
Andreas S. schrieb: > Blechwinkel ok, aber der muß ja auch angeschraubt werden, am Boden? Ja. Aber dann siehst du die Schrauben nicht , sind ja dann von unten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.