epromdan r2r dac çalıştıramadıım

Başlatan fryrmnd, 02 Haziran 2011, 12:26:45

fryrmnd

@ DEVICE pic16F877A                                                 
@ DEVICE pic16F877A, WDT_ON              'Watch Dog Timer açık
@ DEVICE pic16F877A, PWRT_ON             'Power on Timer açık
@ DEVICE pic16F877A, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F877A, XT_OSC 
ADCON1=7
TRISA=0
TRISB=0
TRISC=0
TRISD=0
TRISE=0

SYMBOL CE=PORTB.6
SYMBOL OE=PORTB.7

LW VAR BYTE
HG VAR BYTE

LOW OE
LOW CE


FOR HG=0 TO 255
  FOR LW=0 TO 255
    PORTD=LW
    NEXT LW
PORTC=HG
NEXT HG
END   


şöle bi kod yazdım... daha önce stgl hoca bu işi yapmış... bende analog pek yok o yüzden r2r nasıl çalışır bilmem... yine forumdan bi şemadan alıntı yapıp 27c512 ye bağladım... içine ufak bi wav ı bin şeklinde kaydedip isiste yükledim... giriş ve çıkış bacakları program dahilinde tarıyo gözüküyo ama ses almadım... bu da şema http://hotfile.com/dl/119629223/f84023c/eprom.rar.html  ...  yardım edermisiniz...

ferit06

#1
bağladığınzı speaker bir 8/16 Ohm hoparlor ise ses almanız veya bunu duyabilmeniz zor. bunun yerine  devresiz piezo buzer bağlayıp deneyin.  Ayrıca 27c512 yi tarama hızınız ile ilgili de problem olabilir. kullandığınız kristal XT demişsiniz 4 MHz mi? taramada gecikme koymanız gerekebilir. yükledinğiiz wav dosyanın örnekleme hız ne ise sizin o hızda tarama yapmanız gereklidir(wav dosya formatı nedir? kodlama varmı? kodlama olmadan sadece örneklenen değer kaydedilmişisse...)

http://tr.wikipedia.org/wiki/WAV
WAV, İngilizce dalga anlamına gelen Wave kelimesinin ilk üç harfinin alınmasıyla oluşturulmuştur. Sayısal ortamda hiçbir sıkıştırma yöntemi uygulamadan ses saklama biçimidir. IBM ve Microsoft'un küçük ses kayıtlarını herhangi bir bilgisayarda çalmak için geliştirdiği ses dosyası formatıdır.

denmiş. örnekleme hızına uygun tarama yapmalısınız. örneğin örnekleme hızının 10 katı bir hızda tarama yapıyorsanız ses duyma sınırını aşabilecektir.

fryrmnd

ferit hoca sağolasın ya.. cahil olunca böle oluyo işte sağdan soldan bişeyler top uydurmaya çalış   :(  piezo değil 8 ohm speaker koymuştum... kristal bağlamadım isis çalıştırır diye... 8 mhz krisatal bağlamak lazım yanii... sağolasın bide öyle deneyeyim... programda krisatal hızını belirlesem isiste bağlaasam acaba çalıştırırmı... bide 8mhz kristal bağlasam pic içinde işlemci clock frekansı yazıyo orayısa 8mhz mi yapmam lazım...

ferit06

#3
gecikmeler için çalıştırdığınız frekansı programa bildirmeniz gerekir.

Gecikmeler ne kadar olacak onu siz hesaplayacaksınız.

ISIS te 27c512 ye wav dosyası yüklenebiliyor mu bilmiyorum. ISIS ile ilgili bir şey diyemimeyceğim.

fryrmnd

iice kafayı yedim ya... sesin örneklemesini 8mhz sanıyom.  :o ... demek 8 khz e göre gecikma vermem gerekiyo...?

ferit06


döngü içerisine gecikme ilave etmelisiniz.

FOR HG=0 TO 255
  FOR LW=0 TO 255
    PORTD=LW
delayUs 10  '  10 mikro saniye gecikme verir.bu değeri değiştirerek deneme yanılma ile bir şeyler yapabilirsiniz.

   NEXT LW    ' buradaki LW gerekli mi? ben proton kullanıyorum böyle birşey yazmıyoruz
PORTC=HG
NEXT HG   ' buradaki HG ....



fryrmnd

ferit hoca çok sağol değeri ayarlayıp denicem sonucu yazarım birazdan...

fryrmnd

yok ya çalıştıramdım... acaba direç ve kondansatör değerlerinde mi... 8khz 8 bit ses kaydettim... onunda uzantısını bin olarak kaydedip eproma yükledim... picin clock değerini 4mhz e ayarladım...  programda 10mikrosaniyeden 1000 mikrosaniyeye kadar pause komutu verdim gene çatırtu çuturut var anca...

ferit06

#8
8 bit kayıt nasıl yaptınız?
wav yükledim demiştiniz ama onun da formatında başlangıç bitiş bitleri vs var onların temizlenerek eproma yükleme yapmanız gerekirdi. 

Windowsta kaydetme sonucunda elde ettiğiniz wav dosyasının sadece uzantısını değiştirmekle olabileceğini zannetmiyorum. Konuyla benden başka ilgilenen de yok gibi....

8 Khz lik örnekleme yapılarak elde edilen sesin tekrar elde edilebilmesi için çok iyi fitre yapılması gerekir. teorik olarak kaydettiğiniz sesin en yüksek frekansının 2 katı yeterli olmasına rağmen( 3.4 Khz konuşma buna karsı örnekleme 8 Khz) örneklemenin doğruluğunun tam olmaması gibi nedenler ile sizin devrenizdeki  RC alçak geçiren filtre yeterli olmayabilir.

fryrmnd

#9
windowsuun ses kaydedicisinde 8khz 8 bit mono seçeneği var onu kullandım... forumda eproma ses kaydeden stgl nickli kardeş var... onların mesajlarında dosya uzantısını değiştirince oluyo diye yazdıklarını hatırlıyom... ama bir kişi dediğin gibi wav format bilgilerini ve sonda ne varsa onları silmek gerekir demiş... acaba mp3 ü başka bi programla wav a çevirmiştim ondan da yapabilirmi... şu format bilgilerini bi sileyim...
deverdeki direnç ve kapasite değerlerinden olabilirmi... bi başlıkta basit r2r köprüsü ile 8 khz i rahatlıkla çaldıklarını söylemişlerdi... valla haklısın senden başka da cevap yazan yok... çok mu başlık açıyom nedir...

ferit06

devrede en azından bir filtreleme olsun. Bu amaçla speakeri ona seri bağladığınız 47 uF ye paralel bağlayın.
Devreye bağladığınız şekli ile sadece yüksek frekanslı sinyaller speakera ulaşıyor.
                        ı-------- Speaker------ı
R2R-*---1k-----*                              *---------- GND
                        ı-------- 47 uF----------ı

şeklinde...

fryrmnd

valla ferit hoca az buçuk çaksam şu analogdan... biyerde büyük bi hatam var ama...  hayırlısı... biraz daha araştırayım çok sağol cevapların için...