EEPROM'a Ses Kaydetme ve Oynatma

Ana Sayfa Devre Şemaları Dijital Devreler EEPROM’a Ses Kaydetme ve Çalma Uygulaması

- Devre Şemaları
- Dijital Devreler
- Elektronik Öğrenin
- Dijital elektronik
- Uygulayın
- Projeler
- Ses Devreleri

# EEPROM’a Ses Kaydetme ve Çalma Uygulaması

Yazar
Yusuf
-
04 Eylül 2013
0
1162
Facebook
Twitter
Pinterest
WhatsApp

Bu yazımda biraz ISD entegre serilerinden bahsetmek istiyorum. İnternet’in çeşitli yerlerinde de üzerine yapılmış projelerin çok rahatlıkla bulunabileceği bir entegre olan ISD entegre serisi, mikrofon yardımı ile elektrik sinyaline çevrilen ses dalgalarını sayısal veri olarak kendi EEPROM’una kaydedip bu veriyi tekrar bir hoparlör vasıtası ile çalma olanağı sağlayan kullanımı çok kolay bir entegredir.

Daha önceki yazılarımda da bahsettiğim gibi kaba bir şekilde elektronik sistemleri, dijital ve analog olarak iki ana başlık altında toplayabiliriz. Entegre haline getirilmiş tümleşik devrelerin %90 nı dijital olarak çalışmaktadır. Dijital sistemler, makina dilini oluşturan logic(Mantıksal) binary sayı sistemleri ile veri alış verişinde bulunurlar. Yani sesi ISD entegresinin EEPROM’unda kaydetmek istersek yapmamız gereken şey, ses bilgisini dijital bilgiye çevirmek olacaktır. Bu doğrultuda uzayda atomların titreşmeleri sayesinde yayılan ses dalgasının ilk önce elektriksel sinyale dönüştürülmesi gerekecektir. Bunun için bir mikrofon kullanılır. Mikrofon içerisinde bulunan ince bir zarın titreşmesi ile zar altında bulunan küçük bobin yahut piezoelektrik materyalde titreşir. Bu sayede üretilen elektrik sinyali, ses dalgasının özellik bilgilerini içerecektir. Mikrofonun ses dalgasından dönüştürdüğü bu elektriksel sinyale analog bilgi ismi verilir ve halen sayısal verilere dökülmemiştir. Bunun için ses dalgasından çevrilen elektriksel sinyalin belli zaman aralıkları ile voltaj örnekleri alınır ve alınan her örnek karşılığına sayısal bir değer atanır. Bu sayısal veriler, trigger, timer ve logic gate entegreler sayesinde binary sayı sistemlerine çevrilerek bir satırlık matrixler şeklinde herhangi bir dijital bellek olan EEPROM da kaydedilebilir.

Tabi dijital bellekte kaydedilen bu dijital bilgiyi kullanmak istersek bu sefer de yukarıda yazdıklarımızın tam tersini icra etmek gerekecektir. Yani ilk önce dijital bilgiyi elektrik sinyali olan analog bilgiye daha sonra ise bu elektriksel sinyali titreşim oluşturan bir cihaz vasıtası ile ses dalgasına dönüştürmemiz gerekecektir.

Biraz da bu işlemlemleri yapabilmek için oluşturulmuş olan ISD entegre serisinin datasheetini inceleyelim isterseniz.

Datasheet için; isd 2560 datasheet

Datasheet’i açtığımızda 1. sayfadaki General Description bölümü hemen göze çarpıyor zaten. Orayı Türkçeye çevirirsek şunları söylüyor;

> [stextbox id=”info”]

> Bilgi depolama chip’i olan “ISD2500” entegre serisi yüksek çözünürlükte 60-120 saniye mesaj kaydı sağlayan tek bir chiptir. Bu CMOS(Complementary Metal Oxide Semiconductor; Bütünleyici Metal Oksit Yarı iletken, bir tümleşik devre üretim teknolojisidir) entegreler bir osilator(frekans kaynağı sinyali dijitale çevirmek ve ram’e bilgi kaydetmek için kullanılır.), mikrofon pre-amplifier(mikrofon için yükseltgeç), otomatik kazanç kontrolü devresi(yükselteç için seviye kontrolü sağlar), Yumuşatma yapmayan filtre(ses sinyallerini filtrelemek için), yumuşatma yapan filtre(Yine ses sinyalini filtrelemek için), speaker amplifier( Hoparlör için yükseltgeç) ve yüksek yoğunluklu dizi belleği(EEPROM) içerir. Buna ek olarak ISD2500 entegre serisi mikrodenetleyicilere uyumludur, kompleks mesajlaşmaya ve adresleme yapmaya olanak tanır. Kayda alınan ses bilgileri kalıcı olan bellek hücrelerinde kendi doğal formunda direk olarak tutulur.

> [/stextbox]

Bu bilgi verildikten sonra şu diagram verilmiş;

Sanırım bu diagram “general description” da anlatılanları güzel bir şekilde özetliyor. Bununla birlikte “Features”(Özellikler) bölümünü incelerseniz entegremizi daha iyi tanıyabilirsiniz. Hemen Features bölümünden de kısa bir geçiş yapalım.

- Kullanımı kolay, kayıt ve oynatma.
- Yüksek kalitede tekrar çalınabilmek üzere ses bilgisi kaydetme
- Manuel anahtarlama ya da mikrodenetleyici uyumlu
- 60, 75,90 ve 120 saniye boyunca kayıt alabilme
- Çok daha uzun süre kayıt için cascade bağlantı yapılabilir
- Otomatik power down modu var. (Entegreyi inaktif kılma özelliği)
- 100 yıl bellekte tutma
- 100 bin kayıt döngüsü
- Osilatör kaynağı içinde
- Programlama desteği
- 5V besleme voltajı
- Soic, dip ve tsop paketleri mevcut

Şimdi gelelim entegremizin pin yapısına. Bu bilgileri yine datasheet’inden öğrenebilmemiz mümkün. Çünkü uygulamalarda nasıl kullanmamız gerektiğini falan hepsini anlatmış.

Görüldüğü gibi entegremizin paketleri ve pin çıkışları bu şekilde. (Biz baskı devre için uygun olan soic paketini kullanacağız.) 28 pin’i olan bu entegrenin şimdi pinlerinin görevlerini ve ne işe yaradıklarını anlatalım.

Voltaj Inputları(VCCA, VCCD) : Entegrenin içerisindeki tümleşik devreler ve filtreler gürültüyü azaltabilmek için birden ayrı analog ve dijital voltaj girişi kullanmışlardır. Bu voltaj girişleri birbirleri ile bağlantılı olarak voltaj kaynağına bağlanmalıdır. Ayrıca bu girişler kapasitörler ile dekublajlanmalıdır.

Ground Inputları(VSSA, VSSD): Yine aynı şekilde iki ayrı analog ve digital ground pini bulunur. Bu pinler ayrı bir şekilde düşük empedanslı yollardan besleme voltaj kaynağının eksi kutbuna bağlanmalıdır.

Power Down Input(PD): Kayıt ya da oynatma yapmadığınız durumlarda düşük güç moduna girebilmek için PD pini High konumuna çekilir.. OVF pini low iken PD pini high konumunda olduğunda, entegre “adress pointer” larını resetler ve başlangıç durumuna getirir.

Chip Enable Input(CE): Bu pin, kaydetme ve oynatma işlemleri sırasında “low” konumunda tutulmalıdır. Adres inputları ve playback/record(P/R) pini, chip enable bacağının düşen kenarında tutulmalıdır.(Yani CE pini high konumunda iken P/R pini low konumunda tutulmalıdır. )

Playback/Record Input(P/R): Bu pin high konumunda playback(oynatma) işlemini gerçekleştirirken low konumunda record(kaydetme)işlemini gerçekleştirir.

Low konumunda yani record(kaydetme) döngüsü içerisinde adres inputları kayıda başlar ve kaydetme bitene kadar CE pininin low konumunda olması gerekir. CE pini high konumuna getirildiğinde yada overflow(OVF) pini belleğin dolduğunu algıladığında kaydetme sona erer. Kaydetme ya da oynatma işlemi CE ve ya PD pininin high konumuna gelmesi ile sonlandırıldığında End-of-Massage(EOM) işaretleyicisinin gönderdiği işaret verisi, bilginin sonuna kaydedilir.

High konumunda yani playback(oynatma) döngüsü içerisinde adres inputları bilginin kaydedildiği adresten bilgiyi göndermeye başlar ve bu oynatma işlemi, bilginin sonuna konulan End-of-Massage(EOM) işaretleyicisinin bilgisi okunana kadar devam eder. Entegre operational modda ya da address modda( CE low konumunda iken) End-Of-massage(EOM) işaretleyicisinden sonra bile oynatmaya devam eder.(Yani baştan oynatır)

End-Of-Massage/Run Output(EOM): İşaretleyici bir sinyal bilgisi üretir. Bu işaretleyici bilgi her mesajın sonunda depolanır ve başka bir bilgi mevcut bilginin üzerine yazılmaya başlanıncaya kadar tutulur. EOM pini her mesajın sonuna gelindiğinde bir süreliğine low konumuna gelir. Entegre oynatma ya da kayıt işlemini gerçekleştirken ise EOM, high konumundadır. Bu yüzden bu pin bir led’e sürülerek sinyallerin kaydedilip edilmediği görsele dökülebilir.

Overflow Output(OVF): Bu pin, entegrenin belirtilen adresteki hafızası dolduğunda ve kaydedilecek bellek alanı kalmadığın da low konumuna gelir. Hafıza arttırmak için aynı entegreden birkaç tane kullanılabilir. Ve bunun için bu pinlerin entegreler arasında cascade bağlanması gerekir.

Microphone Input(Mıc): Bu input, mikrofon tarafından ses dalgası bilgisini saklayan elektrik sinyalini pre-amplifier devresine yönlendirir. Gain Control devresi sayesinde ses sinyalini saklayan elektrik sinyali 15 db ile 24 db arasında yükseltilebilir. Ac ile beslenen harici bir mikrofon bu pine seri bir kapasitor üzerinden bağlanmalıdır. Bağlanacak kapasitor değeri ve pinin 10k ohmluk kendi iç direnci low-pass filtrenin cut-off frekansını belirler. Cut-off frekansının hesaplamaları için datasheetinde bulunan uygulama örneklerine göz atabilirsiniz.

Mıcrophone Referans Input(Mıc Ref): Bu pin gürültü önleme sağlar. pre-amplifier için alınan ve dönüştürülen bilginin kıyaslanması aşamasında işe yarar. Bu yüzden bir kapasitör yardımı ile microphone pinine paralel olarak bağlanır.

Automatic Gain Control Input(AGC): Bu ınputa bağlanan kapasitor ve direnç değerleri doğal olarak bu pine gelen voltaj seviyesi değiştirilerek sinyalin voltaj kazancı ayarlanabilir.

Analoug Output(Ana Out): Bu pin kullanıcıya pre-amplifier çıkışı sağlar. Voltaj kazancı, AGC pinin voltaj seviyesi tarafından kontrol edilir.

Analoug Input(Ana In): Bu pin bağlandığı herhangi bir kaynağın sinyalini chipin içerisindeki kayıt bölümüne transfer eder. Mikrofon inputları için Analog ınput pini harici bir kapasitor ile analog output pinine bağlanmalıdır.

Extenal Clock Input(XCLK): Bu pin kullanılmıyorsa ground’a bağlanmalıdır.

Speaker Outputs(+-SP): ISD entegre serisi 50mW, 16 ohm diferansiyel hoparlör sürücüsü içerir. Birden fazla paralel hoparlör bağlamaya uygun değildir.

Auxiuary Input(Aux In): Bu pin, hoparlörün outputu için çoklanmıştır. Fakat bunun için CE, P/R pinleri high konumunda ve playback işleminin aktif olmaması gerekir. Birden fazla ISD entegresi cascade olarak bağlandığında bu pin playback sinyalini diğer entegreye taşır.Bir diğer ISD enteresinin speaker sürücü pinine bağlanmalıdır.

Address Mode Inputs(A0-A9): Bu pinler, A8 ve A9 adreslerinin iki MSB(Most Significant Bits) seviyesine dayalı olan iki fonksiyona sahiptir.

Eğer A8 ve A9 un ikisi de low durumunda olursa tüm inputlar adres biti olarak tanımlanır ve mevcut kayıtlar için başlangıç adresi olarak kullanılırlar. Bu pinler sadece input olarak kullanılır ve dahili adress bilgilerini output olarak vermezler. Adres inputları CE pini ile düşen kenarda bağlanmalıdır. (Yani CE pini high konumunda, adress pinleri low konumunda olmalıdır.)

Eğer A8 veA9 un ikisi de high konumunda olursa bu pinler mod pini olarak tanımlanır. 6 adet işlemsel mod bulunmaktadır(M0-M6). Birden fazla modu kullanmak mümkündür.

Yukarıda görüldüğü gibi ISD entegre serisinin farklı uygulamalarda etkin kullanılabilmesi için çeşitli modları mevcuttur. Bu modlar adres pinlerinin logic durumlarına göre belirlenir. Örneğin A0 adres pinine M0 modu atanmıştır. Eğer A0,A8,A9 adres pinleri besleme voltajına, diğer adres pinleri ise ground’a çekilirse entegre 0 moda girecektir. İşlemsel modlarda iki önemli husus vardır. Birincisi; bütün işlemler ilk olarak adres “0”dan başlayacaktır ve bir sonraki adreslerle devam edilecektir.Buna ek olarak P/R pini playback konumundan record konumuna getirildiğinde adres pointer ları resetlenecektir. İkincisi ise şudur ki,işlemsel modlar ancak CE pininin low konumundayken ve A8,A9 pinleri ise high konumundayken icra edilebilir.

Bu modlardan bahsedelim biraz da isterseniz.

Massage Cueing Mode(M0):

Bu mod kullanıcıların farklı adreslerdeki kayıtlı seslerin atlatılmasını sağlar. Entegre CE pininin her low konumuna getirilmesinde farklı bir adresdeki ses bilgisine atlayacaktır. Bu mod sadece oynatma için kullanılan bir moddur veçoğunluklam4 modu ile beraber kullanılır.

Delete EOM Markers Mode(M1):

Bu mod sırasıyla kaydedilmiş mesajların tek bir mesajda birleştirilmesine olanak sağlar. Bu mod aktif edildiğinde kaydedilen mesajlar sırasıyla çalacaktır.

Unused Mode(M2):

Bu modun tam olarak ne işe yaradığını ben de çözemedim Fakat eğer adres pinleri mod olarak seçilirse bu pinin grounda gitmesi gerekiyor.

Message Looping Mode (M3):

Bu mod isminden de anlaşıldığı gibi kaydedilen seslerin entegrenin başlangıç adresi olan 0. adresten tekrar çalınmasına olanak tanır. Herhangi bir mesaj ISD entegresinin ram ini tamamen doldurabilir ve OVF pini low konumunda değilken sürekli olarak baştan çalınabilir.

Consecutive Addressing Mode(M4):

Normal işlemler boyunca, bir mesaj (EOM) marker a kadar çalındığında adres pointer ları resetlenecektir. M4 modu adres pointerlerin resetlenmesini önler ve mesajın kaldığı yerden devam etmesine olanak tanır.

Ce-Level Activated Mode(M5):

Bu mod CE pininin yükselen kenar olmasını sağlar. Bu mode gelen olarak playback işlemini CE sinyali ile sonlandırmak için kullanılır. Bu modda CE pini low da iken entegre başlangıç adresinden başlayarak buralara verileri kaydetmeye başlar. Kayıt işlemi CE pininin low konumuna getirilceye dek devam eder.

Push Button Mode(M6):

Bu mod çok basit uygulamalar için kullanılır. Ve aslında harici devre dizaynlarını minimize etmek içindir. Entegre bu modda herzaman için power down da olacaktır. Yani PD pini CE pini aktif olduktan sonra her kaydetme ve oynatma sonrasında aktif olacaktır.

Entegrenin datasheetinde push button modunda bir örnek uygulama verilmiş.

Görüldüğü gibi çok sade bir uygulama. Yukarıdaki bilgiler takip edildiğinde bu devrenin nasıl çalıştığı daha iyi anlaşılacaktır.

Ve ayriyeten entegrenin datasheetinde bu entegrenin bir mikrodenetleyici ile nasıl uyumlu çalıştığını göstermek için başka bir uygulama daha verilmiş.

Ve son olarak, konunun daha iyi anlaşılması için odtü robot topluluğnun hazırladığı çok basit bir uygulamayı da paylaşmak istiyorum. Bu uygulamayı internetin heryerinde bulabilirsiniz ama olsun burada da olması kötü olmaz

pic-ile-isd2560-ses-kayit-entegresi-kullanimi-picbasic (1)

Kolay gelsin…

#### İlgili Haberler

### Arduino ile Tetris Oyna

Umut Yerli - 29 Temmuz 2021

### Programlama bilmeyenler için programlama gerektirmeyen basit projeler

Fatih - 21 Mart 2020

### Denge robotu nasıl yapılır? (Balancing robot)

Fatih - 29 Mart 2018

####