PWM ile Ses Üretmede Filtreleme işi

Başlatan Mucit23, 01 Kasım 2020, 01:40:01

Kılıç

02 Kasım 2020, 13:10:41 #15 Son düzenlenme: 02 Kasım 2020, 17:53:17 Kılıç
DMA gerektiren durum yok. 8khz için örnekler tablodan 125us aralıkla okunuyor, pwm e veriliyor.
auto-reverse recording

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 - 02 Kasım 2020, 01: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, 04: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