STM32F4 - Microphone & Speaker

Başlatan kahyas, 18 Şubat 2014, 11:44:56

kahyas

Merhaba Arkadaşlar, STM32F4 Discovery kartında mikrofondan veri alıp, aldığım veriyi hoparlörden vermek istiyorum. Bir çok sitede buna dair araştırma yaptım, fakat aradığımı net olarak bulamadım. Yardımcı olursanız sevinirim.

kahyas

Tekrardan konuyu hortlatayım istedim, şuan ses alıp IP üzerinden yollayabiliyorum, isteyene bu konuda yardımcı olabilirim. Fakat aldığım seste yüksek miktarda gürültü var. Bu sorunun nedenini veya çözümünü bilen biri yardım ederse çok memnun olurum.

OG

Forum istiyor, foruma yollayınız.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

pisayisi

Kit üzerindeki dahili mikrofonu mu kullanıyorsun yoksa harici bir preanfi üzerinden mi ses işaretini kite giriyorsun. Muhtemelen bu aşamalarda gürültü ses işaretine küple olmakta. Ses, kendiliğinden gürültülü girip gürültüsüz çıkmaz :)
Murat

kageja

Kahyas usta benimde karta gömülü olan mikrofondan sesi alıp pc ye seri port üzerinden aktarmam lazım bununla ilgili bbende bi kaç araştırma yaptım ama bulduğum özellikle init programları tam açıklayıcı değildi bana bu konuda yardımca olabilr misin ? Bu arada konuyu bende hortlatı verdim galiba :)

minicihazlar

STM32F4 kitindeki mems mikrofon 1bit'lik PDM çıkış verir. Bunun 16bit'lik ses verisine dönüştürülmesi için ST tarafından verilen bir lib var. İlgili uygulama notu da şu adreste: http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/DM00040808.pdf?s_searchtype=keyword

Burdaki kodu kullandı iseniz orda varsayılan olarak çıkış filtreleri aktif durumda değil. Bunları aktif hale getirirseniz sesdeki gürültülerden kurtulabilirsiniz. Yukardaki uygulama notununu 6ıncı sayafasındaki "4.2 Digital signal conditioning" bölümünde bunlar açıklanmış. Bende aynı mikrofonu kullanan başka bir kit var (STM32F1'li) ve USB'den bilgisayara bağlanıyor, sesde gürültü falan olmuyor bu filtreler sayesinde.

kageja

Peki o mikrofunun çıkış pinlerini nasıl uart ile ilişkilendiriyoruz ? Bu konuda yardımcı olabilecek varmı

kageja

PDM_Filter_Init(&pdm_filter); şu kod satırı ile zaten pdm filtre enable ediliyor öncesinde de crc clock kaynağı enable edilyor bu varsayılan kod da filtre nasıl enable durumda değil tam anlamadım ?