www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Suche kleinen DAC für Sprachausgabe oder lieber PWM?


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich suche einen kleinen, günstigen DAC, am besten im SMD-Gehäuse welche 
ich mittels SPI mit Daten füttern kann welch dann als Audio Ausgegeben 
werden.
Weiterer Nachteil: Ich bin Privatperson, kann also nur bei Firmen kaufen 
welche auch mein Geld wollen und das ohne Gewerbeschein.
Weiterhin brauch ich auch noch was wo ich die gesampelten Sounds 
reinstopfen kann. Ich dachte da an ein Dataflash von Atmel. Ist das 
Geeignet?

Mein Projekt:
Ein kleiner AVR (Tiny2313) soll per SPI daten zum DAC senden. Diese holt 
der uC aus dem Besagten Dataflash. Das ganze soll max. 5 Samples 
beinhalten welche beim bestromen eines dafür zugeordneten Pins 
abgespielt werden. Als Verstärkerbaustein verwende ich einen LM386, für 
einen kleinen Lautsprecher in einem 5V System ist der absolut 
ausreichend.

Da ich in Bascom Programmiere (für Zeitkritische Sachen würde ich dann 
Inline-Assembler verwenden) wäre ein kurzer Abriss über den 
Funktionsablauf sehr hilfreich. Ich arbeite mich in C gerade erst seit 
kurzer Zeit ein, daher traue ich mir das in C noch nicht zu, soweit ist 
mein Wissensstand noch nicht.

Falls man sich den DAC schenken kann und das ganze mit PWM erledigen 
kann bin ich natürlich auch nicht traurig. Nur kann der Tiny2313 das 
ganze schnell genug verarbeiten (mit 20MHz)? Ich dachte vom Sound her an 
8 Bit Mono mit 22 oder 32Khz. Besser ist natürlich immer gut, allerdings 
brauche ich nicht unbedingt CD-Qualität. Alternativ zum PWM wäre ein 
R2R-DAC da auch geeignet für 8 Bit? Widerstände mit 1% Toleranz 
vorausgesetzt? Sollte halt einigermaßen Verständlich sein.

Vielleicht kann mir jemand etwas auf die Sprünge helfen.

MFG
Andreas

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmel hat sowas schonmal vorbereitet:

http://www.atmel.com/dyn/resources/prod_documents/...

hans

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Tiny261/461/861 mit seiner HighSpeed-PWM ist Dein Freund, 10Bit mit 
64kHz Samplerate sind da durchaus möglich und für Sprache und einfache 
Töne absolut ausreichend. Bis auf einen passiven Tiefpass und natürlich 
den Sound-Datenspeicher brauchst Du keine weiteren Bauelemente.

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verweise mal auf http://elm-chan.org/works/sd8p/report.html
'ne µSD-Karte dürfte womöglich sogar billiger als ein Dataflasch kommen

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Knut Ballhause schrieb:
> Der Tiny261/461/861 mit seiner HighSpeed-PWM ist Dein Freund

Wo gibts den zu kaufen?

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas schrieb:
> Wo gibts den zu kaufen?

Bei CSD zum Beispiel.

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab vor paar Wochen einen Atmega16 Schlagzeug spielen lassen.
Die Samples(Bassdrum, Snare, Hihat) fressen im Moment ~4kB(8000kHz 8bit 
Mono). Das geht mit einem Timer im PWM-Modus, ge-PROGMEM-ten Wave 
Dateien und unter 30 Zeilen Code.

Meine nächste Spielerei in der Richtung ist, die Zahlen von 1-10 und 
noch ein paar andere Schnipsel in Silben zu zerlegen, um z.B. 
GPS-Koordinaten eines Geocaches oder die Uhrzeit anzusagen.
mfg mf

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@minifloat,

gibst du nähere infos, z.B. wie du die samples abspielst? Welche 
Programmiersprache benutzt du?

Autor: Joachim K. (minifloat)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ist in C geschrieben. Sourcen gezippt angehängt.

Nicht schön, Qualität ist mies aber funzt einigermaßen.
Musste die Sourcen noch von meinem Realnamen usw. bereinigen.
Ist auch nicht schön geschrieben, die ISR ist ellenlang, Spaghetticode, 
teilweise vom rumprobieren falsche Kommentare usw.

Die Wav-Dateien wurden mit Audacity aus einem freien Drumloop 
herausgeschnitten, nach 8kHz unsigned 8bit umgewandelt und mit einem 
selber geschriebenen billigen Kommandozeilen-Konvertertool in unfertige 
Headerdateien verwandelt. Unfertig, weil ich musste noch den Header der 
Wav-Datei manuell aus dem Array herausnehmen sowie Schlüsselwörter, wie 
PROGMEM usw, dazueditieren. Wenn du das "Konvertertool" haben willst, 
geb ich dir gern die Source. Eigentlich, wenn ichs recht überlege, 
stimmt die Samplefrequenz beim Abspielen auch nicht wirklich. Müssten 
8,192kHz sein.

Häng einen PC-Lautsprecher über sagen wir mal 100Ω + kleinem Elko an 
einen der OCR-Pins und lausche den abgehackten 8bit Samples :)

mfg mf

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.. da es neulich mal irgendwo genannt wurde konnte ich mich erinnern:

http://www.mcselec.com/index.php?option=com_conten...

Autor: Dieter S. (dolivo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für mich bleiben die ISD-Schaltkreise für solche Zwecke erste Wahl: 
einfache Ansteuerung, beste Sprachqualität.
http://www.nuvoton-usa.com/

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für Sprachausgabe reichen 8 Bit und auch eine niedrigere Abtastrate 
(z.B. 8 kHz). Mehr hat man beim Telefon auch nicht. Ganz 8 Bit 
Genauigkeit sind schon schwer per R2R, aber 6-7 Bit sind realistisch und 
auch noch ausreichend.   Für die Auflösung reicht auch noch ein normaler 
µC ohne high speed PWM.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ulrich schrieb:
> Für Sprachausgabe reichen 8 Bit und auch eine niedrigere Abtastrate
> (z.B. 8 kHz). Mehr hat man beim Telefon auch nicht.

Telefon benutzt aber eine nichtlineare Bewertung der 8 Bits und klingt 
dadurch weitaus besser, als lineare 8 Bit PCM.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.