PSoC için karışık sinyal PCB düzeni


16

Analog algılama uygulaması için bir PCB geliştiriyorum. PSoC3'te dahili ADC'yi kullanır. Her zamanki gibi, uygulama çok alan kısıtlı (11mm x 21mm), bu yüzden PCB düzeninde daha büyük bir PCB'de yapmayacağım bazı ödünler vermek zorunda kaldım.

PSoC PCB

Kart, regüle edilmiş 6v tarafından sağlanır ve iki adet 5v doğrusal regülatör içerir. Bir MCP1702 dijital temini için, ve bir MIC5205 analog kaynağı için. Kart beş adet A1324 Hall efekti sensörü algılıyor . Her Hall efekti çıkış sinyali 100nF + 1k RC filtresi ile filtrelenir. Bir sensör PCB'nin üzerindedir (sağ alt). Diğer 4 adet sağ 6 pimli konnektöre takılır.

Yonga bir SPI slave olarak işlev görür, ancak ADC örnekleri her zaman SPI işlemleri arasında alınır , bu nedenle SPI analog sinyallere müdahale etmemelidir.

Ne yazık ki, analog sinyaller üzerinde hala biraz gürültü (12 bitte 1.5 LSB) görüyorum ve bunu geliştirmek için düzende farklı yapabileceğim bir şey olup olmadığını merak ediyorum.

PSoC Düzeni

Daha yüksek çözünürlükte görmek için lütfen resmi yeni bir sekmede açın.


Katma:

MCP3208'i kullanarak yaptığım diğer PCB tasarımları ve aynı çift 5v besleme , aynı sensörler ve aynı RC filtreleri 12 bitte belirgin bir gürültü elde etmedi.

PSoC3'teki ADC bir delta sigma türüdür. PSoC'nin bu sürümü 12 bit ile sınırlıdır, ancak başka bir parça numarası 16 bitlik bir ADC'ye sahiptir (daha düşük bir örnekleme hızına rağmen).

Gürültüyü önemsiyorum ve gerçekten 12 ENOB'a doğru biraz daha itmek istiyorum. Nedeni doğruluk değil, hız ölçümüdür. Şu anda bu gürültü seviyesi, bir robot üzerinde doğru konum ve hız kontrolü yapmayı imkansız kılmaktadır.


Katma:

Şematik. Üzgünüm, biraz sıkışık, ama hemen hemen değerleri okuyabilirsiniz.

PSoC Şeması


1
Ayrıca, NET ETİKETLERİ KULLANMAYI DURDURUN! Kişisel devre yakınında bile bunları gerektirecek karmaşık, yeterli uzunlukta ve aslında bağlantıları göstermeyerek, bunu çok daha zor bağlantıları dışarı iz olun. Yine, şemanın amacı , devrenin amaçlanan işlevini ve işlevselliğini görsel olarak belirgin hale getirmektir . Daha sonra bilgisayarın görsel temsili aygıtların gerçek fiziksel düzenine çevirmesine izin vermiş olursunuz (bu, bilgisayarların çok iyi olduğu bir şeydir).
Connor Wolf

1
@Rocketmagnet - Devreyi çizen kişi için kesinlikle yararlıdırlar . Diğer herkes için tamamen iğrenç .
Connor Wolf

1
Ayrıca, yer kısıtlamaları nedeniyle telleri yönlendirmekle ilgili sorun yaşıyorsanız, umutsuzca Altium'daki pin değiştirme işlevlerine bakmanız gerekir . Temel olarak, bileşen tanımında (IE çeşitli IO pinleri) işlevsel olarak değiştirilebilen pinleri belirtebilirsiniz ve daha sonra PCB'yi yönlendirirken izleri, sadece bir tane yerine, işe yarayacak herhangi bir pin için çalıştırabilirsiniz. şematikte belirttiniz. Daha sonra, PCB'de seçtiğiniz yönlendirmeyi şemayla senkronize edebilirsiniz.
Connor Wolf

1
@FakeName, etiketlerle bağlantı kurmak bir devreyi takip etmeyi zorlaştırabilir, güzel düz çizgilerle saf ve temiz bir şema yapmak için her sembolü yeniden çizmek, şematik giriş yapma süresini kolayca dört katına çıkarabilir. Mükemmel bir şema görmek isterim, bir tane talep etmenin gerçekçi olduğundan emin değilim.
Foton

1
@Rocketmagnet, Çok küçük bir pcb alanına sahip olmak, şemanızı D boyutlu kağıda çizemeyeceğiniz anlamına gelmez.
Foton

Yanıtlar:


13

ADC'de her zaman biraz gürültü olacaktır, özellikle mikrodenetleyici kalıbındaki SA (Ardışık Yaklaşım) türleri. Sigma-delta, Gauss gürültüsü için entegre olduklarından daha iyi performans gösterir. 12 bit ADC'den 12 ENOB beklemeyin.

Denetleyicinin gürültüsü, çoğu mikro denetleyicinin size 10 bit'ten daha yüksek bir çözünürlük vermemesinin bir nedenidir ve AVR, ADC'nin alımı sırasında mikro denetleyiciyi durdurma olanağı sunar, bu da en azından bazı seslerin denetleyiciden geldiğini doğrular. .

Ama soru şu: umurunda mı? 12 bitlik bir ADC'de 1,5 bitlik gürültü hala 10 bitten fazla veya% 0,1'den daha iyi kalır. Hall sensörünüz ne kadar doğrudur? Devredeki diğer bileşenler?

edit
Şemada hiç kristal görmediğim için PSoC'nin dahili osilatörünü kullanıyor gibisiniz. Tamam görünüyor: uygun ayrıştırma var. Dahili saatin dışında, devredeki tek yüksek hızlı kısım SPI gibi görünüyor, ancak ölçümler sırasında bunun sessiz olacağını söylüyorsunuz. Kartın geri kalanı DC veya Hall efekt sensörleri gibi muhtemelen nispeten düşük sıklıkta. Ve bu da yardımcı olan bir Damn Small ™: daha kısa izler daha az gürültü alacak. Tabii ki çıkış kondansatörünün pimlere daha da yakın yerleştirilebilmesi için 90 ° CCW'yi döndüğüm MCP1702 hakkında nitpick yapabilirim, ancak bu sorunları çözmez.

Düzende yalnızca S / N oranınızı artırabilecek bir değişiklik görüyorum:

resim açıklamasını buraya girin

Veri sayfasında, "Optimal Analog Performans" için bölünmüş analog ve dijital zemin düzlemleri önerilmektedir (sayfa 10).

Geri kalanı için: dediğim gibi küçük bir tahta, bu birkaç mm içinde kısa izler ve ayırma anlamına gelir. Bu yüzden gürültünün kaynağına bir kez daha bakmak istiyorum. Asıl şüpheli PSoC'nin saati. PSoC çok düşük bir besleme voltajı çalıştırabilir ve bu da gürültüsünü azaltır. Tabii ki VDDA'nın da düşürülmesi gerekiyorsa çok yardımcı olacaktır, ancak veri sayfasında VDDA'nın VDDD'den daha yüksek olmaması gerektiği hiçbir yerde okumadım.

Sonra, ADC. Veri sayfasının 55. sayfasında 66 dB SINAD yazıyor, 11 bit, şimdi aldığınız şeye yakın. A1324 veri sayfası bize 2,5 V durgun bir voltajda 7 mVpp gürültü verir. Bu da 12 bitin verebileceği 72 dB S / N oranından çok daha azdır. Ekstra filtreleme ile bunu biraz geliştirebilirsiniz.

MCP3208'in daha iyi performansından bahsediyorsunuz, ancak bu mikrodenetleyiciden uzakta bir ADC ve bu bir SA ADC'nin aynı çözünürlükte bir sigma-deltadan nasıl daha iyi yapabileceğini açıklayabilir.

Gördüğüm seçenekler: dijital güç kaynağı voltajını düşürün ve analog ve dijital toprakları ayırın.


Bu, PSoC'nin dijital besleme voltajını düşürmek hakkında çok ilginç bir fikir. VDDA kesinlikle VDDD'den daha yüksek olabilir.
Rocketmagnet

Peki, VSSA'yı termal pedden ayırmam gerektiğini mi düşünüyorsunuz? Aslında bunu tamamen yeni bir soru olarak yayınladım .
Rocketmagnet

2

Yukarıdakilere katılıyorum. 1.5LSB gürültü oldukça makul. http://www.cypress.com/?docID=39346 , 12 bit modunda en az 66 dB SINAD gösterir ve ENOB = 10.7 değerini gösterir.

Bunun sorunuza doğrudan bir cevap olmadığını biliyorum, ancak soruyu "hız kontrolü ile ilgili sorunlarımı nasıl düzeltebilirim?" "10,5 ENOB'dan daha fazla nasıl edinebilirim?" değil.

Nasıl farklılaşıyorsunuz? İki noktalı merkezi farktan daha pürüzsüz bir saç yapmak için yeterli yedek saat keneniz var mı? Matlab'da optimize edilmiş 5 örnek genişliğinde bir şey düşünebilir misiniz?

Ayrıca, bu biraz komik gelebilir, ancak daha hızlı örnek aldığınızda hız gürültüsü kötüleşir

1LSBΔt
ö t) küçüldükçe daha büyük olur. Mümkün olduğu kadar hızlı değil, yalnızca ihtiyacınız olduğu kadar hızlı örneklemeyi deneyin.

Hakaret etmemek, aynı zamanda, hız kontrolünüzde, imzalı ve imzasız tamsayılar arasındaki dönüşümlerle ilgili sorunlar gibi, aptalca bir şeyin olmadığından emin olmak için hızlı bir bakış atın ve farklılaştırdığınızda taşma hatalarını önlemek için tamsayılarınızın yeterince geniş olduğundan emin olun . Kendi kontrol denklemlerim çoğu zaman bazen her bir işlemi açıkça belirleyeceğim kadar karmaşık hale geliyor.

Son olarak, belki de büyük olasılıkla, tam ölçeğe yakın yükselemeyerek etkin bitleri kaybediyor musunuz? Öyleyse, daha küçük bir Vref'i yükseltebilir veya belki de sağlayabilirsiniz.


Bir Alfa Beta Filtresi kullanarak konum ve hızı hesaplıyoruz . Saf olarak yapılırsa örnekleme hızı arttıkça hız gürültüsünün arttığını anlıyorum. Hız gürültüsünün bir işaret hatasından kaynaklanmadığından eminim. Ve zaten neredeyse tam ölçekteyiz, bu nedenle aralığın üst veya alt kısmına çarpma riski olmadan yapabileceğim daha fazla amplifikasyon yok.
Rocketmagnet

Düzende yapabileceğim hiçbir gelişme olmadığını söyleyebilir misiniz?
Rocketmagnet

Henüz bir şey göremiyorum. Salon sensörlerini nasıl güçlendiriyorsunuz? AB filtrelerinin ve kontrol denklemlerinin çıktılarına gerçekte bir kontrol olarak baktınız mı? Regülatör çıkışlarınızda gürültü var mı? Tüm sistem için resmi bir gürültü bütçesi yapmak aydınlatıcı olabilir
Scott Seidman

1
Fakat! Diferansiyel modun diğer avantajı, 4x örnekleme hızını artırmama izin vermesidir, böylece aşırı örnekleme yapabilirim. Bu, sesi biraz düşürmelidir.
Rocketmagnet

1
Belki Vref'de bir bypass kapağı (bunu nasıl yapacağınızdan emin değilsiniz, veri sayfasında). Bunun dışında, PSOC 3 ADC için 12 bitte ideal ENOB'a çok yakınsınız, bu yüzden olabildiğince iyi yaptınız!
Scott Seidman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.