Hallo, würde gerne Wave-Dateien auf meine uC ausgeben. Diese würde ich zunächst vom PC via USART an den uC schicken oder streamen und dann "ausgeben". Nun habe ich mich etwas informiert und gelesen, dass PWM wohl die gängigste Methode ist, um Lautsprecher anzusteuern. Wie genau das nun funktioniert, weiß ich noch nicht, da werde ich mich dann genauer informieren, aber das ist momentan noch nicht Thema. Ich würde gerne zunächst wissen, welche Hardware ich am besten nehme. Ich möchte zunächst "billigere" Hardware nehmen, bevor ich irgendwas zerlege. Die Soundqualität sollte natürlich schon "einigermaßen" sein. Könnt ihr mir da irgendetwas empfehlen, am besten via. Reichelt.de bestellbar? Brauche ich noch andere Hardware? Ich verwende einen Atmega32. Nebenbei noch, weil ich keinen neuen Thread für so eine Kleinigkeit eröffnen möchte: Der Atmega32 ist ja soweit ich das mitbekommen habe, das bewährte Standardmodell, aber ist es jetzt immernoch Stand der Dinge, oder was ist heute der gängigste uC? Gruß
Nimm einen dsPIC33FJ128GP802 (28 Pin DIL oder SO) oder 804 (44 Pin TQFP). Der läuft mit 40 MHz und hat einen Stereo Audio DAC eingebaut mit differentiellen Ausgängen. Entweder machst Du daraus mit einem OpAmp single-ended Ausgänge, oder Du nimmst einen Verstärker mit differentiellen Eingängen. Der DAC kann Abtastraten bis zu 100kHz und arbeitet mit 16 Bit Samples bei 14 Bit Auflösung. Das sollte auch für CD-Qualität reichen. Du kannst natürlich auch einen anderen dsPIC (es gibt jetzt auch die dsPIC33EP mit 70 MHz) oder einen der größeren PIC32 nehmen, die haben alle Framed SPI Unterstützung, und daran einen Audio-DAC per I2S oder TDM anschließen. Viele dsPICs haben auch ein Digital Codec Interface, das genau dafür gedacht ist. Mit diesen Möglichkeiten kannst Du problemlos eine sehr anständige Audioqualität erreichen. Du vermisst hier AVR? Sorry, der ist für diesen Zweck eine schlechte Wahl. fchk
Frank K. schrieb: > Du vermisst hier AVR? Sorry, der ist für diesen Zweck eine schlechte > Wahl. > > fchk Bin garantiert nicht unbedingt AVR Fan, aber das ist nicht korrekt: http://elm-chan.org/works/sd8p/report.html
Lautsprecher schrieb: > würde gerne Wave-Dateien auf meine uC ausgeben. Diese würde ich zunächst > vom PC via USART an den uC schicken Wie soll das klingen? Nehmen wir mal an, du sendest mit 115400 baud, dann hast du - 8 Bit Audio vorausgesetzt - so etwa 11 kHz Samplingrate, die du über die Serielle drüberkriegst. Bei 16 Bit sind es nur noch 5.5 kHz. Schau dich mal um nach dem relativ simplen Kompressionsverfahren, was Sierra vor ganz langer Zeit für seine DOS-Spiele benutzt hat. W.S.
Harald A. schrieb: > Frank K. schrieb: > >> Du vermisst hier AVR? Sorry, der ist für diesen Zweck eine schlechte >> Wahl. >> >> fchk > > Bin garantiert nicht unbedingt AVR Fan, aber das ist nicht korrekt: > > http://elm-chan.org/works/sd8p/report.html Wobei das da auch eher eine nicht erweiterbare Bastellösung ist und den meisten AVRs die für diese Lösung erforderlichen hinreichend schnellen PWM-Einheiten fehlen. Ein Mega 32 oder Mega 644p geht dafür also nicht. I2S und Framed SPI zum Anschluss eines externen Codecs oder eines digitalen Verstärkers wie dem MAX98355 oder dem SANYO/On Semi LV4904V haben die AVRs auch nicht, geeignete DACs auch nicht. Daher denke ich, dass mein summarisches Urteil gerechtfertigt ist und dass es für diesen Zweck geeignetere Controler-Familien gibt, die bessere Peripherie und mehr Rechenleistung zum gleichen Preis bieten. fchk
W.S. schrieb: > Wie soll das klingen? Nehmen wir mal an, du sendest mit 115400 baud, > dann hast du - 8 Bit Audio vorausgesetzt - so etwa 11 kHz Samplingrate, > die du über die Serielle drüberkriegst. Bei 16 Bit sind es nur noch 5.5 > kHz. Wie gesagt, das Problem soll später zu lösen sein, mir ist es zunächst wichtig, die passende Hardware zu finden, welchem mit dem Atmega32 kompatibel ist.
Interpretiere ich das richtig: Der externe Aufwand kann beliebig hoch sein, solange in der Mitte ein ATMEGA32 bleibt?
Lautsprecher schrieb: > W.S. schrieb: >> Wie soll das klingen? Nehmen wir mal an, du sendest mit 115400 baud, >> dann hast du - 8 Bit Audio vorausgesetzt - so etwa 11 kHz Samplingrate, >> die du über die Serielle drüberkriegst. Bei 16 Bit sind es nur noch 5.5 >> kHz. > Wie gesagt, das Problem soll später zu lösen sein Der springende Punkt ist, dass dieses Problem, solange du WAV per USART auf den µC überträgst und diese sofort (live) abspielen lässt, nicht lösbar ist. Du wirst in diesem Szenario auch später nicht über die 11kHz drüber kommen. Wenn dir das reicht, ist es ok. Aber später lösbar ist es nicht. Damit ist diese Forderung hier > Die Soundqualität sollte natürlich schon "einigermaßen" sein. je nachdem was du unter 'einigermaßen' verstehst, ein echter Problemfall. Wenn dein Setup da heute nicht entspricht, dann wird es auch in Zukunft nicht entsprechen. Und zum Zwischenspeichern der WAV auf dem Mega32 fehlt dir der Speicher, solange es sich nicht um kurze Samples handelt, die in einer Schleife laufend wiederholt werden können.
Harald A. schrieb: > Der externe Aufwand kann beliebig hoch sein, solange in der Mitte ein > ATMEGA32 bleibt? Kommt darauf an wie hoch beliebig ist, aber im Grunde, ja :) Karl Heinz Buchegger schrieb: > Der springende Punkt ist, dass dieses Problem, solange du WAV per USART > auf den µC überträgst und diese sofort (live) abspielen lässt, nicht > lösbar ist. Ist mir klar, hab ich schon verstanden. Zur not muss ich halt noch einen Speicherbaustein oder sonstiges einbinden. Dann ist das eben kein Stream, sondern "on demand", aber das soll mich erstmal nicht weiter stören ;)
Da würde ich dann nicht lange umtun und einen 8-Bit R2R DAC an einen Port anschliessen. An den Ausgang kommen dann billige PC-Aktivboxen und der Quäker-Teil steht erst mal.
Entschuldigung, dass ich so lange nicht geantwortet habe, hatte keine Zeit... Karl Heinz Buchegger schrieb: > Da würde ich dann nicht lange umtun und einen 8-Bit R2R DAC an einen > Port anschliessen. An den Ausgang kommen dann billige PC-Aktivboxen und > der Quäker-Teil steht erst mal. Kannst du mir da konkret was empfehlen? Evtl. via Reichelt.de bestellbar? Grüße
R-2R-DAC mit Einzelwiderständen... einfach eine 100er-Tüte Widerstände 10k 1% Metallfilm kaufen. Verschaltung hier: http://de.wikipedia.org/wiki/R2R-Netzwerk Dazu noch einen bipolaren Elko mit 10µF, falls die Lautsprecher keinen drin haben sollten. Lautsprecher werden seit Jahren ungefragt bei jedem neuen PC mitgeliefert. Qualität meist unterirdisch, aber für so ein Projekt genau das Richtige zum Anfang. Später darfst Du natürlich auch die Infinity Kappa über den Restek-Verstärker dranhängen... Zum Experimentieren erzeugt man auf dem PC eine WAV-Datei, 8Bit Mono, 8kHz Samplingrate. Das ist in etwa Telefonqualität. Ab Byte-Offset 0x44 stehen die Audio-Daten Byteweise. Diese dann einfach im Abstand von 1/8kHz = 125us auf den Port rausschieben, an dem die Widerstände hängen. Viel Spass. http://de.wikipedia.org/wiki/RIFF_WAVE
So, nach längerem Internetausfall und anderen Problemen... An sich hat sich damit alles geklärt, wollte mich nur noch bedanken für die gute Hilfe! Gruß
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.