spot_img

NSP 2.0 Ses Asistanları

ÖZDİSAN ELEKTRONİK
SAHA UYGULAMA MÜHENDİSİ
MUHAMMED ALİ ÇELİK

Teknolojinin tarihsel gelişimine baktığımızda ölçüm yapılabilen, anlamlı verilere dönüştürülebilen her veri, o alanda gelişmeler sağlamış; kararlı ölçüm yöntemleri aranan özellikler arasında yerini alıyor. Bu hedef doğrultusunda 1962 yılında analog bir sinyalin örnekleme yöntemi ile dijitale çevrilmesi sinyal işlemede devrim niteliğinde bir başlangıçla neticelendi. Sinyal örnekleme aslında analog bir sinyali alıp küçük parçalara ayırarak “1” ve “0” değerlerinde ifade edilmesinden ibaret. Ancak bu çevrim anlamsız sinyalleri küçük kayıplarla anlamlı hale getirmeyi, ayrıca gürültüden arındırmayı çok daha kolaylaştırır. Bu gelişmeden en çok faydalanan sektörlerden biri müzik ve ses sektörüdür. Artık dijital sinyal işleme ile ses sinyali çeşitli uygulamalarla değiştirilebiliyor ve gürültüden arındırılabiliyor, böylelikle depolama alanından tasarruf edilebiliyor. Günümüzde dijital sinyal işleme birçok alanda yayıldığı için ses kontrolüne odaklanan cihazlar da hızla gelişiyor. Bu gelişim sürecinde ses entegrasyon sistemlerinin kullanımı oldukça yaygınlaşıyor ve bu sistemler günümüz teknolojisinin önemli bir öğesi haline geliyor. Bu noktada kolay erişilebilir ve geliştirmeye açık komponentler olan ses entegreleri sektörde önemli bir yer kaplıyor.

Ses entegreleri, dijital sinyal işleme teknolojilerini kullanan, kullanıcının ses komutlarını, sinyalleri ve diğer ses çıktılarını işleyebilen komponentlerdir. Bu entegreler endüstri, akıllı ev ve dış mekan, güvenlik, sağlık ve bunun gibi sektörlerde kullanılıyor. Örneğin; bir mobil cihazda, oyuncakta, GPS sisteminde veya bir kahve makinesinde bu entegreleri görebiliriz. Özdisan Elektronik, ses entegrelerine olan ihtiyaç ve talebi fark edip bu teknolojilerin yaygınlaşması doğrultusunda bağlantılarını kullanarak Nuvoton firmasının geniş ses ürün gamını kullanmayı tercih ediyor. Nuvoton ses entegrelerindeki teknolojik gelişim NSP 2.0 serisi ses asistanları ile geniş uygulama yelpazesi, özelleştirilebilirlik ve entegrasyon yeteneği ile sektörde öne çıkabiliyor NSP Ses Asistanı çeşitli sesli komut uygulamalarını gerçekleştirmek amacıyla tasarlanan ses entegresidir. İçerisindeki gömülü depolama alanı sayesinde aktarılan ses dosyalarını özelleştirilebilir şekilde çalma fonksiyonuna sahip. Ek bir amplifikatöre ihtiyaç duymaz. Kompleks komutları MCU yardımı ile uygulayabilecek şekilde dizayn ediliyor. Düşük örnekleme frekansına rağmen Nuvoton teknolojisi ile çok daha kaliteli ses çıkışı ve akabinde uzun süreler çalma imkanına sahip bu entegre hoparlörü doğrudan sürebilecek PWM çıkışına sahiptir. NSP serilerinde çalışma prensibi genel olarak aynı ancak üretim kılıfları, çıkış gücü ya da içeriğinde barındırabileceği depolama alanı farklılık gösterebilir. Şekil 1’deki tabloda NSP 2.0 serisini tanıtan bir tablo gösteriliyor. Bu yazıda sizlere NSP serisinin üyesi olan NSP2340A ses entegresini, kullanım sürecinde yararlanacağımız araçları ve nasıl kullanabileceğimizi anlatacağım. NSP2340A, 2.0 – 5.5 V gerilim aralığında çalışabilen, değişken sinyal örnekleme frekansına sahip, MCU ile I²C, UART ya da tek/çift kablo haberleşmesiyle iletişim kurabiliyor. Tercihe göre 12 kHz ve 16 kHz örnekleme frekansı ile tabloda verilen sürede ses depolayabilme özelliğine sahiptir. Şekil 2’de NSP2340A entegresi gösteriliyor.

NSP

NSP2340A halihazırda kullanılabilir olması için deneme kitleri ile destekleniyor.

NSP
  • NSP2340A1EP1 Deneme Kiti: NSP2340A ses entegresinin 2 adet buton yardımı ile kullanımını içeren deneme kitidir. Programlanabilir olmakla birlikte 1 kanalı ek çıkış gücü için N55PA01 amplifikatörü ile destekleniyor. Şekil 3’te NSP2340A1EP1 deneme kiti gösteriliyor.
  • NSP 2.0 Deneme Kiti: NSP2340A ses entegresi, N570H064l48 model MCU ve harici SPI Flash içeren bir deneme kitidir. Mikroişlemci sayesinde NSP entegresine özelleştirilmiş komutlar aktarılabiliyor. Deneme kitinde çok sayıda butonla ek komutların işlevi gerçekleştirebiliyor. Deneme kiti işlemci ile SPI arayüzü kullanılarak programlanabiliyor. Şekil 4’te NSP 2.0 deneme kiti gösteriliyor.

İki deneme kitinde de NSP entegresine ses verilerini aktarmak için ortak programlayıcı bulunuyor. Bu işlevi Nuvoton firmasının üretmiş olduğu NSP1-1Writer görür. Şekil 5’te NSP1-1Writer gösteriliyor.

Şekil 5 – NSP1-1Writer
NSP 2.0 deneme kiti, NuMicro ICP programlama yazılımı aracılığıyla N570H işlemcisine bağlı SPI Flash’a veri aktarabilmesi için Nu-Link for NuVoice programlayıcısına sahiptir. Şekil 6’da Nu-Link for NuVoice programlayıcısı gösteriliyor.

Şekil 6 – Nu-Link for NuVoice
NSP 2.0 serisi içeriğine ses dosyaları yükleyebilmek son derece zahmetsizdir. Bu işlem için Nuvoton firması “NSP Playlist Editor Tool” uygulamasını geliştiriyor.

NSP
NSP

NSP Playlist Editor Tool içerisinde “WAV” formatında dosyalar yükleyebileceğimiz bir platformdur. Günümüzde WAV formatında dosyalar daha yaygınken daha eski ses dosyalarda bu formata erişmek zor olabiliyor. Ancak ses sektörünün paralelinde gelişen bazı format çevirici uygulamalar bu konuda imdadımıza yetişir. Artık online olarak bile ses dosyasını WAV formatına çevirebilecek platformlar bulunuyor. Bu sayede NSP entegresi aslında uçsuz bucaksız bir açık kaynak kütüphanesine sahiptir diyebiliriz.
NSP 2.0 serisi için NSP Playlist Editor Tool V2 sürümünü kullanmak gerekir. Sizlere kurulum aşamalarını ve uygulamanın arayüzünü anlatacağım. Şekil 7’de NSP Playlist Editor Tool V2.00.000 (1) için kurulum dosyası ve kurulum sonrası yüklenmesi geren NSPPlayListEditor_V2.00.000_SP4 (2) dosyası gösteriliyor.
Bu aşamadan sonra NSP Playlist Editor Tool kurulumu tamamlanıyor. Uygulamaya giriş yaptığımızda, ilk bakışta Şekil 8’de olduğu gibi proje oluşturma bölümünde hangi NSP serisini (1) ve modelini (2) seçmemiz, akabinde oluşturacağımız kayıt dizinini (3) belirlememiz gerekiyor.
Eğer “Create New Project” kısmı gözükmüyorsa “File >> New Project ” yolunu izleyerek proje oluşturma bölümüne gelebiliriz. Proje boyunca NSP2340A1EP1 deneme kiti işlemlerde kullanılacaktır.

NSP

Bu aşamadan sonra Şekil 8’de başarıyla oluşturduğumuz projemiz için artık ayarlamalar yapabileceğimiz Şekil 9’daki gibi bir arayüzle karşılaşmamız gerekiyor. Burada genel kullanımda, MCU ile kullanım durumunda ve demo modunda ayarlayabileceğimiz birtakım seçenekler bulunuyor.

Şekil 9 – Ayarlar

  • 1: NSP entegresi içerisindeki ses sinyali seçeneklerde belirtilen PCM örnekleme değerinden küçükse belirlenen limit süresi boyunca sinyale kompres işlemi uygulanır başka bir deyişle baskılanır, sesi kısılır.
  • 2: Projede kullanılan ses dosyalarını aynı zamanda kayıtlı dizine kopyalar.
  • 3: NSP ses çalma sonrası kullanılmazsa belirtilen süre sonunda uykuya girer. Düşük güç modunda çalışır.
  • 4: MCU ile kullanılırken NSP entegresindeki ses verileri güncellemek için ISP fonksiyonu aktif edilir. Bu seçenek hem tüm kaynağı hem de tekil bir kaynağı güncelleyebilir. Eğer tekil kaynak güncellenmek isteniyorsa “All free space assigned to the last resource file” seçeneği seçilebilir, bu sayede tekil bir kaynak güncellenirken data büyüklüğü ayarlanabilir. Bununla birlikte tüm kaynağı aktif etmek istiyorsak bu seçenek seçili olmamalıdır.
  • 5: “Continue Playback” modu kanal 1 çalarken kanal 2 çalındığında kanal 1 duraklatılır ve kanal 2 çalmaya başlar. Kanal 2 bittikten sonra kanal 1 kaldığı yerden devam eder. Eğer bu mod aktive edilirse “2 Channel Playback” modu deaktive olur. “2 Channel Playback” modu 1. ve 2. kanalı zamanlamadan bağımsız olarak aynı anda çalabilir.
  • 6: MCU ile NSP entegresi I²C arayüzü aracılığıyla haberleşecekse bu seçenek seçilir.
NSP
  • 7: NSP entegresi MCU ile tek/çift kablo ile bağlı olduğunda bu seçenek seçilir. Burada dikkat edilmesi gereken tek kablo bağlantıda ISP fonksiyonu devre dışı kalır dolayısıyla kaynak güncellemesi yapılamaz.
  • 8: MCU ile NSP entegresi kullanılırken UART arayüzü aracılığıyla haberleşecekse bu seçenek seçilir.
  • DD9: NSP entegresinden ses çalmak istendiğinde tüm kanallarda belirtilen süre kadar gecikme uygulanır.
    Kullanıcı ayarlar sekmesindeki seçenekleri kullanacağı fonksiyonlar doğrultusunda özelleştirdikten sonra
    Şekil 10’daki gibi bir arayüz ile karşılaşır. NSP entegresi için yapılan işlemlerin çoğu bu arayüzden yürütülür.

Şekil 10 – NSP Playlist Editor Tool Ana Sayfa

  • 1: Projenin genel ayarlarının bulunduğu kısımdır. Yeni proje açma, kaydetme, Excel uygulamasına aktarma gibi işlevleri bulunuyor.
  • 2: Derleme, yazma ve “Start run program on chip” fonksiyonunun gerçekleştirildiği bölümdür.
  • 3: Proje ayarları, NSP entegresi kaynak güncelleme işlemi (Update Resource), “Sound and IO Preview” arayüzü, ekolayzır gibi fonksiyonların kullanıldığı bölümdür.
  • 4: Ses kütüphanesinin bulunduğu bölümdür.
  • 5: NSP entegresini MCU ile kullanırken gerekli komutların, ses verilerinin değerlendirildiği bölümdür.
  • 6: NSP entegresine doğrudan ses verisini atıp kullanabilmek için gerekli arayüzdür.
  • 7: “Sound Editing” arayüzüne ses verilerini aktarmak için “Index” bölümü bulunur. İsteğe göre her ses verisi ayrı Index ile kullanılabilir ya da tüm ses verileri tek index’te olabilir. Ayrıca Index içinde Index bulunabilir.
  • 8: “POR Index”, NSP entegresine sadece ilk güç geldiğinde alacağı sıfırlama (reset) ile ilişkilidir. Index ayarlanabilir ya da istenmiyorsa “None” seçilebilir.
  • 9: Index eklemek için kullanılır.
  • 10: Seçilen ses verisini bilgisayarda oynatmak için kullanılır.
  • 11: Ses verileri arasındaki sessizlik süresidir.
    “Sound and IO Preview” Fonksiyonu: NSP entegresini MCU ile kullanırken bu arayüzle uygulanılabilecek olası komutların değerlendirildiği bölümdür.
    Şekil 11’de uygulanabilecek örnek komutlar gösterilmiştir; bununla birlikte 1 numaralı buton ile komutlar test edilebilir.

Şekil 11 – NSP Playlist Editor Tool Sound and IO
Preview Arayüzü
Start Run Program on Chip Fonksiyonu: NSP Playlist Editor Tool üzerinde Sound IO Preview, Update Resource gibi bölümlerde işlemler yapmak için kullanılan fonksiyondur. Kullanabilmek için NSP entegresinin uygulamaya bağlı olması, Ayarlar sekmesinde bulunan “Enable ISP function (Two Wire / One Wire)” seçeneğinin aktif olması gerekir.

NSP Playlist Editor Tool içine, WAV formatındaki olan ses dosyaları Resource Editor bölgesinde Sağ Tık >> Add Resource işlemini yaparak ya da dosyaları sürükleyerek aktarılabilir. Dosyalar aktarıldığında şekil 12’deki gibi olacaktır.

NSP

Şekil 12 – Ses Dosyalarının Aktarımı
Şekil 12’de görüldüğü üzere bazı ses dosyaları için “ReSample(Hz)” sütunu “16000” ya da “ – “ değerlerindedir. Bu durum örnekleme frekansı tespit edilen ve edilemeyen olduğunu gösteriyor. Tüm ses dosyalarını aktif olarak kullanabilmek için Tümünü Seç » Sağ Tık « ReSample(Hz) aşamalarından sonra 6000 – 16000 Hz aralığında istenilen örnekleme hızı yazılabilir. Bu işlem sonunda Şekil 13’teki gibi olacaktır.

Bu mod NSP entegresini MCU ile kullanırken kaynak dosyalarını işleme, güncelleme, MCU komutlarını ön ayar ile deneyebilme, BIN formatında güncelleme dosyası oluşturma gibi özelliklere sahiptir. Sound Editing bölümünü kullanabilmek için ses kütüphanesindeki istenilen verilerin aktarılması gerekiyor. Aktarılan dosyaların entegre depolama alanının tamamına göre yüzdesel olarak oranı ve geriye kalan maksimum süre Şekil 14’te bir örnek ile gösteriliyor.

Şekil 14 – Ses Dosyalarının Aktarımı
Bu aşamadan sonra iki şekilde yol izlenilebilir:

  • BIN dosyası oluşturmadan ilerlemek
  • BIN dosyasını oluşturarak ilerlemek
    İki seçimin farkında “Enable ISP Function” seçili ya da değildir ayrıca birinde güncelleme dosyası oluşurken diğerinde oluşmaz. BIN dosyası oluşturmak istenmiyorsa bir sonraki adıma geçilebilir. Eğer isteniyorsa öncelikle seçeneklerden “Enable ISP Function” seçili olmalıdır. Akabinde derleme ve yazma komutlarının bulunduğu yerdeki “Build” seçeneği ile proje derlenmelidir. BIN dosyası otomatik olarak proje dizini C:\Nuvoton\NSPPlayListEditor\V2.00.000\NuvotonNSP_S1 dizininde oluşacaktır. BIN dosyası oluşturmak esasen NSP entegresine hazır paket halindeki ses verilerini zahmetsizce aktarmanın bir yoludur.

Update Resource Fonksiyonu: Daha önce oluşturulmuş olan BIN dosyasını kullanarak NSP entegresinde güncelleme yapılmasına olanak sağlayan fonksiyondur. Bu fonksiyonu çalıştırmak için “Start run on program chip” aktif olmalıdır. Ayrıca NSP entegresi uygulamaya bağlı olmalıdır. Şekil 15’te NSP1-1Writer ve NSP2340A1EP1 ikilisinin bağlantısı veriliyor.

Şekil 15 – NSP1-1Writer ve NSP2340A1EP1 Deneme Kiti
NSP2340A1EP1 ve NSP1-1Writer bilgisayara bağlandığında Şekil 16’daki gibi gözükmelidir.

Şekil 16 – NSP1-1Writer ve NSP2340A1EP1 Bağlantı Kontrolü
Şekil 17’de Update Resource arayüzü görülebilir. Burada NSP entegresini güncelleyecek BIN dosyasının dizini ve tek Index güncellemek için “Single Resource Update” seçeneği bulunuyor.

Şekil 17 – Update Resource Arayüzü
İstenilen BIN dosyası seçildikten sonra güncelleme süreci şekil 18’deki gibi gözükecektir.

Şekil 18 – Update Resource Arayüzü
NSP Entegresinde Sound Editing Modu ile Ses Dosyalarının Aktarılması
Sound Editing modunda yüklenen ses verileri MCU ile kullanılmak üzere ayarlanıyor. Çünkü ses verilerinin yüklendiği Index’ler komutlarla kontrol edilebilir. Komutsuz kontrol edilebilen tek fonksiyon “POR Index” kısmından seçilebilen fonksiyondur. Bu koşullar altında ayarlanan ses dosyaları NSP Playlist Editor Tool uygulamasında Build >> Rebuild Project and Write aşamaları sonrası kısa bir beklemenin ardından Index’lerde bulunan tüm ses verileri NSP entegresine aktarılır.
Bu aşamadan sonra Sound Editing modu kullanımı tamamlanmış olur. Şekil 19’da NSP entegresi programlanma anından bir görüntü veriliyor.

NSP entegrelerinin zahmetsizce kullanılmasına olanak sağlayan bu mod, entegrenin etkileşim pinlerini kullanarak, içerisine aktarılan müziklerin 4 adet fonksiyon ile çalıştırılmasını sağlar. Demo modu, Sound Editing modundan bağımsızdır. Ses kütüphanesindeki veriler demo moda aktarılabilir. Şekil 20’de demo modu gösteriliyor.

Şekil 20 – Demo Mode Arayüzü Şekil 20’de görüldüğü gibi:

NSP
  • POR: Açılımı Power on Reset olan bu fonksiyon, entegre ilk güç aldığında verilen sıfırlama (reset) sonrası otomatik olarak fonksiyona eklenmiş ses verisini çalacaktır.
  • BP00: NSP entegresinde 1. kanal görevini gören fonksiyondur. NSP2340A1EP1 deneme kitinde bu fonksiyon buton ile kontrol edilmektedir.
  • BP01: NSP entegresinde 2. kanal görevini gören fonksiyondur. NSP2340A1EP1 deneme kitinde bu fonksiyon buton ile kontrol edilmektedir.
  • BP00 + BP01: 1. kanal ve 2. kanalın aynı anda aktif edilmesi durumunda iki kanalda birden ses çalan fonksiyondur. NSP2340A1EP1 deneme kitinde iki butona aynı anda basılması yeterlidir.
    Oluşturulan kütüphanedeki ses dosyalarını ReSample (Hz) işlemiyle senkronize ettikten sonra akabinde aktarmak için istenilen fonksiyonlara Sağ Tık >> Add Resource eylemini gerçekleştirmek ya da ses kütüphanesinden sürüklemek yeterlidir.
    Tercihe göre yerleştirilmiş ses dosyaları Şekil 21’de gösterilmiştir. Her fonksiyon için çalma modu bulunuyor.

Play All: 4 fonksiyonda da bulunur. Fonksiyona eklenen tüm ses verilerini sırasıyla çalar. Örneğin NSP2340A1EP1 deneme kitinde 1. kanalda bu mod var ise 1. kanalın butonuna basıldığında içindeki tüm sesleri ara vermeden sırasıyla çalar.
Sequential Play: “POR” fonksiyonu hariç diğer 3 fonksiyonda da bulunur. Fonksiyona eklenen ses verilerini, ses verisi başına her aktif olduğunda çalar. Örneğin NSP2340A1EP1 deneme kitinde 1. kanalda bu mod var ise, 1. kanalın butonuna her basıldığında içindeki tüm sesleri sırasıyla çalar.
Level Hold: Fonksiyon aktif olduğu sürece içerisindeki ses verilerini sırasıyla çalar. Örneğin NSP2340A1EP1 deneme kitinde 1. kanalda bu mod var ise, 1. kanal butonuna basıldığı sürece içindeki sesler sırasıyla ara vermeden çalar.

Şekil 21 – Demo Mode Arayüzü
POR fonksiyonu için sadece “Play All” çalma şekli bulunuyor. Sadece ilk seferde ses çalacağı için kaç kez çalması gerektiği “Play All” kısmına çift tıklanarak


Şekil 22’de görüldüğü gibi “Repeat Number” bölümünden özelleştirilebilir.
Şekil 22 – Demo Mode Arayüzü
Demo modunun diğer bir özelliği ise her bir fonksiyondaki ses verisi için “Silence (Sessizlik)” süresinin belirlenebilir olmasıdır. Bununla birlikte fonksiyonun tekrar sayısı da belirlenebilir.
Demo modundaki özelleştirilebilir fonksiyonlar ayarlandıktan sonra “Build” seçeneği ile derlenmelidir. Bu işlemin ardından artık NSP entegresine yazılmaya hazır olacaktır. “Rebuild Project and Write” seçeneği ile yazdırılabilir. Şekil 23’te başarılı bir programlama işlemi gösterilmiştir.

Özetle NSP serisi entegreler gerek Ar-Ge imkanı olan kesime, gerekse hazır ürünlerle çalışan kesime hitap edebiliyor. Programlanma yönü ile kullanıcı dostu bir teknolojiye sahip olması üretici ve tüketici arasındaki uçurumu azaltıyor. Böylece halihazırda geniş bir çalışma alanı sunan bu ürün öne çıkan avantajlarıyla pazarlamaya elverişli bir ortam hazırlıyor. Yukarıdaki satırlarda sizlere yakın gelecekte yaygınlaşması kaçınılmaz bir ürünü tanıttım. Günlük hayatımızın bir parçası olacak bu teknolojinin imkanlarından yararlanmanın, yenilikleri takip etmenin hepimizin faydasına olacağını düşünüyorum.