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
Detlef _. schrieb: > Hat jemand funktionierenden Beispielcode? Der Hersteller bietet das freundlicher Weise an: http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries-expansions/stsw-stm32068.html
Doch: /STM32F4-Discovery_FW_V1.1.0/Project/Audio_playback_and_record/src/waver ecorder.c
Hi, bevor das hier im spam absackt, nochmal meine Frage: Hat jemand nen funktionierendes I2S Beispiel? THX Cheers Detlef
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.
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
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.