ADC'ler neden 8 veya 16 yerine 10 bit kullanıyor?


28

Üzerinde olanlar gibi Neden, çoğu ADC olan Arduino , 10 bit çözünürlük yerine 8 veya 16 bit vermek?

Standart veri boyutlarına, özellikle de entegre olanlara uymadıklarını söylemek garip görünüyor.


2
Endişeler veri genişliği değil. Gereken çözünürlük ve maliyet konusunda daha muhtemel.
richieqianle

Neden "standart veri boyutları" ile eşleşsinler?
user253751

Yanıtlar:


40

16 bit dönüştürmek için bir SAR (ardışık yaklaşım) ADC'yi uzatma konusunda önemli bir teknik sorun yoktur, ancak sorun, analog ön ucun gürültü tabanını görmeye başlamanızdır. Bu, müşterileri paniklemeye meyillidir çünkü ADC kodlarının etrafta zıpladığını görürler ve onlarca sapma mikrovoltuna baktıklarını her zaman fark etmezler.

Bir 5.00 V referans voltajı ve bir 10-bit ADC varsayarak, LSB 4.88 mV (5 V x 2 bir gerilim temsil -10 ). 5.00 V referansı olan 16 bitlik bir ADC için, LSB voltajı 76 µV olacaktır.

Ancak dijital sistemdeki güç kaynağı tam olarak 5,00 V değildir, genellikle 4,75 V ila 5,25 V aralığında belirtilir. Mikrodenetleyicinin içinde anahtarlama geçici bir olayı olduğunda, kaynağa neden olan küçük bir akım darbesi vardır. seğirmek için voltajlar. Eğer LSB yaklaşık 5 mV ise, onu zar zor görebiliyor olabilirsiniz ancak 76 µV seviyesinde bu gürültüyü görmemek zor.

Aslında, 12 bitlik ADC'yi geçtiğinizde, sadece dijital güç kaynağını kullanmak yerine bir analog voltaj referansına ihtiyacınız olacaktır. Böylece bu biraz daha fazla maliyet getirir. En iyi sonuçlar için bu voltaj referansı aslında kendi güç hatlarına sahip ayrı bir yonga olmalı ve ideal olarak sıcak / gürültülü dijital devreden uzakta olmalıdır.

16 bitlik bir ADC'nin sağlam ve sağlam okumalar vermesini istiyorsanız, çok temiz bir referans voltajına ve termal kontrole ihtiyacınız var ve tercihen hızlı bir şekilde değiştirilen dijital sinyallerden uzak tutunuz ... Bir mikrodenetleyici ile aynı yonga, aslında bu ekstra bitlere sahip olma amacını yendi. Sadece bu ekstra bitlerdeki rastgele sesleri ölçüyorsun.

Daha yüksek çözünürlüklü ADC kullanan müşteri uygulamaları vardır. Çalıştığım şirket bunlardan bir kaçını yapıyor. Otomatik test ekipmanı (ATE), tıbbi ultrason ve diğer bazı özel tip müşteri türleri, bazı durumlarda 18 veya hatta 24 bit olmak üzere yüksek çözünürlüklü ADC'ler kullanır.

Yüksek çözünürlüklü bir ADC'nin üretim testi zaman alıcıdır (ve bu nedenle pahalıdır). Bu tür bir performansa ihtiyaç duyan müşteriler, birçok modern mikrodenetleyiciye yerleşik olan ucuz SAR türleri için değil, harici bir bağımsız ADC için prim ödüyorlar.

Daha sonra, 100 MHz veya daha hızlı oranlarda örneklemesi gereken radar veya dijital örnekleme osiloskopu gibi yüksek hızlı uygulamalar var - bu hızlarda 8 anlamlı bit elde ettiğiniz için şanslısınız.


1
ADC'lerdeki ilk deneyimim tam tersi oldu. Çok düşük bit görmek için şaşırdım değil bir az şey dalgalanma.
John Dvorak

Düşük frekanslı veya DC sinyalleri ölçmeye çalışırken, tersine çevrilmesi, alt bitin tüm giriş sinyalleri için dalgalanmasını sağlamak için yeterli analog gürültüye sahip bir sisteme sahip olmak BETTER olabilir. Gürültü ortalamaya göre azaltılabilir, ancak ADC'niz bir değerde kalırsa, ne kadar ortalama olursanız olun sonucu iyileştirmezsiniz.
Peter Green,

1
Modern teknolojiyle, onlarca gsps hızında 8 anlamlı bit satın alabilirsiniz. :)
oakad

12

Karar ve maliyet arasında işlem yapın.

8 bit 2 8 verir 0 ile 255 arasında kalan dijital değerler olarak 0 ile 255 arasında kalan = 256 kombinasyon . Bu pek çok uygulama için yeterli değildir. Her ekstra bit çözünürlüğü iki katına çıkarır ve 10 bit, çoğu proje için yeterli olan 1024 adım verir. Endüstriyel sistemler daha iyi çözünürlük için 12-bit kullanabilir.

Yüksek çözünürlüklü ADC'ler daha sıkı toleranslar gerektirir ve üretimi daha pahalıdır.


Kameramda birkaç milyon 14 bit ADC yok mu?
Hagen von Eitzen

7
@HagenvonEitzen: Hayır. Bir kameranın piksel başına bir ADC'si yok, ancak piksellerini tek tek okuyor. (Tüm sensörün hızlandırması için birden fazla ADC olabilir).
Sweber

1
Genellikle bir kamera satır satır okur, bu yüzden birkaç bin ADC var. Yüksek amplifikasyonlu bir durumda (karanlık bir ortamda yüksek ISO), amplifikatör / ADC çiftlerindeki bireysel değişimi görüntü üzerinde çalışan çizgiler şeklinde görebilirsiniz.
Mark

@ Mark Ve bu hat tarama başka etkisi, yüksek hızlı hareket eden nesnelerin görüntüleri verebilir sarmal kapı etkisi .
JAB

4

Çok sayıda iyi ve geçerli noktaya değinildi. Yıllar boyunca 8, 10, 12 ve 16 bit ADC'leri yoğun olarak kullandım ve bugünlerde 4 veya 5 mikrosaniyelik bir dönüşüm süresiyle 16 bit elde etmek oldukça kolaydır (daha iyisi mevcutsa uygulanabilir olan şeylere bağlı kalacağım) (çoğu insanın kullanması için), bağımsız bir çipte. Ancak bu, genellikle ince film dirençler ve çeşitli çok özel analog tasarım teknikleri kullanan hassas bir merdiven ağı içerir. (Aynı zamanda, neredeyse her zaman, hassas bir ADC devresinde bir yerde yüksek performanslı bipolar transistörlere ihtiyaç vardır, ancak tüm modern mikrodenetleyiciler CMOS'dur, bu nedenle iyi bir analog doğruluk ve bir araya getirilmiş CMOS mantığına sahip her şeyi yapmak için çok sayıda ek üretim adımı vardır. ) İyi bir ADC, çoğu mikrodenetleyiciden daha maliyetlidir! Yapması o kadar kolay değil.

Örneğin, selefi ADS7509 olan çok hızlı olmayan TI ADS8509'u birçok yerde büyük ve önemli bir projede kullandım.

http://www.ti.com/lit/ds/symlink/ads8509.pdf

Bugünün standartlarına göre oldukça sıradan. Yine de, iç tasarım özellikleri, mikrodenetleyiciler için ucuz imalat işlemleriyle uyumlu değildir. Ve çoğu mikrodenetleyiciden daha fazla, 15.72 $ 'a mal oluyor. Onları çıplak yarı iletken kalıp formunda kullandım, hermetik metal kutu hibritlerine dahil edildi, dikkatlice tasarlanmış destek devreleri vardı ve gerçekten 1 LSB pp gürültüsünden çok az aldın, bu yüzden ne yaptığını biliyorsanız bütçe dahil kaynaklara sahip olmak. Ancak bir mikroişlemcinin içinde veya çevresinde asla bu kadar düşük ses görmeyeceksiniz.

En az bir kişinin açıkladığı gibi asıl sorun, dijital besleme rayındaki gürültünün ADC'yi doğrudan etkilemesidir. Şimdi, bunun için bir pimin sağlandığı iyi bir harici voltaj referansı kullanarak bunun üstesinden gelebilirsiniz, ancak aynı şeyi toprakla da yapabilmeniz gerekir. Ve bu pimlerin, dijital beslemenin ve toprağın birkaç yüz mV'si ile sınırlı kalması gerekiyor ya da bir şey patlıyor. Ayrıca, tabii ki, silikon içinde, mantıktan saat frekansındaki karmaşık şekillerde durumları değiştiren ve daha da kötüsü G / Ç pimlerinden bazılarının 10'lu mA'yı sürdüğü ve değiştirdiği durumlarda iç gürültü eşlemesi onları sınıra yükledim. Gürültü, gürültü ve daha fazla gürültü ...

Alıntı yaptığım bölüm (ve daha ucuz, daha hızlı veya farklı olanlar için Google’da, maliyete karşı esneklik sağlar) bir SPI arayüzüne sahiptir, bu nedenle kendi yerel yer düzlemi, filtreleme vb. İle kolayca bir mikrodenetleyiciye kolayca kullanılır. , Dikkatle, gerçekten 16 bit verecektir.

12 bitlik bir ADC'den 10'dan fazla parazitsiz bit elde etmek oldukça zordu ve hala dijital mantığa yakın gibi kirli bir ortamdaydı, bu büyük ölçüde işlemci yongalarındaki yerleşik ADC'lerin neden az ya da çok bu çözünürlükte sıkışmış ve muhtemelen sonsuza dek olacak. Ancak TI 32 bit harici bir yonga var. Veri sayfasına ya da maliyetine bakmadım ...

Mutlak doğruluktan ödün verebiliyorsanız (yani ölçek faktörü% 5 veya daha fazla olabilir, DC kayması ve zaman ve sıcaklık ile kayması söz konusu değildir, ancak doğrusallık mükemmel olacaktır) bir ses sınıfı ADC sizin için olabilir. En az 16 bittir ve kütle piyasası için tasarlanmıştır, bu nedenle çoğu zaman iyi değerdir, ancak DC sinyallerini +/-% 0.1'e kadar ölçmek zorunda olan hassas bir alette kullanmayı beklemeyin.

Her şeye aynı anda sahip olamazsınız. Tüm bunlar neyin en önemli olduğu sorusudur. Hassasiyet, gürültü, uzun süreli sapma, hız, maliyet, güç, arayüz tipi (seri veya paralel) vb. Ayrıca, çok sayıda kanalı çoğaltmak isteyebilirsiniz, bu nedenle birçok sigma-delta ADC’yi dışlayan bir hızlı adım tepki süresine ihtiyaç duyar. Aksi takdirde bazı çok iyi özelliklere sahip.

Bir ADC seçerken. Google, her zamanki gibi arkadaşın. TI, Linear, National ve diğer yarı iletken üreticilerinden çok sayıda makale ve uygulama notu bulunmaktadır. Daima veri sayfalarının size söylemediği şeylere dikkat edin ve rakiplerinin hangi parametreleri vurguladığını kontrol edin.

Ancak hepsini mikrodenetleyici yonganızda istiyorsanız, projelerinizde 10 bitten (muhtemelen 9 kullanılabilir LSB gürültülü) kullanmayı planlamayın. Ve, eğer çipiniz izin veriyorsa ayrı analog referans ve topraklamayı planlayın. Bu şekilde zamanınızı boşa harcamazsınız.


3

8 bitlik ADC'ler% 0.49 adımlardan dolayı kullanmak için korkunç - Bunu yeterince gördüm. Hobi elektroniği için tasarlanan Arduino, 4 kat daha fazla basamak kullanır, bu yüzden% 0.1'e yakındır; bu, genel op-amp veya transistör sensör devrelerinden beklenen sese (sese) ulaşılabilir sinyale yakındır. Bundan daha iyisi, hobist sınıf ev yapımı elektroniklere harcanacak ve bundan daha da kötüsü kötü ve korkunç olurdu.

16 bitlik ADC ticari olarak mevcut iken, uğultu veya gürültünün hareket ettiği yerleşme için daha uzun zaman alırlar, böylece daha iyi bir ölçüm elde edemezsiniz ve daha yavaş olur.


2
Hobi elektroniği için tasarlanan Arduinos'un, bir atmel UC'nin yonga adc'ındaki mevcut reklam bitlerinin sayısıyla hiçbir ilgisi yok. hobi kullanımı için uygun bir derinlik olabilir, ancak pek çok profesyonel olmayan arduino uygulaması için iyi bir boyutta tasarlanmıştır
Loganf

2

Bir ADC dönüşüm yaptığında, sürekli analog sinyal için dijital (nicelenmiş) bir değer sağlar. Dijital değer, dönüşüm anında tam olarak analog değer olmayacağından, fark, ilave gürültü olarak kabul edilebilir. ADC'nin çözünürlüğü ne kadar yüksek olursa, dijital değer analog değerden o kadar yakındır. Başka bir deyişle, ADC'nin bitlerini artırarak, sinyali kuantitizasyon gürültü oranını (SQNR) geliştiriyoruz. Bu nedenle, 10-bit ADC, 8-bit olanlardan (yaklaşık 12dB) daha iyidir.

16-bit A / D kullanılması SQNR açısından daha iyi olacaktır. Ancak, daha pahalıdır. Ve birçok uygulamada 10 bit ADC, gereken SQNR'yi sağlar.


1

Genel bir kural olarak, coveter'ınızdaki bit sayısının, nicelendirme adımınızın sistemin (analog) gürültü tabanının biraz altında ya da öyle olmasını olmasını istersiniz.

Daha fazla bit kullanmak ve bu nedenle, gürültü tabanının altında bir adım atmak için genel gürültü performansında çok az gelişme sağlamanıza karşın, daha fazla silikon kullanmak ya dönüşüm süresini daha uzun yapar ya da dönüştürücünüzün daha hızlı çalışmasını gerektirir (ve daha gürültülü olur)

Daha az bit kullanılması ve dolayısıyla gürültü tabanının üzerinde bir niceleme aşamasına sahip olması genellikle zayıftır. Bu, analog devrelerin performansını boşa harcadığınız anlamına gelir ve bazı durumlarda ortalama ile giderilemeyen sistematik hatalar yaratabilir (gerçekten de tasarımcılar kasten, nicelendirmeden kaynaklanan sistematik hataları önlemek için sisteme kasıtlı olarak gürültü eklerler).

8 bit ile 16 bit arasındaki fark BÜYÜK. İlki, oldukça düşük gürültü performansına sahip sistemlerde bile çok büyük bir niceleme adımıyla sona ermektedir. İkincisi, çok dikkatli bir analog tasarıma sahip olmayan herhangi bir sisteme harcanır. Bu yüzden şaşırtıcı olmayan bir şekilde mikro kontrolörler aralarında bir yere varır.

İnsanların sıklıkla "niceleme gürültüsü" hakkında konuştuğunu unutmayın, ancak "niceleme gürültüsü" kavramının bazı durumlarda yıkılan basitleştirilmiş bir gerçeklik modeli olduğunu unutmamak önemlidir.


0

ADC'lerin en yaygın kullanımı muhtemelen ses işleme alanındadır (VoIP, CD müziği vb.). 16 bit gerektirdiğinden müzik burada ilgi çekici değildir. Ancak VoIP, düşük bitli ADC pazarını yönlendiren şeydir. VoIP genellikle 12 bitlik bir giriş sinyalinden 8 bitlik bir sıkıştırılmış PCM kodu üreten bir sıkıştırma kullanır. Sıkıştırma adımına girişin daha fazla bit olması gerekir - genellikle 12 veya bazen 10 yeterli olabilir (en düşük iki bitle her zaman sahte olabilirsiniz).

Sonuç olarak, 8-bit ADC'lere olan talep çok düşüktür, ancak daha yüksek-bit ADC'lerin talepleri yüksektir ve bu nedenle ucuza temin edilebilir. Arduino muhtemelen ucuz ve her yerde bulunan bileşenleri kullanırdı.

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.