PIC e ses kayıt

Başlatan EMEL01, 19 Ekim 2005, 14:49:51

EMEL01

PIC in içindeki A/D kullanarak
sesi dijitale çevirip tekrar D/A
ile dinlemem lazım lütfen yardım!!!!!!

Erol YILMAZ

İlk once ses sinyalini 0...5 V arasına getirmeniz gerekiyor.
Yani 0...500 mV olmasın. Genlik yuksek olsun ki Kuantalama hatası min. olsun. Bir de dusuk empedanslı bir çıkışla PIC'e sinyal uygulaman gerekiyor. Araya koyacagın 47K gibi bir direnç ADC sonucunu negatif yonde etkiler.

Çıkıştaki DAC R-2R mantıgında olabilir. Bir portu komple DAC'a verebilirsin.

ftsahin

Pic'in sesi örnekleme hızı buna yetermi? Yani girişe gelen ses bilgisini saniyede kaç defa ölçebilirsiniz? Yanlış bilmiyorsam bir sesi örnekleyip yeniden dinleyebilmek için en az 8 KHz'de örneklemeniz gerekir.  Belki bu iş için dahili ADC yetersiz gelebilir. Bu durumda harici bir ADC kullanmak gerekebilir.  
Şu an kullandığımız MP3'ler 44KHz hızında örneklenmiş. Daha önce 22 KHz idi. Örnekleme hızı düştükçe ses bozulur. 22 KHz'nin altına düştüğünde bile kalite bozulduğuna göre PIC bu iş için pek uygum görünmüyor. Devreyi yapmadan önce Proteus'ta bir deneyin. Hızın yeterli olup olmadığına bakın.

CaFFeiNe

sadece fikir yürütüyorum

datasheetlerde AD örnekleme süresi için 1.6-6.4us yazıyor 8Khz de örnekleyeceğimizi düşünürsek bir örnek almak için 1/8000 = 125us gerekir pici 20Mhz de çalıştırırsak bir komut 0.2us tutar 1 örnek almak için gereken sürede 125/0.2 = 625 komut çalıştırabiliriz her aldığımız örneği bu süre içerisinde bir hafıza birimine kaydetmeliyiz picin flash hafızası hem küçük hemde yavaş kalacaktır zannımca seri EEPROM lar ise hafıza olarak bir nebze yetsede hız olarak yavaş kalacaktır bence en mantıklısı harici RAM veya FLASH türü hafızalar olabilir

birumher

ADC nin örnekleme zamanı
T = Amplifier Setting Time + Hold Capacitor Charging Time + Temperature Coefficient
formülü ile hesaplanıyor .

= TAMP + TC + TCOFF
= 2µS + TC + [(Temperature – 25oC)(0.05µS/oC)]

TC = CHOLD (RIC + RSS + RS) ln(1/2047)
= -120pF(1kΩ + 7kΩ +10kΩ) ln(0.0004885)
= 16.47µS

T = 2µS + 16.47µS + [(50oC – 25oC)(0.05µS/oC)]
T = 19.72µS
oluyor.
Buradan (1/19.72µS) 50.7 KHz. örnekleme frekansı elde ediliyor ancak her örneklemeden sonra datasheet de söylendiğine göre diğer örneklemeye geçebilmek için 2.0 TAD gecikme olması gerektiği söyleniyor. Bu da 20 MHZ de ve 32TOSC seçilmiş durumda
1.6 * 2 = 3.2 µs ediyor.

Yani
1 çevrim örnekleme için gereken zaman toplam 19.72 + 3.2 = 22.92 oluyor.  Bu da yaklaşık 43 khz eder ama hiç komut çalıştırmazsak. Araya interruptlar, memorye yazmalar vs girince işler karışıyor tabii. Bence böyle bir iş için external bir ADC kullanmak daha mantıklı.
Ayrıca pic e çok güzel ve değişik bir mantıkla ses yükleme işini forumda
Picsound
konusunda bulabilirsin...
Birkan.Herguner

Erol YILMAZ

Alıntı yapılan: "EMEL01"PIC in içindeki A/D kullanarak
sesi dijitale çevirip tekrar D/A
ile dinlemem lazım lütfen yardım!!!!!!

Benim anladığım ADC ile okuyup DAC ile çıkış verecek. Başka bir şey yapmayacak. Dolayısı ile PIC, ADC'si ve hızı yeterli gelir.

CaFFeiNe

doğru diyorsun kayıttan filan bahsetmemiş arkadaş muhtemelen ödevdir
yoksa pek bir mantığı yok yapılan işin

mhk

Eğer dahili eeprom veya harici seri eeprom kullanılırsa başarılı olmaz. Çünkü dahili eeprom kapasite değeri düşük, harici seri eeprom ise yazmada çok yavaş kalır. Yanılmıyorsam 1 byte yazımını min 3 msn de yapıyor. Ram kullanıp sonra bunu eeproma yazmak daha mantıklı olabilir.
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana