PWM ile Ses Üretmede Filtreleme işi

Başlatan Mucit23, 31 Ekim 2020, 22:40:01

power20

#15
DMA gerektiren durum yok. 8khz için örnekler tablodan 125us aralıkla okunuyor, pwm e veriliyor.

superconductor

Pwm çıktığınız pinin çıkış hızına mümkün olan en düşük değeri verirseniz rise-fall süreleri uzayacak ve kare dalgadaki çok yüksek frekans bileşenleri kaybolacaktır. Bu taşıyıcı kare dalganın köşelerini yumuşatır ve sonraki low-pass filtre katlarının işini kolaylaştırır.

RaMu

Alıntı yapılan: Mucit23 - 01 Kasım 2020, 22:40:33Aslında sorun benim veriyi aktarma için DMA kullanmamdan kaynaklanıyor. Bunu düşünmemiştim. Büyük bir hata. 8Khz örneklemeli ses datam olsun PWM frekansımı 44KHZ'ye ayarlayıp Bir döngü içerisinde örneğin 8Khz örneklemeli ses datamı 50us aralıklarla PWM registerine yazabilirim. Ben DMA ya start verip başka işlerle uğraşıyordum.

DMA ve PWM ile yapılıyor diğer konuda bahsetmiştim.
https://www.picproje.org/index.php/topic,78354.0.html
Alıntı yapılan: RaMu - 30 Ekim 2020, 01:37:24tim2 kanal  PWM çıkışı,
tim3 ilede DMA tetiklenip PWM duty değerini tutan 512 byte buffer CCR4 e gönderiliyor,

Yöntem şöyle:
İki timer kullanılıyor;
PWM üreten timer ın DMA ile alakası yok,
yüksek bir frekansa ayarlıyorsun.
Başka bir timerda DMA tetikliyor,
bu timer ın DMA tetikleme frekansı sesin örnekleme frekansı,
her tetiklemede sıradaki WAV değerini
PWM üreten timer ın CCR registerına aktarıyor.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

tamircihasan

düzgün ses alabilmeniz için taşıyıcıyı en az 50khz civarında tutmanız lazım LPF ile sesi taşıyıcıdan ayırabilmek için taşıyıcı olabildiğince yüksek frekans olmalıdır.
yok uğraşmam derseniz uygun fiyatlı dac ler var. ben dac olarak cs4331 kullanıyorum hem stereo hemde 8 pin olmasından dolayı gayet kullanışlı fx processör uygulamalarımda tercihim. aliexpresste uygun fiyata bulunuyor