DDS erster Versuch

#2393591
Lesenswert?

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.
Gast #2393623
Lesenswert?

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
#2393638
Lesenswert?

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)
#2393672
Lesenswert?

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
Gast #2393695
Lesenswert?

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
Gast #2393704
Lesenswert?

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
Gast #2393707
Lesenswert?

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.
#2393816
Lesenswert?

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.
Gast #2393818
Lesenswert?

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.
Gast #2393994
Lesenswert?

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.
Gast #2394040
Lesenswert?

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
#2394677
Lesenswert?

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
Gast #2394695
Lesenswert?

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.
Gast #2394696
Lesenswert?

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.
Gast #2394775
Lesenswert?

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
Gast #2394965
Lesenswert?

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.
#2395003
Lesenswert?

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
Gast #2395088
Lesenswert?

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.
#2395826
Lesenswert?

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.
#2395919
Lesenswert?

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.
#2396293
Lesenswert?

> 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...
Gast #2396327
Lesenswert?

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.
#2396636
Lesenswert?

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
Gast #2399538
Lesenswert?

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
#2399836
Lesenswert?

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 ?
Angehängte Dateien:
Gast #2399866
Lesenswert?

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.
#2399905
Lesenswert?

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.
Gast #2399926
Lesenswert?

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.
#2400592
Lesenswert?

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.
#2400782
Lesenswert?

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!
Gast #2400829
Lesenswert?

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.
Gast #2400988
Lesenswert?

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.
#2400997
Lesenswert?

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.
#2406252
Lesenswert?

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.
Angehängte Dateien:
#2409793
Lesenswert?

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.
Gast #2409838
Lesenswert?

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.
Gast #2417489
Lesenswert?

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 =
#2417549
Lesenswert?

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
#2417606
Lesenswert?

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.
#2418720
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren