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
Atmel hat sowas schonmal vorbereitet: http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf hans
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.
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
Knut Ballhause schrieb: > Der Tiny261/461/861 mit seiner HighSpeed-PWM ist Dein Freund Wo gibts den zu kaufen?
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
@minifloat, gibst du nähere infos, z.B. wie du die samples abspielst? Welche Programmiersprache benutzt du?
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
.. da es neulich mal irgendwo genannt wurde konnte ich mich erinnern: http://www.mcselec.com/index.php?option=com_content&task=view&id=234&Itemid=57
Für mich bleiben die ISD-Schaltkreise für solche Zwecke erste Wahl: einfache Ansteuerung, beste Sprachqualität. http://www.nuvoton-usa.com/
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.
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.
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.