2015-10-05 25 views
9

Ho lavorato al progetto audio con la scoperta STM32F4 e ho notato una cosa, tutti gli standard I2S funzionano solo con un microfono (a seconda del bordo che lo standard utilizza bit separati). Per esempio. con gli standard Philips, MSB o LSB che usano i fronti discendenti come trigger di bit, cattura solo il microfono L/R messo a terra e, se utilizzo lo standard PCM che utilizza i fronti in aumento come trigger di bit, cattura solo il microfono L/R alto. Non riesco a trovare un modo per catturare entrambi i campioni di microfono MEMS in un periodo. STM32F4 non è in grado di utilizzare i microfoni contemporaneamente senza IC esterni?STM32F4 stereo MEMS mic

+1

io ho lo stesso problema sulla stessa piattaforma, ti invitiamo a condividere la vostra soluzione con noi, (aswering alla tua domanda) come hai fatto alla fine? Grazie mille! – An0nym0u5

risposta

3

La soluzione sarebbe quella, di scegliere I2S clock dei dati di essere due volte più veloce come l'orologio di ingresso microfono Mems, in modo che il processore, potrebbe prendere i campioni su ciascun impulso di Mems orologio

+1

Ok, ma come sincronizzare il veloce e l'orologio lento? Come suggerisci di generare il segnale di clock? – An0nym0u5

+0

Solo un seguito alla stessa domanda. Un modo per rendere l'orologio del microfono due volte più piccolo è quello di instradare l'orologio generato da I2S a un timer (che è impostato sulla modalità di uscita in uscita) sul pin ETR. Quindi puoi dividerlo come vuoi. In questo caso due volte. Il clock di uscita dei timer va a entrambi i microfoni e i loro dati sono collegati a I2S (che sta generando l'orologio). Alla fine si ottiene I2S lavorando due volte più veloce rispetto ai microfoni. – MattJ

1

si può provare ad usare I2S2 e I2S3, il secondo a generare l'orologio per i microfoni e il primo a generare l'orologio per campionare i valori di pdm (a una doppia frequenza), condividendo lo stesso PLL l'orologio dovrebbe essere sincronizzato. Così facendo penso che si possano ottenere i bit di pdm leggendo il registro recv dell'I2S2 ma penso anche che i bit dei 2 microfoni saranno interfogliati (un po 'dal microfono 1, un altro dal microfono 2 e così via).

1

Solo un seguito alla stessa domanda. Un modo per ottenere dati da entrambi i microfoni è rendere l'orologio del microfono due volte più piccolo. È possibile farlo instradando l'orologio generato da I2S a un timer (che è impostato sulla modalità di acquisizione in uscita) sul pin ETR. Quindi usando il timer puoi dividerlo come vuoi. In questo caso due volte. Il clock di uscita dei timer va a entrambi i microfoni ei loro dati sono connessi alla linea dati I2S (lo stesso che genera l'orologio). Alla fine si ottiene I2S lavorando due volte più veloce rispetto ai microfoni.

Ecco un esempio con quattro microfoni. (Nel tuo caso è sufficiente rimuovere la SPI)

enter image description here

Per ulteriori informazioni leggere su questo.

http://www2.st.com/content/ccc/resource/technical/document/user_manual/f5/06/94/40/a6/01/49/ae/DM00187405.pdf/files/DM00187405.pdf/jcr:content/translations/en.DM00187405.pdf

Problemi correlati