Proje: D-Class Amplifikatör Yapıyoruz!!

Başlatan FxDev, 28 Kasım 2014, 23:37:45

mistek

STM32L152RE

Rich analog peripherals (down to 1.8 V)
2x Operational Amplifier
12-bit ADC 1 Msps up to 40 channels
12-bit DAC 2 ch with output buffers
2x ultra-low-power comparators(window mode and wake up capability)
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

robomaster

#46
@mistek :
STM in 12 bitte çok daha hızlı olduğu görülüyor.
Acaba 12 bit üzerinden gitsek ne olur.
Yoksa harici bir adc mi kullansak.

Ses durumu nekadar etkilenir. Yapmışken baştan iyi bir şey mi olsa.

Oradaki output buffers denilen şey hold özelliğnden faklı dimi.

FxDev

#47
Şu an bulunduğum yerde elektrikler kesik. Gelince araştırma içine girip ilk şu hold özelliğine bakacağım.

Eğer oldu ki bu özellik yok STM32 yi master yapıp güç katını hazır entegreye devretme durumuna girebiliriz. Stereo olmadıktan sonra pek anlamı yok yaptığımız işin.
Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

mistek

Hold olayını ben anlamadım.

Hold bize ne için lazım ? ADC örnekledi bizde bunu belli adrese yazdık. Bize ikinci bir ADC mi lazım?

boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

FxDev

#49
Elbette lazım! Sağ ve sol kanal ayrılıyor. Sağdakinin ses seviyesi ile soldakinin farklı olabilir. Bunu anlamanın tek bir yolu var o da iki ADC kanalı kullanmak. Şimdi ses çıkarken bu kanallarden aynı anda çıktığını düşünürseniz aynı anda hold edilip çevrim yapılması gerekli ki faz farkı oluşmasın. Örneğin şarkıda sağ ve soldan aynı anda "do-re-mi.." diye değişiklik olduğunu varsayın. ADC'nin bir kanalı "do" yu diğer kanalı "re"yi kapar ve örnekler sonra da çıkışa verirse olmaz. İksi de aynı anda "do"yu almalı ki kulak aynı notaları duysun. Bu küçük gibi gözüküyor ama büyük problem. Bunun yanında çıkış kısa devre koruması da var.

Tüm bunları düşündüğümüzde sanki D-Class entegresi kullansak daha mantıklı olacaktı gibi geldi gözüme. İsterseniz projenin başında böyle bir değişiklik yapalım entegre olursa profesyonel bir şey de çıkmış olacaktır, ne dersiniz? Amacımızdan sapmış gibi gözükebiliriz yalnız sadece D-Class tarafını entereye yükleyip, yine diğer kısımları kendimiz yapabiliriz. Bu hem projenin gidişatını hızlandırır hem de profosyonel bir D-Class yükselticimiz olur. Eğer son dediğim gibi yapalım derseniz blok diyagramı değiştireyim?

Bu arada bugün aklıma geldi, pot yerine butonlu rotary encoder kullanalım, LCD kullandığımızda menu vb. daha avantajlı olabilir!
Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

robomaster

#50
Alıntı yapılan: mistek - 30 Kasım 2014, 15:23:04
Hold olayını ben anlamadım.

Hold bize ne için lazım ? ADC örnekledi bizde bunu belli adrese yazdık. Bize ikinci bir ADC mi lazım?


dOSTUM HOLD ŞUDUR :
Basitçe örnek verirsem
Sen sol kanal da adc çevrimi yaptın diyelim. Sonra sağ kanala geçtiğinde aradan zaman geçecek ve her iki kanalda şarkının aynı yerinde olmayacaktır. O zaman örneklemeye başlamadan önce her iki kanalıda hold edersek. (aynı anda) birinin çevrimini tamamladıktan sonra diğerine döndüğümüzde önceki sorunla karşılaşmayız. Aslında ADC çevrimindeki kapasitörün şarjlı tutulması olayı.
Aksi halde bir nevi REVERB olayı oluşur.

mesaj birleştirme:: 30 Kasım 2014, 15:35:39

Alıntı yapılan: FxDev - 30 Kasım 2014, 15:30:39
Elbette lazım! Sağ ve sol kanal ayrılıyor. Sağdakinin ses seviyesi ile soldakinin farklı olabilir. Bunu anlamanın tek bir yolu var o da iki ADC kanalı kullanmak. Şimdi ses çıkarken bu kanallarden aynı anda çıktığını düşünürseniz aynı anda hold edilip çevrim yapılması gerekli ki faz farkı oluşmasın. Örneğin şarkıda sağ ve soldan aynı anda "do-re-mi.." diye değişiklik olduğunu varsayın. ADC'nin bir kanalı "do" yu diğer kanalı "re"yi kapar ve örnekler sonra da çıkışa verirse olmaz. İksi de aynı anda "do"yu almalı ki kulak aynı notaları duysun. Bu küçük gibi gözüküyor ama büyük problem. Bunun yanında çıkış kısa devre koruması da var.

Tüm bunları düşündüğümüzde sanki D-Class entegresi kullansak daha mantıklı olacaktı gibi geldi gözüme. İsterseniz projenin başında böyle bir değişiklik yapalım entegre olursa profesyonel bir şey de çıkmış olacaktır, ne dersiniz? Amacımızdan sapmış gibi gözükebiliriz yalnız sadece D-Class tarafını entereye yükleyip, yine diğer kısımları kendimiz yapabiliriz. Bu hem projenin gidişatını hızlandırır hem de profosyonel bir D-Class yükselticimiz olur. Eğer son dediğim gibi yapalım derseniz blok diyagramı değiştireyim?

Bu arada bugün aklıma geldi, pot yerine butonlu rotary encoder kullanalım, LCD kullandığımızda menu vb. daha avantajlı olabilir!

Niye fena da gitmiyordu hocam. Erken havlu mu attın yoksa iş yoğunluğu mu var?

mistek

1us lik zaman farkı bizim için çok mu peki?
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

robomaster

Her iki kanal arasında ADC çevrim hızına göre ki bence 50us kadar çıkabilir bu mcu göre, bir fark oluşacaktır. Bir nevi reverb veya echo etkisi yapar. Kulak hissedermi emin değilim. Genelde dediğim efektler milisaniye seviyesindedir.

Aslında önemsemeden bu şekilde devam etmek işi yarım bırakmaktan daha mı iyi olur.
Ama niye yarım kasın ki. 16 bit bit adc bakalım ozaman. İşi harici bir adc modülle çözelim bence.
Sizler ne dersiniz ?

FxDev

@robomaster: Yok iş yoğunluğu değil aslında, ufak tefek şeyler çok mide bulandıracak, yok gecikti gecikmedi. Maliyet açısından da entegre daha uygun bir çözüm olacak artı profeosyonel bir şey çıkacak. Olayın ses boyutundan çok beni kısa devre durumu ilgilendiriyor. Bu kısımlar oldukça baş belası olabilen durumlar, daha önceki motor sürücü tasarımlarımdan biliyorum. Ama bugün bir kaç entegre inceledim, her şeyi içsel yapıyorlar ve çok uygun fiyatlar var bizim bu proje için örneğin 2$ denmiş. Ve alan oldukça küçük, bizim mosfetleri sürücüleri ve akım sensörlerini düşününce ciddi alana ihtiyacımız olacak.

Yine ses kısmıyla uğraşacağız elbette ses işlemi olacak mikrodenetleyicide ama kulaklık için bunu yapalım diyorum. Zaten spektrum oluşturma ses kısıp açma vs. yine mikrodenetleyici kontrolünde olacak. Güç kısmını entegreye atalım diyorum.
Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

robomaster

#54
Alıntı yapılan: FxDev - 30 Kasım 2014, 15:48:01
@robomaster: Yok iş yoğunluğu değil aslında, ufak tefek şeyler çok mide bulandıracak, yok gecikti gecikmedi. Maliyet açısından da entegre daha uygun bir çözüm olacak artı profeosyonel bir şey çıkacak. Olayın ses boyutundan çok beni kısa devre durumu ilgilendiriyor. Bu kısımlar oldukça baş belası olabilen durumlar, daha önceki motor sürücü tasarımlarımdan biliyorum. Ama bugün bir kaç entegre inceledim, her şeyi içsel yapıyorlar ve çok uygun fiyatlar var bizim bu proje için örneğin 2$ denmiş. Ve alan oldukça küçük, bizim mosfetleri sürücüleri ve akım sensörlerini düşününce ciddi alana ihtiyacımız olacak.

Yine ses kısmıyla uğraşacağız elbette ses işlemi olacak mikrodenetleyicide ama kulaklık için bunu yapalım diyorum. Zaten spektrum oluşturma ses kısıp açma vs. yine mikrodenetleyici kontrolünde olacak. Güç kısmını entegreye atalım diyorum.

Güç kısmına gelince seçenekleri değerlendiriz. O kısma gelmeden direkt pic çıkışından filtre ile çıkış alıp osilaskop ile değerlendiririz.
Güç kısmında seçenek çok bence de.


Bu proje de amaç bazı şeyleri pratiğe dökmek zaten. İsterimki tüm çıkış katı ve kısa devre koruyucu ları biz tasarlayalım.
Kısa devrede :
1. Ya current sense ile mcu üzerinden
veya
2. Aktif elmanlar ile devre olarak 2 seçenek üzerinde düşünebiliriz.
1. si kolay bence. 2.si sıkar gibi geliyor. Örnek uygulamalara bakmak lazım.

Entegre hangi kısmı hallediyor anlamadım. Hangi entegre?

FxDev

Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

mistek

#56
Videolarda izlediğimiz elemanlar bu işi pic atmel ile yapmışlar iyi kötü ses duyuluyor biz niye takıldık ki.

Ben konuya çok hakim değilim ama ADC tarama yöntemi ile çalışan işlemcilerde 2 kanal arasındaki geçiş süresi 1us kadar bişeydi.
Yani 1. kanaldan sesi aldık t anında.
2. kanaldan t+1us sonra almamız çok sorun olmayacağını düşünüyorum.

Zaten mikroişlemcimiz tek çekirdek değil mi? 1. kanalın ADC birimin verilerini alıp Sol kulağa gönderip 2. kanalın verilerini işleyene kadar arada çok daha fazla süre geçecektir. Şuan tek sıkıntı Bit çözünürlüğü olarak görünüyor. Mario daki sesin benzerini dinleyebiliriz 8bit - 12bit çok sorun değil :)

Bence şöyle yapalım. Mikroişlemciden sonrası mevcut tasarım kalsın hazır entegre kullanmayalım.

SES-ADC-MCU arasında karar veremezsek en son ADC modülünü işlemciden bağımsız olarak yeni bir çiple çözeriz diye düşünüyorum.
Hedef bence %90 verimli D class anfi yapmak olsun sesin mükemmelliği sonra sağlanabilir.

Baktık olmuyor yapmayız yada çip kullanırız sonuçta kimsenin bu projeyi bitirmek teslim etmek gibi bir sözü yok. Amaç öğrenmek dedi zaten FxDev.

D class tasarımla ilgili
Biraz göz attım bulunsun el altında: http://www.irf.com/product-info/audio/classdtutorial606.pdf
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

robomaster

#57
Alıntı yapılan: FxDev - 30 Kasım 2014, 15:57:19
TPA3116 düşündüğüm entegre ismi.

Hocam entegrede analog girişler var. Entegre bir çok mevzuyu çözüyor zaten de. Bize çalışılacak bir şey kalmadı hani.

@mistek geçiş süresi 1sn de ona bir de çevrim süresinin ilave edilmesi lazım gibi geliyor bana. Dökümana bir bakalım.

FxDev

@mistek: O halde mistek'in dediği şekilde ilerliyoruz. Hazır entegreye yasak koyduk!
Forumda bazı bağnaz kişiler tarafından engellenip, atıldım. Tüm bu bağnaz kişilere rağmen Atatürkçülüğü sonuna kadar savunacağım; onlar da bağnazlıklarında boğulacaklar. Haberleşme için: info[at]firatdeveci.com / ©firatdeveci.com - ße Different Everytime!

mistek

Alıntı yapılan: robomaster - 30 Kasım 2014, 16:02:49
@mistek geçiş süresi 1sn de ona bir de çevrim süresinin ilave edilmesi lazım gibi geliyor bana. Dökümana bir bakalım.

Hocam çevrim süresi 1Msps verilmiş zaten. 1us de o olsun.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R