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

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

robomaster

#30
Alıntı yapılan: t2 - 30 Kasım 2014, 00:55:43
Filtre yerine geçiyor olabilir. 1bit sağa kaydirsak genlik yarıya iniyor, düşük genlikli dip gürültü sıfırlaniyor.

Hocam yani volume kontrol de bu sayede sağa sola shift  ile yapılıyor o zaman ?

t2

volume kontrol için  kaydırma işlemi biraz kaba olur.  Ses  her defasında yarıya iner.
Daha hassas olsa iyi olur

robomaster

#32
Alıntı yapılan: t2 - 30 Kasım 2014, 02:28:59
volume kontrol için  kaydırma işlemi biraz kaba olur.  Ses  her defasında yarıya iner.
Daha hassas olsa iyi olur

Aslına bakarsan hocam, pwm den sinus mesele değilde. Yazılımda volume işini nasıl çözüleceği konusunda şu ikilemdeyim:
Duty süresi değiştirilecek ancak zaten çok kısa (küçük) bir çözünürlükte olan pwm sinyalinin duty_on kısmı mesela volume  0 ile 100 arasında ayarlanmak istenirse birde duty nin kendisi 0-1024 çözünürlük yetecekmi?  Bir de küsüratlı ara değerlerde kulak hissetmese bile lineer bir volume kontrolü olmuyacak bence!
Ne dersiniz ?

FxDev

İşlemcideki ADC yetmezse dıştan bir ADC bloğu kullanılabilir aslında. Bugun analog devrelere girmeye başlayalım..
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

#34
@FxDev şu videonun osiloskop görüntüsünü koycam yeterli olur mu?
20Hz to 20kHz (Human Audio Spectrum)



Aslında hiç osilokop görüntüsüne ihtiyaç yokmuş yaklaşık 200mV genlikli videodaki sinyalin aynısıymış.

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

FxDev

#35
200mV gerçek değerler mi? Biraz düşük geldi bana. O halde giriş katı az çok belli oldu gibi. ADC kısmında şöyle bir problem var sağ ve solu aynı anda örneklemek gerek STM de aynı anda hold özelliği var mı? Kullandığım bir Pic de vardı bu özellik.
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

Alıntı yapılan: FxDev - 30 Kasım 2014, 12:07:18
İşlemcideki ADC yetmezse dıştan bir ADC bloğu kullanılabilir aslında. Bugun analog devrelere girmeye başlayalım..

Hocam ADC den ziyade ben pwm frekansının çözünürlüğü ve özellikle frekansına kafayı takmış durumdayım. Volume kontrolünün sağlıklı yapılabilmesi için duty sürelerinin önemli ölduğunu düşünüyorum. Ayrıca her örnekleme arasında geçen süredeki pwm pulse sayısı (frekansı) ne olursa uygun olur sence.
Kafada bir bilgi var mı ? Deneme yanılmamı gidiyoruz?

mistek

Alıntı yapılan: FxDev - 30 Kasım 2014, 12:07:18
200mV gerçek değerler mi? Biraz düşük geldi bana. O halde giriş katı az çok belli oldu gibi. ADC kısmında şöyle bir problem var sağ ve solu aynı anda örneklemek gerek STM de aynı anda hold özelliği var mı? Kullandığım bir Pic de vardı bu özellik.

Evet yaklaşık 200mV görünüyor osiloskopta.

Şimdi bişeyi farkettim. Bu videoyu oynatınca 20Hz den itibaren sesleri bilgisayardan duyabiliyorum ama telefondan oynatınca 250Hzden sonra duyabiliyorum. Telefonda 1W hoparlör var. Bilgisayarda 2x 2W + Bass var.

@robomaster hocam adamlar 8bit işlemcilerle hemde alt seviye işlemcilerle yapmışlar mantığını kavrasak olayın gerekirse 24bit adcli 16bit pwm li entegrelerde koyarız diye düşünüyorum. Zira bu konuda bilgim neredeyse sıfır. İlk kez ses çıkaran bişeylerle uğraşacağım.


@FxDev aynı anda iki kanalı örneklemeden mi bahsediyorsunuz? Stmde 1 tane ADC modülü var ve tarama yöntemi ile çalışıyor diye biliyorum.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

robomaster

#38
Alıntı yapılan: FxDev - 30 Kasım 2014, 12:07:18
200mV gerçek değerler mi? Biraz düşük geldi bana. O halde giriş katı az çok belli oldu gibi. ADC kısmında şöyle bir problem var sağ ve solu aynı anda örneklemek gerek STM de aynı anda hold özelliği var mı? Kullandığım bir Pic de vardı bu özellik.

Super şimdi yeni bir şey daha çıktı. ADC çevriminde her iki kanal da aynı anda hold edecek.
Daha önce dikkat etmemiştim. Picte böyle bir şey yok sanırım.
Aynı anda 2 farklı kanaldan eş zamanlı ADC çevirimi yapmak mümkün olduğunu sanmıyorum Microchip için.

*En azından 18 serisi için.

Hocam hangi pic ti o kullandığın.

FxDev

Arkadaşlar gördüğünüz üzere basit değil :) Şöyle ki adc 12 bitse pwm en fazla 12 bit olabilir. Ayrıca pwm frekansımız 100khz olacaksa adc ninde en az 100khz ile taranması gerekiyor ve bunların hepsi senkron olmak zorunda. Mono da sıkıntı yok ama stereo da sıkıntı var. Dspiclerin hepsinde aynı anda hold özelliği var hem de 4 kanal için birden!! Hold özelliği olsun çevrim sonrada yapılır ama aynı anda hold önemli bir kavram. Bunları zaten kesmeler ve DMA lar halledecek ama aynı anda hold yoksa işimiz zor gözüküyor stereoda.
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

#40
Alıntı yapılan: FxDev - 30 Kasım 2014, 12:50:16
Arkadaşlar gördüğünüz üzere basit değil :) Şöyle ki adc 12 bitse pwm en fazla 12 bit olabilir. Ayrıca pwm frekansımız 100khz olacaksa adc ninde en az 100khz ile taranması gerekiyor ve bunların hepsi senkron olmak zorunda. Mono da sıkıntı yok ama stereo da sıkıntı var. Dspiclerin hepsinde aynı anda hold özelliği var hem de 4 kanal için birden!! Hold özelliği olsun çevrim sonrada yapılır ama aynı anda hold önemli bir kavram. Bunları zaten kesmeler ve DMA lar halledecek ama aynı anda hold yoksa işimiz zor gözüküyor stereoda.

PWM frekansı ADC frekansından yüksek olabilir. Özellikle volume kontrol için olmalıda zaten gibi geliyor bana ...

DMA dediğin Direct Memory Access ise konu ile bağlantısını açabilirmisin hocam.

FxDev

Bunun bilgi sinyaline bir katkısı olmaz. Örneğin adc 100khz pwm 200khz olsun. Adcden sirayla 1 2 3 bilgileri aldik. Birw bir disari cikarirken bilgi 1 1 2 2 3 3 olarak disa cikacak. Bunun bir faydasi olacagini düşünmüyorum. Dma adcden bilgileri okuyup hazir olunca kesme cektirtebilir. Ben hala hold olayina takildim.
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

Dikkat edilmesi gereken diğer husus  ADC nin çözünürlüğüne ilave olarak o çözünürlükte saniye yapabileceği çevrim sayısıdır.
Biz cd kalitesini baz alıyorsak 44.1khz , bu her kanal için saniyede 44.1 ksps  çevirim demektir.
Microchip in 16 çözünürlükte bu hıza çıkan denetleyicisi yok eğer yanlış bakmadıysam.

Bir kontrol edin lütfen ...

FxDev

16 bit yok 12bitte hali hazirda bir projemde kullanmistim.
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

#44
Alıntı yapılan: FxDev - 30 Kasım 2014, 14:08:20
Bunun bilgi sinyaline bir katkısı olmaz. Örneğin adc 100khz pwm 200khz olsun. Adcden sirayla 1 2 3 bilgileri aldik. Birw bir disari cikarirken bilgi 1 1 2 2 3 3 olarak disa cikacak. Bunun bir faydasi olacagini düşünmüyorum. Dma adcden bilgileri okuyup hazir olunca kesme cektirtebilir. Ben hala hold olayina takildim.

Doğru Tam olarak 111 222 333 gibi doğru. Pwm çözünürlüğü volume kontrolünde önemli olan kısım. Şöyleki duty süresi çıkış genliğini belirliyorsa o zaman genliği pwm çözünürlüğü ne kadar geniş ise o kadar hassas ayarlarız. Şimdi daha iyi şekillendi.

mesaj birleştirme:: 01 Aralık 2014, 04:25:47

Alıntı yapılan: FxDev - 30 Kasım 2014, 14:18:27
16 bit yok 12bitte hali hazirda bir projemde kullanmistim.

PIC24FJ128GC010 için :
nalog Peripherals   3-Comparators, Bandgap - Yes, 2-OpAmp; 2A/D, 2x ADC Mode-1 16-bit @ 1ksps; ADC Mode-2 12-bit @ 10000ksps; 2D/A, 2x10-bit @ 1000ksps, CTMU

16 bit te 1ksps diyor. Sanırım yetersiz.
12 bit te 10000 ksps uçmuş.

12 bit e mecbur değiliz herhalde.

STM de ve diğer denetleyiciler de durum nedir? Arkadaşlar?