16 bit spi iletişiminden 16bit kalitede ses alır mıyız?

Ahmet

S38>S85
Katılım
31 Mayıs 2021
Mesajlar
6,052
@taydin abi bir ses dosyasını sd karta kaydedip sonra bu kaydı spi bus üzerinden alıp dac ile çaldırmakta avantaj dezavantaj nedir 16 bit spi iletişiminden 16bit kalitede ses alır mıyız?

Yoksa dijital olarak ses iletişiminde çözüm I2S mi?
 
@taydin abi bir ses dosyasını sd karta kaydedip sonra bu kaydı spi bus üzerinden alıp dac ile çaldırmakta avantaj dezavantaj nedir 16 bit spi iletişiminden 16bit kalitede ses alır mıyız?

Yoksa dijital olarak ses iletişiminde çözüm I2S mi?
16 bit sesin 16 bit veriyolu uzerinden aktarilmasi diye bir sey yok ki. Sesi orneklerken 16 bit kullanmak sesin seviyeleri arasindaki farki belirler. 16 bit sesi 1 bit veriyolu uzerinden de iletebilirsin. Yeter ki bant genisligini yeterli olsun. 1 bit uzerinden 300K baud veri gonderebiliyorsan 16 bit orneklenmis 128K'lik bir sesi de rahat rahat gonderirsin. USB 2.0 iletisimde 1 RX ve 1 TX kullaniliyor ama 240 Mb tek yonlu veri aktariliyor ornegin. Veriyolu 1 bit ama hizi cok yuksek.
 
16 bit sesin 16 bit veriyolu uzerinden aktarilmasi diye bir sey yok ki. Sesi orneklerken 16 bit kullanmak sesin seviyeleri arasindaki farki belirler. 16 bit sesi 1 bit veriyolu uzerinden de iletebilirsin. Yeter ki bant genisligini yeterli olsun. 1 bit uzerinden 300K baud veri gonderebiliyorsan 16 bit orneklenmis 128K'lik bir sesi de rahat rahat gonderirsin. USB 2.0 iletisimde 1 RX ve 1 TX kullaniliyor ama 240 Mb tek yonlu veri aktariliyor ornegin. Veriyolu 1 bit ama hizi cok yuksek.
Allah Allah hem diferansiyel hat olup hemde rx tx nasıl oluyor usb konnektöründen +-de gidiyor diye biliyorum.

Single tx/rx line nasıl 10 metre uzağa sorunsuz veri iletebiliyor bununda anlamış değilim.

Sorumun cevabına gelirsek herhangi bir veri iletişiminde istenen çoğunlukla hız değildir(en azından bu zamana kadarki profesyonel ve amatör meslek hayatımda gördüğüm bu) Ne kadar sorunsuz veri iletebiliyorsun? Olay tamamen bundan ibaret tek seferde 16 bit paketi transfer etmek her zaman en avantaj sağlayan olacaktır. Benim sorduğum aslında bahsettiğim işin oluru ne kadar?
 
Allah Allah hem diferansiyel hat olup hemde rx tx nasıl oluyor usb konnektöründen +-de gidiyor diye biliyorum.

Single tx/rx line nasıl 10 metre uzağa sorunsuz veri iletebiliyor bununda anlamış değilim.

Sorumun cevabına gelirsek herhangi bir veri iletişiminde istenen çoğunlukla hız değildir(en azından bu zamana kadarki profesyonel ve amatör meslek hayatımda gördüğüm bu) Ne kadar sorunsuz veri iletebiliyorsun? Olay tamamen bundan ibaret tek seferde 16 bit paketi transfer etmek her zaman en avantaj sağlayan olacaktır. Benim sorduğum aslında bahsettiğim işin oluru ne kadar?
Enerji hatti ve data hattini bir tutmamak lazim. Enerji hattindan veri iletmiyoruz ki. USB standardinda kablo mesafesi 5 metre ile sinirli. Extender ile 15 metre cikarilabiliyor ama.

Tek seferde iletilen veri paketi icin ideali budur diye bir sey de hic duymamistim. Belki benim eksikligimdir. Ama ornegin PC olarak ele alirsak ASCII sistemde 8 bit / 1 Byte kullaniliyordu ilk modellerde. Sonra 16 bit, 32 bit , 64 bit mimariye gore yeniden sekillendirdiler. Mimariye bagimli. Elinizdeki islemci 32 bit ise veriyi de 32 bit gonderip sonra islemci icinde tumunu tek seferde islemek daha verimli olur gibi geliyor.
 
@taydin abi bir ses dosyasını sd karta kaydedip sonra bu kaydı spi bus üzerinden alıp dac ile çaldırmakta avantaj dezavantaj nedir 16 bit spi iletişiminden 16bit kalitede ses alır mıyız?

Yoksa dijital olarak ses iletişiminde çözüm I2S mi?

SPI ile CD kalitesinde (stereo, 44,1 kHz, 16 bit) ses göndermek rahatlıkla mümkündür. SPI mi kullanılacak, I2S mi kullanılacak, bunu kullandığın DAC belirler. Eğer elindeki DAC SPI ise Arduino ile rahat sürebilirsin. Eğer elindeki DAC I2S ise, Arduino'da I2S çıkışı yok, ama birkaç takla atarak SPI ile bir I2S DAC'ı sürebilirsin.

Aslında saat anonsu yapacaksın, kalite önemli olmaması lazım. Şimdi Hz ChatGPT ye sordum, Arduino'dan PWM olarak ses üreten şu kütüphaneyi önerdi:

1695486524057.png
 
Enerji hatti ve data hattini bir tutmamak lazim. Enerji hattindan veri iletmiyoruz ki. USB standardinda kablo mesafesi 5 metre ile sinirli. Extender ile 15 metre cikarilabiliyor ama.

Tek seferde iletilen veri paketi icin ideali budur diye bir sey de hic duymamistim. Belki benim eksikligimdir. Ama ornegin PC olarak ele alirsak ASCII sistemde 8 bit / 1 Byte kullaniliyordu ilk modellerde. Sonra 16 bit, 32 bit , 64 bit mimariye gore yeniden sekillendirdiler. Mimariye bagimli. Elinizdeki islemci 32 bit ise veriyi de 32 bit gonderip sonra islemci icinde tumunu tek seferde islemek daha verimli olur gibi geliyor.
İroni yaptım aslında.
Universal Setial Bus sisteminde Tx Rx hattı yoktur tamamen diferansiyel hat olarak çalışır uzun menzili bu şekilde sağlar.

9600 baud değerinde 2 metre mesafeye uart veri aktarımı yapmaya çalışın inanılmaz aksaklıklar yaşarsınız.

Usb alıcı verici tamamen"yeter konuştun sıra bende" diyerek çalışır bölünmüş hatlı bir iletişimi yoktur usb'nin
 
İroni yaptım aslında.
Universal Setial Bus sisteminde Tx Rx hattı yoktur tamamen diferansiyel hat olarak çalışır uzun menzili bu şekilde sağlar.

9600 baud değerinde 2 metre mesafeye uart veri aktarımı yapmaya çalışın inanılmaz aksaklıklar yaşarsınız.

Usb alıcı verici tamamen"yeter konuştun sıra bende" diyerek çalışır bölünmüş hatlı bir iletişimi yoktur usb'nin
RS232 ile evet ama RS485 ile 1200 metreye kadar yolu var.
 
RS232 ile evet ama RS485 ile 1200 metreye kadar yolu var.
usb için konuşmuştum rx tx yok yanlış biliyorsun.

D+(tx)
D-(rx) diye bissürü yanlış bilgi var çok görüyorum bunu.

485 tarihe eser bir haberleşme hattı yerine öyle protokoller geldi ki öğrenince 485 den soğursun.

Can open, profinet, profisafe, 485 üstünde çalışan LON.

485in çoktan ayağı kaydı aslında sadece son demlerini alıyor sanayiden.
 
Sozun ozu ise gore protokol, mimari ve donanim secimi. 16 bit en iyisidir gibi bir anlatim yok sonucta. Ayni isi birden farkli yontem ile yaptirmak mumkun olduguna gore su en iyisidir demek imkansiza yakin.
 
Sozun ozu ise gore protokol, mimari ve donanim secimi. 16 bit en iyisidir gibi bir anlatim yok sonucta. Ayni isi birden farkli yontem ile yaptirmak mumkun olduguna gore su en iyisidir demek imkansiza yakin.
Sanayide ve gömülüde kalıplaşmış yapılar var.
Birkaç örnek vereyim zaten anlaşılır duruma gelir.

acil stop kapalı kontak olmak zorundadır, vfd start stop dijital girişten yapılır iletişimden start stop yapılmaz, mcu içindeki çekme direnci kullanılmaz fiziksel çekme direnci kullanılır,topraklama iptal etmek için ilave klamens kullanılır(kaçak akım rölesi düşmanlığı) aynı kablo içinden iletişim ve besleme gitmez(ustaya göre göreceli),mekanik anahtara güven(röle,kontaktör)

Kalıplaşmışın dışında iş yaparken kafanda oluşan sorgulamayı atman biraz zor oluyor.

Bunlar bizim ülkemize özgü genelde avrupada yapılmış işlerde sanki bu yazısız kanunlardan hiç haberleri yok gibi yapıp veriyorlar o kadar garip geliyorki zamanla bu raddeye gelecek miyiz yoksa doğru olan bizim kalıplaşmış kanunlar mı bilmiyorum.
 
SPI ile CD kalitesinde (stereo, 44,1 kHz, 16 bit) ses göndermek rahatlıkla mümkündür. SPI mi kullanılacak, I2S mi kullanılacak, bunu kullandığın DAC belirler. Eğer elindeki DAC SPI ise Arduino ile rahat sürebilirsin. Eğer elindeki DAC I2S ise, Arduino'da I2S çıkışı yok, ama birkaç takla atarak SPI ile bir I2S DAC'ı sürebilirsin.

Aslında saat anonsu yapacaksın, kalite önemli olmaması lazım. Şimdi Hz ChatGPT ye sordum, Arduino'dan PWM olarak ses üreten şu kütüphaneyi önerdi:

25615 eklentisine bak
ben daha çok esp32'den yola çıkarak düşündüm.

esp32'de tümleşik olarak 2 tane 8bit dac var.

spi bus üstünden aldığımız 16 bit sesi 2 kanal dac kullanarak bir minik hoperlör projesi haline getirebilirsek hoş olur diye düşündüm güzel boş zaman projesi olur hemde gömülü jimnastiği yaparım.

ilave komponent kullanmadan tek başına bir hoperlör yapabiliriz esp32 dahili olarak I2S'de barındırıyor biraz çaplı yapmak istersek MAX98357(I2S INPUT 3W AMP.) buda bir alternatif.

dahili dac kullanırsak herkes için yapılabilir olur bence proje 1 esp32 ile bitirmiş oluruz tabi üstündeki dac benim yorumumca max 1mA gücünde olacaktır(tahmini yorumum) mutlaka bir amfi entegreside kullanmamız gerekir(PAM8xxx) çok seviyorum.

Detaylandırıp konu açayım hoşuma gitti proje.
 
ben daha çok esp32'den yola çıkarak düşündüm.

esp32'de tümleşik olarak 2 tane 8bit dac var.

spi bus üstünden aldığımız 16 bit sesi 2 kanal dac kullanarak bir minik hoperlör projesi haline getirebilirsek hoş olur diye düşündüm güzel boş zaman projesi olur hemde gömülü jimnastiği yaparım.

ilave komponent kullanmadan tek başına bir hoperlör yapabiliriz esp32 dahili olarak I2S'de barındırıyor biraz çaplı yapmak istersek MAX98357(I2S INPUT 3W AMP.) buda bir alternatif.

dahili dac kullanırsak herkes için yapılabilir olur bence proje 1 esp32 ile bitirmiş oluruz tabi üstündeki dac benim yorumumca max 1mA gücünde olacaktır(tahmini yorumum) mutlaka bir amfi entegreside kullanmamız gerekir(PAM8xxx) çok seviyorum.

Detaylandırıp konu açayım hoşuma gitti proje.
DAC olmayan MCU larda ses çıkışı için PWM kullanıp duty cycle değiştirerek sanırım bir de RC filtreden geçirip kulağa sesmiş gibi gelmesi sağlandığını duymuştum. İyi bir ses ama çok kaliteli değil tabi ama iş görecek kadar.
 

Pwm teknigi ile olusturdugum sesler.

Videoda kisaca bahsetmisim burada da yazayim.

Yaklasik 20Khz pwm frekansinda 12 bitlik ham ses verileri 1-0 seklinde MCU dan cikiyor ve bu sinyal 2 transistorden olusan amplifikator ile hoparlore uygulaniyor. Yani amplifikator D sinifi calisiyor. Herhangi bir filite vs kullanilmiyor.

Projemde oldugu gibi yeterince yuksek depolama alaniniz varsa (ben SD kart kullandim) ham ses verilerini dogrudan kullanabiliyorsunuz ve hic bir codec vs cipe yada yazilima ihtiyac duymuyorsunuz.

Ses kalitesi HMI icin fazlasiyla yuksek.

Kendi sesinizi yukleyecekseniz sessiz ortamda PC de ses kaydedici programini kullanabilirsiniz.

Proje icin yazdigim PC programi herhangi bir sample rate degerinde, herhangi bir bit uzunlugunda hazir ses dosyasini 20kHz 12 bit formata ceviriyor. Bu sayede buldugum herhangi bir wav dosyasini projemde kullanabiliyordum.

Projede dikkat edilmesi gerek kritik nokta sample rate degeri arttikca pwm registerine data yuklerken SD kart okumada gecikme olmamasi gerekiyor.

Yani SD karti okurken pwm update ahenginin bozulmamasi gerekir.
 
Son düzenleme:
M0 Cipi nedir ne degildir diye yaptigim ilk projem. Bacak sayisi da az olunca cipe tellerle baglanti yaptim. Bu projeden sonra M0 ve ASM mi bir daha tovbe diyip M0 a elveda dedigim bir calisma.
 
M0 Cipi nedir ne degildir diye yaptigim ilk projem. Bacak sayisi da az olunca cipe tellerle baglanti yaptim. Bu projeden sonra M0 ve ASM mi bir daha tovbe diyip M0 a elveda dedigim bir calisma.
abi para değil 2 3 lira smd dip çeviriciler al at kenara dursun uğraştığına değmez
 
Haklisin. Ama burdaki lehimleme zorlugu ne ki. Ne iskenceler ne eziyetler gordum.
 
usb için konuşmuştum rx tx yok yanlış biliyorsun.

D+(tx)
D-(rx) diye bissürü yanlış bilgi var çok görüyorum bunu...
USB iletisimde (yeni versiyonlari saymazsak) 2 besleme 2 tane de iletim hatti var. 2 iletim hatti diferansiyel sinyal iletiyor ve cift yonlu. Dolayisi ile half dublex calisiyor.

TX yaparken kendi kendini dinleyebiliyor carpisma olup olup olmadigini anlayabiliyor.

Gonder, al gonder al seklinde calisiyor.

USART vs den farkli olarak 2 kablodan gelen sinyaller USB machine denen bloga giriyor ve USB iletisiminde tokenlar, crcler vs yazilimdan bagimsiz olarak donanimsal olarak bu blok tarafindan yurutuluyor. Buraya hic bir sekilde yazilim tarafindan mudahale edilemiyor. En fazla reset islemi yapabilirsiniz.

Bu modul cikisindaki veriler artik yazilimsal protokolde kullanilabilir veriler oluyor.

Eger USB protokol uzerine calismak isterseniz internette yanlis hatirlamiyorsam PIC16F84 ile yapilmis bir proje var.

Burada usb protokol derken yanlis anlasilmasin usb machine kismindan bahsediyorum. Hemen ardindan da uzerine HID protokolu yazilmis.
 
Son düzenleme:
DAC olmayan MCU larda ses çıkışı için PWM kullanıp duty cycle değiştirerek sanırım bir de RC filtreden geçirip kulağa sesmiş gibi gelmesi sağlandığını duymuştum. İyi bir ses ama çok kaliteli değil tabi ama iş görecek kadar.
böyle bülbül sesli zil yapmıştım yeni arduino öğrenmeye başladığımda.

konuyu evirip I2S amfi ile minimal bir hoperlaör yapmak istiyorum
 

Forum istatistikleri

Konular
5,878
Mesajlar
100,184
Üyeler
2,488
Son üye
ilter

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top