Forum: Digitale Signalverarbeitung / DSP / Machine Learning I2S-Schnittstelle direkt an PDM-Datenstrom?


von MS (Gast)


Lesenswert?

Hi,

meine Frage betrifft im Speziellen das STM32F4 Discovery Board.
(Schaltplan unter STM32F4 Discovery Schematics auf 
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419).

Dort ist ein Mikrofon (MP45DT02)mit PDM-Ausgang direkt an eine 
I2S-Schnittstelle des STM32F angeschlossen. Das wundert mich, denn ich 
dachte, I2S wäre für einen PCM-Datenstrom und folglich müsste ein 
Schaltkreis dazwischen, der von PDM- in PCM-Daten konvertiert (Bsp: 
ADAU7002 von Analog Devices). Warum geht das auch ohne diese 
Konvertierung bzw. was für einen Unterschied macht das im Endeffekt? 
Muss ich dann in Software konvertieren? Aber im Datenblatt steht 
wiederum ausdrücklich, dass die I2S-Schnittstelle kompatibel ist mit 
1.)PCM 2.)Phillips I2S 3.)LSB-justified 4.)MSB-justified. Nix mit PDM...

Kann mich jemand aufklären?

Martin

: Verschoben durch Admin
von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wenn du runter scrollst findest du einen Link auf die App Note in der es 
erklärt wird:
http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00040808.pdf

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Ich habe dazu eine Frage: Ist bekannt wie der Chip das macht? Ich meine, 
die LIB ist doch letztlich nichts anderes als C-Code und mir ist nicht 
klar, wie der in der Lage sein soll, einen 3MBit-Datenstrom zu 
dekodieren.

Ich nehme an es geht über Timer und Sampling?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Die Daten werden byteweise über die serielle (SPI-) Schnittstelle des 
STM32 eingelesen. Der in Bytes verpackte PDM-Bitstrom wird dann in 
Software nach PCM konvertiert. Die Bibliothek von ST die das macht 
scheint allerdings nicht open source zu sein.

von Hi-Tech-Progger S. (Gast)


Lesenswert?

Als kleiner Nachtrag dazu:

Wir haben das inzwischen manuell nachgebaut:

- Einlesen mit einem 16-Bit-Schieberegister
- Übergabe an den Controller als 16 Bit Wert mit 192kHz
- Filterung von 8 Datenworten - 2x überlappend
- 48kHz Audiodaten mit 20Bit

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.