Forum: Mikrocontroller und Digitale Elektronik Jespers DDS 100ms an 100ms aus Teil 2


von Cheffe (Gast)


Lesenswert?

Moin, vor einiger Zeit habe ich hier schon einmal einen Thread (Jespers 
DDS 100ms an 100ms aus) gestartet.

Ich habe inzwischen einiges Probiert. Z.B. Anstelle des Sinus Sinus^2 
generiert.

Wie ich ja schrieb, möchte ich einen Ton (z.B. 1000Hz) für 100ms 
anschalten und dann für 100ms ausschalten. Im späteren Programm sollen 
die Zeiten und Töne variabel sein.

Leider habe ich immer noch dieses unangenehme leise "Ticken" im 
Hintergrund. Die Daten gehen vom ATMEGA32-Port A über ein R2R-Netzwerk, 
einem Spannungsteiler und eine Treiberstufe (TDA7267) an einen 
8Ohm-Lautsprecher. Je höher die Ein/Ausschaltrate, desto deutlicher wird 
das Ticken. Bei 1 Sekunde an und 1 Sekunde aus fällt dass nicht auf.

Damit die Spannung am Verstärker IC (TDA 7267) etwas langsamer ansteigt 
habe ich eine An- und Abschwingphase über jeweils vier Perioden 
eingebaut.

Mein Programm berechnet nun die Gesamtanzahl der Sinusperioden. Z.B. 
100. Das Programm gibt nun den Sinus aus und zwar

- eine Periode mit 1/16 der Aplitude,
- eine Periode mit 1/8 der Aplitude,
- eine Periode mit 1/4 der Aplitude,
- eine Periode mit 1/2 der Aplitude.

Dann folgen 92 Perioden mit voller Aplitude (Maxwerte 128 bzw 0) und 
dann

- eine Periode mit 1/2 der Aplitude,
- eine Periode mit 1/4 der Aplitude,
- eine Periode mit 1/8 der Aplitude,
- eine Periode mit 1/16 der Aplitude.

Am Oszi sieht alles gut aus. Dennoch diese leise Ticken. An- und 
Ausschwingphase sind mit der restlichen Ausgabe genau abgeglichen. Es 
gibt keine Sprünge und auch das Timing ist äußerst exakt. Alle 
Nulldurchgänge haben den gleichen Abnstand.

Macht es Sinn, die Amplitude beim An- und Abschwingen weiter zu senken? 
Die Max-Amplitude der ersten Schwingung ist ja nur 0.16V groß. Oder ist 
der Verstärker (beschaltet wie im Datenblatt) untauglich?


Cheffe

von Jobst M. (jobstens-de)


Lesenswert?

Warum schreibst Du nicht dort weiter?
-> Beitrag "Jespers DDS 100ms an 100ms aus"

Du hast das Problem nun in 4 kleine Probleme zerteilt, es jedoch nicht 
behoben. Die Lösung wurde Dir im anderen Thread gezeigt.


Gruß

Jobst

von Cheffe (Gast)


Lesenswert?

>>Warum schreibst Du nicht dort weiter?
Keine Ahnung ...

>>nun in 4 kleine Probleme
warum 4?


Cheffe

von CB__Teddy_09 (Gast)


Lesenswert?

Im Netz http://www.solorb.com/elect/sidetone/index.html hat jemand einen 
Morseton-Generator veröffentlicht. Nix mit DDS oder so. Auf dem Bild 
sieht man, wie Sinus über fünf Perioden einschwingt. Das Ausschalten 
geht schnell, aber auch mit abfallender Sinus-Amplitude. Das soll 
knackfrei sein.



mfg
CB_Teddy_09

von Karl (Gast)


Lesenswert?

Jobst hat es wie auch schon damals korrekt erfasst. Du brauchst eine 
kurze Amplitudenmodulation, die sinusförmig aufsteuert und nicht 4 
Sprünge. Da hättest auch bei einem bleiben können! Neuer Thread ziemlich 
sinnlos.

von Cheffe (Gast)


Lesenswert?

Moin Karl und Jobst,

Eure Vorschläge sind alle gut aber ich kann sie nicht umsetzen. Mir 
fehlt die Rechenzeit/-Rechenpower.

Darüberhinaus habe ich mal das Nebengeräsuch etwas sondiert. Es tritt 
nicht beim Tonanfang auf. Wie bisher von allen vermutet, sondern 
ausschließlich am Ende.

Das kann man sehr deutlich heraushören, wenn man länger schwingen läßt.



Cheffe

von Jobst M. (jobstens-de)


Lesenswert?

Cheffe schrieb:
> Mir fehlt die Rechenzeit/-Rechenpower.

Nein! Liest Du Dir Beiträge überhaupt durch? Oder möchtest Du sie nicht 
verstehen? Oder möchtest Du es einfach nicht so lösen, daß es 
funktioniert?


Cheffe schrieb:
> Es tritt
> nicht beim Tonanfang auf. Wie bisher von allen vermutet, sondern
> ausschließlich am Ende.

Die Aussage, daß es am Anfang und auch am Ende ist, stammt von Dir. Und 
die war auch korrekt! Mag sein, daß man es am Anfang nicht so gut 
wahrnehmen kann.


Ich klinke mich hier jetzt aus!


Gruß

Jobst

von Cheffe (Gast)


Lesenswert?

Lieber Jobst,

da Du Dich ja nun ausklinkst und Dich in Deine arrogante Welt zurück 
ziehst, erspare ich mir weitere Worte.

Aber vielleicht lesen ja auch noch andere mit.

Die von mir genannten 100ms/100ms/1000Hz sind nur ein Besipiel. Im 
Extremfall möchte ich nur 500Hz mit 20ms an und 20ms ausgeben. Das sind 
dann mal gerade 10 Perioden. In der 20ms Pause ist mein ATMEL so 
zeimlich ausgelastet und selbst während der Ausgabe des Sinus hat der 
Controller was zu tun.

Und auf die jweils knapp 20 Taktzyklen, die das An- und Abschwingen zur 
zeit benötigt verzichte ich auch ungerne.

Ich habe mir mal die Seite, die CB_Teddy_09 gepostet hat angeschaut. Da 
sind die erste und letzte Schwingung ganz schön scharf.

Jobst M. schickte ja dieses Bild: 
http://www.mikrocontroller.net/attachment/132928/knack.png

Und da frage ich mich, wieso die Hardware-Lösung von G. Forrest Cook 
nicht knackt: http://www.solorb.com/elect/sidetone/cwwave.jpg


mfg
Cheffe

von HF_Fuzzy (Gast)


Lesenswert?

Hi Cheffe,

kein Grund maulig zu werden!

Also dein Problem sind kurze Sinus-Töne, bei denen störende 
Nebengeräusche auftreten. Sowas kennt man ja gut z.B. von den Telefonen 
beim Freizeichen oder Besetzton oder sonstigen Servicesignalen. Klingt 
auch grottig.

Wir haben mal in der Ausbildung Töne mit dem PC erzeugt. Über die 
Parallelschnittstelle. Von Jespers DDS hatte da noch niemand was gehört, 
Anfang der 90er. Wir haben einen DA-Wandler mit OP und AD-Wandler und 
sukzessiver-Approximation gebaut. Ziel war auch ein Sinus und damals 
gabs die Probleme auch beim Ein- und Ausschalten. Allerdings hatten wir 
einen 286er mit viel Speicher und Performance ;.-) GW-Basic.

Nun zu deinem Problem..

Was helfen kann ist die schrittweise Erhöhung der Amplitude. Aber nicht 
so wie du das gemacht hast. Das ist stufig und das führt zum Knacksen. 
Besser wäre es, wenn man es in einer S-Form macht, so ähnlich wie beim 
Cosinus von 180° bis 360°. Also die Spannung jeder Sinusschwingung so 
erhöhen, als würde U-Spitze auf dem Cosinus liegen.

Nun willst du ja superkurze Töne haben. Kann man bei 20 ms überhaupt 
noch einen Frequenzunterschied erkennen? Aber egal. Ziel sind wohl 
minimale 10 Perioden. Du könntest jetzt in fünf Stufen die Spannung 
erhöhen und dann wieder verringern. Immer entlang des Cosinus. Das wäre 
immer noch Stufig und wird auch noch ein paar Geräusche machen. Aber bei 
so wenigen Perioden ist das halt ein Kompromiss.

Nun schreibst du ja, dass du keine Rechnerleistung opfern möchtest oder 
kannst. Dann bleibt Dir nichts übrig als was vom Flash abzuzwacken. Das 
bedeutet, wenn Du fünf Amplitudenstufen und 256 DDS Punkte hast, 1280 
Byte. Der Sprung von Tabelle zu Tabelle ist mit wenigen Taktzyklen 
abgearbeitet.




HF-Fuzzy

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
Noch kein Account? Hier anmelden.