SD Kart WAV Player ve R-2R DAC İçin En Uygun Filtre

Başlatan -Hasan-, 07 Ekim 2011, 17:22:36

-Hasan-

Merhaba arkadaşlar herkese kolay gelsin.

SD kart ve PIC ile bir WAV player projesi yaptım, WINHEX programıyla WAV datalarının başlangıç adresini bulup programıma bunu başlangıç değeri olarak girerek müziği çalmasını sağlıyorum. Şemadaki çıkışı direkt 5+1 ses sisteminin girişine takıyorum. Yükselteç takmadığımdan dolayı sesi biraz fazla açıyorum, bu şekilde şarkı tam olması gerektiği gibi (bas ve tiz falan süper) çalıyor ancak seste biraz cızırtı var ve bu cızırtı şarkıdan şarkıya değişiyor. Ben bu meselenin, sinyali iyi filtre edemememden kaynaklandığını düşünüyorum.

Bu cızırtının sebebi gerçekten bu mudur?
Böyle bir projede R-2R DAC çıkışını hangi işlemlerden geçirmem gerekir?

Bağlantılarım bu şekilde:



Cevaplarınız için şimdiden teşekkürler.

drmp

daha önceki bir uygulamamda  EKG cihazının analog sinyallerini kablososuz olarak iletimnde tek bir sorun yaşamıştım  orada bende ilk önce r2r dac yöntemini kullandım fakat osilaskopta sinyali izlediğimizde önüne geçemediğim bir gürültü  sinyali görüyordum  ekg cihazında sinyalin görünüşü çok önemli olduğundan daha sonra max522 kullanarak çözmüştüm    belki faydası olabilir

-Hasan-

Hocam cevap için teşekkür ederim. R-2R DAC çok stabil olmuyor herhalde.  ???

rree

Dirençler ile 2R 16 bit DAC yaptım Pic18f450 sanırım uzun zaman oldu .  Örnekleme hızı 20Khz düzgün ses veriyordu. 30 Khz örnekleme hızında tampon taşmasından dolayı  takılmış plak gibi  dönüp duruyordu.
Cızırtı yoktu.

Klein

Bu tip hobi devreleri yaparken R-2R konusunda yapılan en büyük yanlış , işlemci çıkışını doğrudan R-2R dizisine  bağlamaktır.
Çünkü işlemci beslemesi oldukça gürültülüdür. Bunun yanında, voltaj da sürekli değişkendir. Devrede flash yapan bir lediniz bile olsa , beslemeye bir etkisi olacaktır. R-2R de bir gerilim bölücü olduğu için besleme gerilimindeki tüm değişmeler ve gürültülerden doğrudan etkilenecektir. aynı zamanda çoğu işlemcinin sink ve source akımları aynı değildir. Bu da DAC çıkışında linearizasyon bozuklıklarına sebep olabilir.
Doğru yaklaşım, R-2R girişlerini bir referans gerilimden almaktır. Bunun için 4051 gibi bir analog anahtardan yararlanılabilir.

-Hasan-

Peki hocam; 74HC14 gibi bir schmitt trigger kullansak olur mu?

z

HC14 beslemesini ayri bir analog regulatorden alirsan faydasi olur. Fakat R-2R DAC larda her bir hucre voltaj kaynagi ile degil de akim kaynagi uzerinden anahtarlanirsa ve  karbon direnc yerine metal film direnc kullanilirsa daha iyi olur.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

Alıntı yapılan: FxDev - 08 Ekim 2011, 14:30:09
Sonuçta bir kesmeniz mevcut ve bu kesme ile portları sürüyorsunuz. Bunun yerine 8 bit çözünürlüğe sahip bir PWM kurup, PWM duty değerini o kesme içerisinde değiştirip, PWM çıkışını filtreleyip hoparlöre verdiğimizde ne olur merak ettim. Aslında iyi sonuç elde edilirse sizi bir çok direnç kullanımından kurtarabilir. Deneyimim olmadığı için bir şey söyleyemiyorum, ses olayları kişiden kişiye çok değişen bir durum sonuçta.

Bir zamanlar bu konu ile ilgilendim. Kaliteli bir ses icin cok yuksek frekanslarda pwm gerekiyor. En son baktigim D sinifi amplifikatorlerde 500Khz ve 1Mhz kullaniliyordu.

16 bit 44Kkz orneklemeli bir sistemden elde edilen verileri pwm yoluyla sese donusturmek icin gerekli pwm frekansini hesaplamayi deneyin.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

-Hasan-

Üstatlar cevaplarınız için çok teşekkür ederim.

FxDev hocam aynen dediğiniz gibi. Dataları kesme ile örnekliyorum. PWM ' i ilk denememde kullandığımda sonuç güzel olmamıştı, o yüzden R-2R ' ye geçtim. Sanırım iyi filtre edemememden oldu bu. Tekrar bir deneyeyim olmazsa.

bunalmis hocam dediğiniz gibi PWM frekansını en yüksek frekansa kurmak gerekecek; benim şartlarda en fazla 156 khz oluyor, bunun için RC değerlerini ne yapmalıyım?

z

20Khz den sonrasi ile isin olmayacagina gore 20Khz ustunu filitrelemelisin. 20Khz de dah az zayiflama istiyorsan kesim frekansini 22..25Khz secebilirsin.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

-Hasan-

[jstex]f=1/(2*pi*R*C)[/jstex]


Hocam bu formülde "f" yerine 20000 yazarak bulacağım değil mi?

SpeedyX

Selam,

7.87K direnç
1nF kondansatör

Yada şunu yapabilirsin, 3. dereceden bir filtre

-Hasan-


z

Evet 1.dereceden RC filitre icin o formulu kullanacaksin.

Pwm konusu icin:  http://sound.westhost.com/articles/pwm.htm


Bana e^st de diyebilirsiniz.   www.cncdesigner.com

SpeedyX

Alıntı yapılan: Hasan Oguz - 08 Ekim 2011, 15:25:46
Bu değerler hesaplı mı hocam?
Evet, senin formülden:
1/(2*pi*7870*10^(-9)) = 20222.99Hz