16-Bit Mono RAW Audio

OP #2691743
Lesenswert?

Zum Abspielen von RAW-Audio-Dateien (8-bit, unsigned, Mono, 22050Hz) von 
einer MicroSD-Karte über Pin43 (OC0A) auf einem ATMega644 (16MHz) 
verwende ich:
- einen Doppelpuffer / ISR(TIMER1_COMPA_vect)
- Fast PWM mode 3 / Timer0
- Non-inverting PWM auf OC0A
- Kein Prescaling
- CTC Mode - Clkio/8 / Timer1
- Compare Register OCR1A = ((F_CPU / 8) / 22050) - 1

Klappt soweit alles einwandfrei.

Nun möchte ich auf 16-Bit RAW-Audio-Dateien (16-bit, unsigned, Mono, 
22050Hz) wechseln. Dazu habe ich ein paar Fragen:

Kann man einfach 16 Bit einlesen und an den entsprechenden Wert an Pin14 
(OC1A) ausgeben?

Oder müssen zweimal 8 Bit einlesen werden? Falls ja, wie wird dies 
bewerkstelligt?

Leider gibt es im Netz und auch hier im Forum nicht viel zu diesem 
Thema, nur jede Menge zu MP3.
Gast #2691797
Lesenswert?

Hi

>Nun möchte ich auf 16-Bit RAW-Audio-Dateien (16-bit, unsigned, Mono,
>22050Hz) wechseln.

Schon mal daran gedacht, das bei 16MHz deine PWM-Frequenz des 
16Bit-Timers nur noch ca.244Hz beträgt?

MfG Spess
Gast #2691888
Lesenswert?

Hi

>Dies sollte dann erst recht mit einem ATMega644 möglich sein, oder
>nicht?

Nein. Die ATTiny25/45/85 haben eine PLL, die den Timer mit 64 MHz laufen 
lässt. Und die hat dein ATMega 644 nicht.

MfG Spess
Gast #2692278
Lesenswert?

Hi

>Kann man nicht den Datenstrom auf 1024 Byte erhöhen und paarweise zu
>16-Bit (-32768/+32768) auf den entsprechenden OC1A schieben?

Und was nutzt dir das? Dein Controller ist für eine 16-Bit-PWM einfach 
um Größenordnungen zu langsam.

MfG Spess
#2692339
Lesenswert?

Du verwendest einfach einen ungeeigneten Controller.
Das hier wäre ideal für Dich und preislich auch nicht teurer als Dein 
Mega644p:

http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en532299

Hat einen eingebauten Stereo-DAC, und wenn Dir der nicht reicht, dann 
kannst Du per I2S auch einen externen Codec anschließen. Obendrein hast 
Du damit die dreifache Rechenleistung eines AVR, und noch mehr, wenn Du 
die 40 Bit DSP-Einheit ausnutzt.

fchk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren