12 bit ADC'lerle çalışırken tasarım gereksinimleri


11

Şu anda bir Raspberry Pi'ye 12bit ADC (MCP3208) bağlayan bir tahta tasarlıyorum (birkaç düşük hızlı G / Ç ile ilgili diğer şeylerin yanı sıra). Çoğunlukla analog sensörlere bağlanacaktır (sıcaklık sensörleri, IR mesafe sensörleri ve benzeri şeyler, her zaman 12 bit çözünürlüğe ihtiyaç duymazken, bu ekstra bilgi yığınına sahip olmanın gerçekten güzel olacağı durumlar vardır).

Analog devre konusunda fazla tecrübem yok ve ilgili matematik ve fiziği iyi anlamıyorum.

ADC'lerle ilgili çeşitli tasarım kılavuzlarını okuyorum ve genellikle anti-aliasing filtreleri, yüksek empedans sinyalleri için ADC sürücüleri, analog yer düzlemleri, gürültüyü azaltmak için belirli desenlerde izler bırakma, yüksek hızlı dijital elektronikleri Anahtarlama gürültüsünü, hassas voltaj referanslarını ve henüz tam olarak anlamadığım çok daha fazla şeyi azaltmak için ADC'den mümkün.

Merak etmeye başladığım şey, 12bit ADC kullanmamın bir anlamı olsa bile, doğru bir şekilde uygulamak için uzmanlığım yoksa, çünkü en uygun devre tasarımı nedeniyle 2 LSB'yi kaybedebilirim ve sadece 10bit ADC ile gidin. Ya da en uygun devre tasarımı, inanmaya geldiğim gibi 12 bit alanda çok önemli değil.

Gürültüyü azaltmak için her zaman uygulanması gereken şeyler nelerdir (bariz baypas kapağı)? Benimki gibi bir karma sinyal uygulamasında (ADC ile konuşan bir GHz işlemciye sahip) gürültünün en büyük nedenleri nelerdir? Sadece daha yüksek doğruluktaki uygulamalarda (14-16bit +) gerekli olan şeyler nelerdir?

Dikkat etmem gereken mantıklı ve önemli şeylerin ne olduğunu bilmek istiyorum.


2
Ölçmeye çalıştığınız şey ve ne tür bir çözüme ihtiyacınız olduğu ile başlayın ve ardından ne tür ADC ve analog işlemeye ihtiyacınız olduğuna karar verin. Bir yana, ADC veri sayfanızı okuyun. Mükemmel kullansanız bile bit kaybedersiniz. "ENOB" için arama
Scott Seidman

Sorun şu ki, ölçmem gereken şeyler sürekli değişecek. Bazen mümkün olan tüm voltaj dalgalanmalarını görmem gerekir, bazen 8 bit bile yeterli olur. Mümkün olduğunca çok uygulamaya hitap edebilecek bir çözüm istiyorum.
PTS

Değişiklikleri görebilmeniz için ne kadar hızlı ihtiyacınız var? (örneğin, hangi örnekleme oranından sonrasınız?)
ThreePhaseEel

2
"Bazen mümkün olan her voltaj düşüşünü görmem gerekir, bazen 8 bit bile yeterli olur." O zaman ihtiyaçlarınız "mümkün olan her voltaj dalgalanmasına bakın". Sadece ara sıra bile 12 bit çözünürlüğe ihtiyacınız varsa, 12 bit ile tasarım yapmanız gerekir. 10 bite giderseniz, ihtiyacınız olduğunda 12 adet olmaz.
WhatRoughBeast

1 Khz + örnekleme oranı tercih edilir. Her ne kadar çoğu uygulamada 120hz yeterince iyi olacağını düşünüyorum. Bununla birlikte, örnekleme hızının bir seferde 8 kanal için mümkün olması gerekir (aynı saatte değil, hepsinin ardışık olarak örneklenmesi gerekir). @WhatRoughBeast Evet 12 bit ile gitmeye karar vermemin sebebi buydu. Gerçi burada uygulama konusunda tavsiyeye ihtiyacım var.
PTS

Yanıtlar:


19

Sizinki gibi orta hassasiyetli, düşük örnek oranlı karışık sinyal uygulamaları için, karşılaştığınız ana sorunlar yeterince doğru bir referansa sahip olmak ve dijital anahtarlama gürültüsünü ADC'nizden uzak tutmaktır. Bunun tasarım aşamasından başlayarak ve kart yerleşimi boyunca devam eden birkaç adımı vardır.

Devre tasarımı sırasında

İlk olarak, tasarım aşamasında doğru dönüşümlerin gerçekleşmesi için ADC'ye uygun bir referans, doğru ayırma ve düşük empedanslı bir sinyal sürücüsü sağlanmalıdır. Ayrıca, ADC'nin yüksek frekansları taban bandına etkin bir şekilde aşağı çevirmesini önlemek için sinyalin filtrelenmesi (sizinki gibi bir enstrümantasyon uygulamasında düşük geçişli filtrelenmiş) (RF uygulamaları, bir sinyalin Nyquist'e dönüştürülmesi için yavaş bir ADC + bant geçiren ön uç filtresi kullanabilir özel bir karıştırıcı ve LO).

Referansınızı stabilize etme

Referanslar önemsiz ve acıklı (bir jellybean ayrık Zener, iyi ila oh, 4 bit) deli (yüksek performanslı enstrümantasyon uygulamalarında kullanılan fırınlanmış IC gömülü Zeners) - ve özellikler genellikle net değil, karıştırma üniteleri acemileri şaşırtan yollar. LTC AN82'deki grafik bunun için yararlı bir panzehirdir - uygulamanız göz önüne alındığında, ADC'niz kararlı bir referans ve 5V beslemesi verildiğinde 11+ ENOB kapasitesine sahip 12 bitlik bir ünitedir , referansın% 0,02'ye kadar doğru olacağını belirtebilirim veya sıcaklık aralığı boyunca daha iyi ve doğruluk spesifikasyonunuzdan daha az bir büyüklük sırası ile ilgili olduğu için RMS gürültüsü endişe verici değildir.

Ne yazık ki, trim olmadan ilk% 0.02 doğruluk, işlerin oldukça zorlaşmaya başladığı yerdir. İstenen ENOB performansının kullanıldığı 4.096V referansını kullanarak, ADC'yi Pi'nin 3.3VI / O'suna mantık düzeyinde bir çevirmenle sessiz bir 5V beslemesinde çalıştırmak istediğim anlamına gelir ve 4.096V size güzel, kullanışlı 1mV / sayım ilişkisi, ADR4540 , X60003 , MAX6126AASA veya belki de LTC6655B ile sınırlıyızson parça% 0.025'lik bir başlangıç ​​hassasiyetine sahip olduğu için onu keser. Tempco ve histerezis, bunun bir tezgah uygulaması olduğu için endişe duymamasına rağmen, hat ve yük regülasyonu, ADC ile aynı düzenlenmiş 5V beslemeden beslendiği ve sadece ADC'nin Vref pinini, uzun süreli sürüklemeyi sürdüğü için büyük problemler değildir. burada bir trim eksikliği nedeniyle de bir endişe - bunun için ADR4540 ve MAX6126AASA, sırasıyla 25ppm / kök-khr ve 20ppm / kök-khr tipik olarak açık kazananlar - yaklaşık 10-1 oranında uzun vadeli sapmayı önemsiz olarak değerlendirmek. (Diğer iki parça, tipik olarak 50-60ppm / kök-khr civarında uzun süreli kaymaya sahiptir.)

Her şeyi ayırmak

MCP3208 veri sayfası, Vdd'den toprak sistemine bağlı dekuplaj için minimum 1 µF kapasitör önerir - AGND ve DGND de aynı toprak sistemine geri bağlanmalıdır. Kartın 5V rayında da minimum 10µF / 10V seramik veya polimer tantal dökme dekuplajı kullanılmalıdır.

Bunun üzerine, referans veri sayfasına göre ayrılmalıdır - bu genellikle mevcut herhangi bir toplu ayırma kapasitansına ek olarak girişte 100nF ile çıkışta 100nF'dir, ancak LTC6655 çok daha büyük bir çıkış kapasitörü gerektirir (aynı Toplu ayırıcı çalışırken P / N) ve X60003 düşük güç tasarımı nedeniyle ters yönde seçicidir.

Giriş sürücüsü / arabelleğe alma / filtreleme

Bu, neyse ki zor değil -% 0.02 doğruluk 800µV maksimum giriş ofseti anlamına gelir ve bugünün sıfırıyla mevcut tek 5V beslemede çalışırken MHz aralığında GBW'lerle birkaç büyüklükte daha iyi sipariş alabilirim - Sürüklenen ve dahili olarak kesilmiş amplifikatörler. AD8630 malzemeleri düşük gürültü otomatik sıfır seçenek, hızlı dahili kesilmiş düşük ofset amper yer alırken OPA4350 ve OPA4192 . Her iki şekilde de, MCP3208 veri sayfasındaki iki kutuplu Sallen ve Key alçak geçiren kenar yumuşatma filtresi kullanılabilir, köşe frekansı yaklaşık 5kHz veya daha düşük bir değere ayarlanır - diğer filtre tasarımları da işe yarayabilir.

Güç kaynağı ve dijital arayüz

MCP3208'in ENOB (etkili bit sayısı) spesifikasyonu beslemeye bağlıdır - 5V'luk bir besleme ile 2.7-3.3V olandan daha iyi performans gösterir; ayrıca 4.096V referans kullanmak için 5V bitiyor olmalıdır. Bu, Pi'nin 3.3V mantığı kullandığı ve 5V toleranslı olmadığı sorununu ortaya çıkarır, TXB0104 gibi bir mantık düzeyinde çeviri IC'si gerektirir - B tarafı ADC'ye giderken A tarafı Pi'ye gider.

Ek olarak, 5V besleme makul derecede temiz olmalıdır - daha yüksek bir besleme voltajından dahili olarak üretmek için doğrusal bir regülatör kullanılmalıdır. Uygulamada daha yüksek besleme voltajı yoksa, ADC ve op amp besleme rayından büyük miktarlarda dijital gürültüyü tutmak için bir LC ayırma ağı kullanılması koşuluyla mevcut bir 5V ray kullanılabilir.

Yerleşim zamanı

Etkili bir karma sinyal düzeninin iki anahtarı vardır: bölümleme ve besleme / iade düzeni . Sırayla bunlara değineceğim.

İlk olarak, tahta düzenini düzgün bir şekilde iki tarafa bölerdim - dijital taraf ve analog taraf. Tüm dijital izler (kullandığınız MCP3208 durumunda SPI arayüzü) kartın dijital tarafına gider - kartın bu tarafında mantık seviyesi çevirici yongası ve Pi'ye G / Ç konektörü bulunur. Kartın analog tarafı tüm analog izleri ve devreleri içerir - voltaj referansı buraya gider ve giriş filtreleri, giriş koruması ve analog giriş konektörleri de geçerlidir. ADC (ve Pi'den 5V kullanıyorsanız filtre indüktörü) bu boşluğu köprüleyen tek bileşendir - aslında,

Ayrıca, bağladığım tüm parçaların kaba hatlı SMT paketlerinde mevcut olduğuna dikkat edin - burada çift taraflı bir levha kullanılacaksa , arka GND düzlemi olarak arka tarafı olan tek taraflı bir düzen şiddetle tavsiye edilir. Maliyet bir itiraz değilse, dört katmanlı bir kart, zemin düzlemine ek olarak sürekli bir analog Vdd düzleminin yanı sıra mantık seviyesi çevirici IC'nin 3.3V mantık tarafı için bir "güç birikintisi" için yer sağlayacaktır. Bununla birlikte, bu uygulamada bir zemin düzlemine bölünmeye gerek yoktur - sinyal izlerinin doğru yönlendirilmesi, dönüş akımlarını ait oldukları yerde tutacaktır .

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.