Forum: Mikrocontroller und Digitale Elektronik MEMS mic mit I2S am STM32F405


von Detlef _. (detlef_a)


Angehängte Dateien:

Lesenswert?

Liebe Freunde und Kenner des Cortex,

ich möchte ein MEMS Mikrophone an der I2S Schnittstelle des Cortex M4 
betreiben. Die Schnittstelle wirft aber mit meiner Initialisierung nicht 
mal ein Taktsignal raus.

Die angehängte Initialisierungsroutinen setzen die beteiligten GPIOs auf 
'alternate function' und bespassen die PLL und die SPI_I2SCFGR/SPI_I2SPR 
Register. Nach der Initialisierung gilt SPI_I2SCFGR=0xAB5 und 
SPI_I2SPR=0x202.

Ich glaube der Takt mit der PLL geht noch nicht.
Was muss man bei RCC noch tun, irgendwelche PLL Eingangstakte 
einschalten?
Hat jemand funktionierenden Beispielcode?

THX
Cheers
Detlef

: Verschoben durch User
von pegel (Gast)


Lesenswert?


von Detlef _. (detlef_a)


Lesenswert?

Nicht für I2S

von pegel (Gast)


Lesenswert?

Doch:

/STM32F4-Discovery_FW_V1.1.0/Project/Audio_playback_and_record/src/waver 
ecorder.c

von Detlef _. (detlef_a)


Lesenswert?

Hi,

bevor das hier im spam absackt, nochmal meine Frage:

Hat jemand nen funktionierendes I2S Beispiel?

THX
Cheers
Detlef

von Markus (Gast)


Lesenswert?

Leider habe ich auch nicht wirklich eines.
Von STM gibt es ja eine Closed-Source-Library, aber das mag ich gar 
nicht.

Außerdem verbrät das PDM-Mikrofon einiges an Rechenkapazität für die 
Filter. So was finde ich für ein einfaches Mikrofon nicht besonders gut. 
Wieso verkaufen die so was und bauen in die MCU nicht die passende 
Hardware?
Es gibt ja die Möglichkeit, das Mikrofon mit Takt zu versorgen und dann 
die Daten über einen RC-Tiefpass per ADC zu samplen. Das wird wohl die 
Version mit dem geringsten Aufwand sein.

von Detlef _. (detlef_a)


Lesenswert?

Hallo Markus,

nach diesem Bastelabend bin ich fortgeschritten und habe die I2S 
einigermassen im Griff. Als nächstes flansche ich das MEMS mic an und 
schaue was rauskommt.
Vorteil der MEMS mics: Keine analogen Vorverstärker, kein ADC.
Nachteil ist die Filterung der PDM Daten. Aber das geht auch gut 
digital. Man muss die Anzahl der gesetzten Bits in einem Wort bestimmen, 
da gibt es schnelle Algorithmen. Bei 3MHz Takt für das mic und 32 Bit 
Wordlänge sind das weniger als 100k Worte/sec, in dieser Geschwindigkeit 
kann der Cortes schon Quersummen von Binärwerten berechnen.

Cheers
Detlef

von Markus (Gast)


Lesenswert?

>nach diesem Bastelabend bin ich fortgeschritten und habe die I2S
>einigermassen im Griff.

Würdest Du das Ergebnis posten? Vielleicht kann es jemand brauchen.

Wie ich sehe, bist Du schon eine Weile mit dem Thema beschäftigt... wie 
die Zeit vergeht ...
Beitrag "Re: FIR Filter Optimierung eines PDM Signals auf STM32F407 simuliert mit Matlab"

Ich versuche mal eine erste Annäherung an das PDM-Problem mit einem 
Signalflussbild.

PDM,1bit,3MHz
=> 32 bits count,result 5 bit, output 100kHz
=> LowPassFilter, fg=20kHz, output 44100kHz
=> HighPassFilter, fg=50Hz
=> audio output

Ich vermute mal, wenn man die 5bit 100kHz auf 44100Hz Audio Frequenz 
reduziert kommt man trotz der Überabtastung von ~2 nicht auf 16bit.

von Detlef _. (detlef_a)


Lesenswert?

Hallo,

bin durch mit der Hardware Ansteuerung, Ergebnis siehe hier:

Beitrag "Hook up a MEMS microphone to the I2S of a Cortex M4"

Ich will mit dem hack die Schallgeschwindigkeit messen, das mache ich 
direkt auf dem binären bitstream, ich filter/dezimiere den bitsream 
nicht wie ich das in dem erwähnten alten Beitrag mal gepostet hatte.

Sehr schöne mics, sehr einfach zu bedienen wenns einmal geht und sehr 
einfach mit Digitalgattern umzuschalten. Die Dinger sind auch sehr 
breitbandig, wahrscheinlich kann man damit auch super Fledermäuse 
belauschen, war hier auch schon mal Thema.

Grosser Spass!
Cheers
Detlef

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.