Forum: Mikrocontroller und Digitale Elektronik ATmega welcher DAC für Sound


von Sven (Gast)


Lesenswert?

Mädels, ich brauch mal eure Hilfe bei einer Entscheidung: Welchen Form 
des DAC nehm ich für eine Soundausgabe? Controller ist der ATmega8, 
Soundformat soll Wave mit 8bit sein, "Radio"qualität, mono.

A: PWM an OC1 oder OC2 mit 3fach-Tiefpass
+ nur ein Pin
+ wenig Platzbedarf
- niedrige Samplerate, unübliche Samplerate (31.25kHz@16MHz, 
22.05kHz@11.29MHz)
- Höhenbegrenzung durch Tiefpass mit niedriger Grenzfrequenz
- event. Glitching in der PWM

B: DAC mit R2R-Netz an einem Port
+ einfache Datenausgabe
+ hohe Samplerate, 44.1kHz sollte kein Problem sein
- größerer Platzbedarf
- bei diskretem Aufbau genaue Widerstände erforderlich

C: 1-bit-Sampler
+ hohe Samplerate
+ einfache Datenausgabe
+ wenig Platzbedarf
- speziell umgerechnete Datenfiles erforderlich

D: externer DAC über 8-bit-Bus
+ hohe Samplerate
+ einfache Datenausgabe
- höherer Platzbedarf, zusätzlicher IC
- muss mich wieder für einen entscheiden ;-)

Die 8 Portpins für R2R oder externen DAC hätte ich gerade noch so.

Was meint das Puplikum? Oder soll ich lieber den Telefonjoker einsetzen?

von Paul Baumann (Gast)


Lesenswert?

Mach's mit B.
Wenn Du SMD-Widerstände von der gleichen Rolle nimmst, dann sind sie
untereinander schön gleich. Der Absolutwert ist doch Brust, Hauptsache
sie stimmen untereinander. Die Dinger sind so klein, daß man sie schön
auf den Portleitungen vom Kontroller unterbringen kann.

MfG Paul

von Frank K. (fchk)


Lesenswert?

Schau Dir das hier mal an:

http://www.ladyada.net/make/waveshield/

fchk

von Sven (Gast)


Lesenswert?

@Paul: Von einer Rolle also die 2R 10k, und die R 2x10k übereinander 
löten?

@Frank: Also 12bit-DAC an SPI? Kann ich dabei das Hardware-SPI 
verwenden, an dem die datenliefernde SD-Karte hängt, oder bekomme ich 
dann nicht genug Daten über den Bus? Das sehe ich im Schaltplan vom 
WaveShild nicht: 
http://www.ladyada.net/images/wavshield/v11/wave11schem.png

von Frank K. (fchk)


Lesenswert?

Sven schrieb:

> @Frank: Also 12bit-DAC an SPI? Kann ich dabei das Hardware-SPI
> verwenden, an dem die datenliefernde SD-Karte hängt, oder bekomme ich
> dann nicht genug Daten über den Bus? Das sehe ich im Schaltplan vom
> WaveShild nicht:
> http://www.ladyada.net/images/wavshield/v11/wave11schem.png

Beim Waveshield benutzen die getrennte Pins, weil der DAC natürlich 
exakt im 8 kHz Raster seine Daten haben will. Der DAC bekommt aber 16 
Bit pro Sample (12+4 Steuerbits), d.h. prinzipiell läuft der auch am 
Hardware SPI. Vorteile hat man natürlich, wenn man nicht solche alten 
Kamellen wie eine M8 nimmt, sondern einen Chip, wo man zwei SPIs in 
Hardware haben kann.

fchk

von Sven (Gast)


Lesenswert?

Hoho, wenn ich Preise für DACs (SMD) bei Reichelt und CSD sehe, werd ich 
wohl doch in paar Widerstände investieren.

Hat noch jemand eine Meinung zu Variante A oder C? Oder sind die wegen 
zu schlechter Soundqualität nicht diskussionswürdig?

von Hannes L. (hannes)


Lesenswert?

Ich nehme meist den Tiny85, der hat Highspeed-PWM mit PLL. Der macht 250 
kHz PWM-Frequenz. Da genügt dann ein einfacher Tiefpass auf dem Weg zum 
LM386.

...

von Jörg H. (idc-dragon)


Lesenswert?

Wozu hinter der PWM nochmal analog werden? Gleich einen Schaltverstärker 
dran, Siebung vorm Lautsprecherausgang.

Jörg

von Hannes L. (hannes)


Lesenswert?

Jörg H. schrieb:
> Wozu hinter der PWM nochmal analog werden? Gleich einen Schaltverstärker
> dran,

Hab' ich gemacht, geht auch gut für Dinge, die nur mal kurz tönen 
sollen. Hat sich aber bei Dauerbetrieb nicht bewährt, da hat sich der 
LM386 als besser geeignet erwiesen. Auch ein Lautstärke-Poti ist damit 
leichter realisierbar.

> Siebung vorm Lautsprecherausgang.

Dazu reicht eigentlich schon die Induktivität des Lautsprechers. Die 
Schwachstelle beim Schaltverstärker war der Auskoppel-Elko.

>
> Jörg

...

von Sven (Gast)


Lesenswert?

Der Tiny85 hat aber nicht genug Pins, ich brauch noch 8 Schalteingänge. 
Und einen gut verfügbaren Mega mit High-Speed-PWM gibts meines Wissens 
nicht, oder?

von Hannes L. (hannes)


Lesenswert?

Sven schrieb:
> Der Tiny85 hat aber nicht genug Pins, ich brauch noch 8 Schalteingänge.
> Und einen gut verfügbaren Mega mit High-Speed-PWM gibts meines Wissens
> nicht, oder?

Richtig, das ist nunmal das Dilemma...

...

von Uwe (de0508)


Lesenswert?

nur so als Tipp

attiny861 verwenden und hier lesen:

http://elm-chan.org/works/sd20p/report.html

.

von spess53 (Gast)


Lesenswert?

HI

>Der Tiny85 hat aber nicht genug Pins, ich brauch noch 8 Schalteingänge.
>Und einen gut verfügbaren Mega mit High-Speed-PWM gibts meines Wissens
>nicht, oder?

ATTiny261/461/861 u. ATTiny26.

MfG Spe

von Hannes L. (hannes)


Lesenswert?

Der Tiny861 hat zwar mehr Pins, ist aber noch lange kein "Mega"... ;-)

Duck & wech...

...

von Sven (Gast)


Lesenswert?

Hm, ich glaub ich muss mal paar neue AVRs testen. Dass der 861 kein MUL 
kann, werd ich wohl umgehen können.

Gefällt mir...

von Sven (Gast)


Lesenswert?

Naja, Mega wegen der direkten MUL um den Pegel anzupassen. Andererseits 
ist bei 8bit sowieso nicht viel am Pegel zu drehen.

Ich muss mich endlich mal wieder anmelden, um eigene Beiträge editieren 
zu können. :(

von spess53 (Gast)


Lesenswert?

Hi

>Der Tiny861 hat zwar mehr Pins, ist aber noch lange kein "Mega"... ;-)
>Duck & wech...
>...

Wenn er keinen Hardware-Multiplizierer braucht, sehe ich kein Problem. 
Oder was macht einen ATMega sonst noch aus?

MfG Spess

von Hannes L. (hannes)


Lesenswert?

spess53 schrieb:
> Hi
>
>>Der Tiny861 hat zwar mehr Pins, ist aber noch lange kein "Mega"... ;-)
>>Duck & wech...
>>...
>
> Wenn er keinen Hardware-Multiplizierer braucht, sehe ich kein Problem.

Ich sehe da auch kein Problem, bin aber nicht auf den Tiny861 
eingegangen weil explizit nach einem Mega gefragt wurde.

> Oder was macht einen ATMega sonst noch aus?
>
> MfG Spess

Wegen der PLL-Highspeed-PWM (als DAC) mache ich ja "Arbeitsteilung". Ein 
Tiny2313 decodiert alle 5 Kanäle einer 2,4GHz-Fernsteuerung, steuert 
Antrieb, Licht und Sonderfunktionen einer Gartenbahn-Lok, und gibt noch 
Steuersignale zum Tiny85, der sich ganz gemütlich nur um den Sound 
kümmert.

...

von Sven (Gast)


Lesenswert?

Also der 861 ist drin. Danke für den Tipp, man sollte doch immer mal 
über den Tellerrand schauen.

In den Sound-Projekten ist oft kein Quarz drin. Der interne Oszi scheint 
also genau genug für das Timing zu sein. Egal, muss gehen, eh kein Pin 
mehr frei für den externen Quarz. ;-)

von Hannes L. (hannes)


Lesenswert?

Sven schrieb:
> Also der 861 ist drin.

Ääähhh, wo ist der drin? Bei AOL??
(Ich dachte immer, Boris sei "drin".) ^^

> Danke für den Tipp, man sollte doch immer mal
> über den Tellerrand schauen.

Muss man das jetzt verstehen?

>
> In den Sound-Projekten ist oft kein Quarz drin. Der interne Oszi scheint
> also genau genug für das Timing zu sein.

Genau ist nur wichtig, wenn das Teil mit Anderen zusammen musizieren 
soll und demnach den Ton (die Frequenz) genau treffen muss.

Für eigenständige Soundausgabe genügt es, wenn der Oszillator in sich 
stabil ist, also die Frequenz stabil hält, auch wenn sie etwas daneben 
sein sollte. Es kommt eben nur darauf an, dass es nicht jault.

> Egal, muss gehen, eh kein Pin
> mehr frei für den externen Quarz. ;-)

Geht schon.

...

von Sven (Gast)


Lesenswert?

In der Schaltung drin, statt dem Mega8. Ich hab halt so Favoriten, die 
ich gut kenne: Tiny25, Tiny2313, Mega8, Mega32. Man kann sich ja auch 
nicht alles hinlegen. Aber man kann ja mal was Neues ausprobieren.

von Sven (Gast)


Lesenswert?

@Jörg:
> Wozu hinter der PWM nochmal analog werden? Gleich einen Schaltverstärker
> dran, Siebung vorm Lautsprecherausgang.

Hast Du dafür einen konkreten Vorschlag für 5-10W an 4ohm bei 12V?

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.