Basit dijital devrelerde hata ayıklamak için en iyi araçlar?


10

Entegre hata ayıklayıcıların lüksüne alışmış profesyonel bir yazılım geliştiricisiyim. Bir süredir Arduino platformunu deniyorum. Ancak, bir Dallas DS1820 dijital sıcaklık sensörü gibi bileşenlerle arayüz kurmaya çalışmanın karanlıkta dolaşmak gibi olduğunu düşünüyorum.

200 dolarlık gevşek bir bütçe olduğunu varsayarsak, neler olduğunu görselleştirmeme yardımcı olacak ne tür araçlar var? Link Instruments MSO-19'a baktım, ama dürüst olmak gerekirse bir osiloskop ile bir mantık analizörü arasındaki fark hakkında çok şey bilmiyorum.

Satın aldığım cihazın kullandığım (basit) bileşen türlerini ölçebileceğini nasıl bilebilirim?

Yanıtlar:


9

temel olarak, bir osiloskop size hat üzerindeki voltajın kademeli olarak okunmasını sağlarken, bir mantık analizörü sadece 0 veya "yüksek" olup olmadığını söyleyecektir ("yüksek" değeri potansiyel olarak 5V, 3.3V veya 1.8V olabilir) devre). Mantık çözümleyicilerin, gerekli daha düşük çözünürlük nedeniyle osiloskoplardan çok daha fazla kanala (aynı anda okunabilen satırlara) sahip olduğunu görürsünüz.

Belirli bir cihaza gelince, Saleae Logic hakkında harika şeyler duydum . 24MHz'de örnekler; Bu, belirli bir prob üzerindeki voltajın saniyede 24 milyon kez yüksek veya düşük olup olmadığını kontrol ettiği anlamına gelir. Yazılım ayrıca, hata ayıklamaya yardımcı olmak için ortak yerleşik protokoller hakkında bilgi sahibi gibi görünmektedir. Atmegaxx8'in maksimum saat hızı 20MHz olduğu için 24MHz'in arduino çalışması için yeterli olacağını hayal ediyorum.


Yarım günlük bir araştırmadan sonra, Saleae Logic'in şimdilik sahip olduğum fikirlerin% 90'ında bana yardımcı olması gerektiğini söyleyebilirim. Yazılım benim gibi bir donanım "yabancı" için cilalı ve sezgisel görünüyor. Bir osiloskopun son derece yararlı olacağını görebiliyorum, ancak basit proje türleri için bir USB mantık analizörü iyi bir ödünleşime benziyor.
Owen Thomas

In The soul of a new machineTracy Kidder cavemen yangın yakmak olmaz nedenini görmek için bir osiloskop kullanılan (başka kelimelerle açıklayabilir) diyor. :-)
stevenvh

9

bu sadece bir yoruma uymadığı ve cevabının genellikle doğru olduğu için penjuin'in cevabına bir ektir. Sadece cevabındaki bir sonucu açıklığa kavuşturmak istiyorum.

Bant genişliği / örnekleme oranına göre bir ölçüm cihazı seçerken çok dikkatli olun. 25mhz örnekleme hızına sahip bir cihaz, 25mhz dijital saat sinyalini doğru bir şekilde örnekleyemez, hatta kapatmaz.

25mhz'de dijital saat sinyali alıp 25mhz bant genişliği ile o-kapsamına beslerseniz sinüs dalgasına yakın bir şey görürsünüz. 25 mhz örnekleme oranına sahip bir kapsam, Nyquist'e göre muhtemelen bir DC seviyesi gösterecektir, böyle bir kapsamın örnekleyebileceği en yüksek frekans sinyali 12.5 mhz olacaktır.

Bir kare dalga, saat hızı olan temel frekanstır, bu örnek için 25 mhz. Ayrıca, 25mhz dijital saat sinyaline doğrulukla bakmak için sadece 25mhz'ye değil, 75, 125, 175, 225, vb. istediğiniz hassasiyete veya alıcı-vericinin dönüş hızına kadar.

Bu bir mantık analizörü için biraz daha az önemli olsa da, hala çok önemlidir. Mantık analizörü bir eşiğin üstünde veya altında bir 'yüksek' ve 'düşük' arıyor. Görülen şey sinüs dalgasıysa, yapay olarak kısa yüksek ve alçak halleri ve bitler arasında yapay olarak uzun boşlukları göreceksiniz. Bu bir şekilde analizörün mimarisine bağlı olabilir.

Bu, çeşitli iletim modlarıyla ilgili sorunları teşhis etmeyi imkansız hale getirebilir. Örneğin SPI, yükselen veya düşen saat kenarlarında geçerli olan verilere ve ayrıca veri polaritesine (4 veya 0? Yüksek) dayalı 4 farklı moda sahiptir. Diğer iletim protokollerinde de bu sorun vardır (örneğin I2S ve ilgili ses formatları). Kenar geçişlerinin ne zaman gerçekleşeceğini doğru bir şekilde belirleyemiyorsanız, otobüsün spesifikasyon içinde hareket edip etmediğini belirlemek neredeyse imkansızdır.

Genellikle, hedeflenen veri hızınızdan çok daha yüksek bant genişliği / örnekleme oranlarına ihtiyacınız vardır. 40 khz I2C veriyolunu örneklemek istiyorsanız, 100 mhz örnekleme oranına sahip bir mantık analizörü fazlasıyla yeterlidir. 25mhz SPI veriyolunu örneklemeniz gerekiyorsa, çok daha yüksek bant genişliğine sahip bir kapsam / analiz cihazına, gerçek doğruluğa ihtiyacınız varsa 500mhz civarında bir şeye ve bu frekans aralığında ölçüm yapılmasına izin veren bir örnekleme hızına sahip olmanız gerekir.

Bu nedenle, 24mhz'lik bir örnekleme oranı ile önerilen cihaz penjuini, büyük olasılıkla yalnızca ~ 2mhz'den daha düşük dijital sinyallerin doğru bir şekilde ölçümünü sağlayabilir.


3
kesinlikle haklısın, bu tamamen aklımdan geçti. Bu etkiyi daha fazla açıklamaya yardımcı olmak için, osiloskopuma 1 khz kare dalga besledim ve elde edilen Fourier dönüşümünün (x ekseni temel olarak frekanstır) bir ekran dökümü aldım : i.imgur.com/lJvtD.png . Harmonikler tekrar eden zirvelerdir.
jeremy

1
@penjuin mükemmel illüstrasyon. Owen için cevabımı açıklığa kavuşturmak için, önerilen cihaz penjuini muhtemelen bir ardunio ile başa çıkabiliyor, çünkü muhtemelen bu cihaz sınıfıyla> 2mhz'de çalışan bir arayüzle uğraşmanız gerekmeyecek. Sadece bir kural olarak kabul etmediğinden ve daha sonra daha yüksek hızlı cihazlara / arayüzlere geçerse onu ısırmasını sağlamak istedim.
Mark

1
Düzgün yapılandırılmış değişken eşik değerine sahip bir mantık analizörü genellikle mantığın sinyal frekansından sadece birkaç faktör daha yüksek analiz edilmesi için yeterli çözünürlük sağlar. Sorun, sinyali alan kontrolörün 1.2V altındaki herhangi bir şey için mantık sıfıra (örneğin) ve 2.2V üzerindeki herhangi bir şey için mantığa 1 (örneğin) mantık analizörünün 1.7V'de geçiş yapabilmesidir. zamanlama daha az kesin. Çoğu durumda, neler olduğunu anlamak için bir dijital devrede yaklaşık 2-3 kat daha hızlı bir örnekleme hızı yeterlidir.
Wouter Simons

@wouter simons bant genişliği ve örnekleme oranını karıştırmamak için dikkatli (aslında cevapta kelime kullanımımı temizledim). Sinyalin frekansının 2 katı bir örnekleme oranı, o sinyali tespit etmek için minimumdur. Uygulamalarda kapsamlar ve özellikle analizörler genellikle çok fazla örnek oluşturur. Örneğin benim tek kapsamım 100mhz bant genişliğine sahip ancak 2.5ghz'de örnekler var.
Mark

Mükemmel cevap. Postanızı gayet iyi takip ettim ve muhtemelen daha ucuz cihazlardan biriyle ne istediğimi ölçebilirim. Daha karmaşık bileşenleri keşfettiğim için sınırlamalara dikkat edeceğim.
Owen Thomas

8

Esas olarak dijital devrelerde çalışmayı planlıyorsanız, mantık analizörü istediğiniz şeydir. Osiloskoplar nispeten az sayıda (örn., 2-4) analog sinyali ince ayrıntılarla gösterirken, mantık analizörleri, esas olarak yüksek-düşük-düşük ile ilgili olduklarından genellikle çok daha fazla girdiye sahiptir.

O-kapsamını kesinlikle bir mantık analizörü olarak kullanabilirsiniz, ancak ikincisinin avantajı, düzinelerce sinyali aynı anda izleyerek 'büyük resmi' almanın daha kolay olmasıdır.



2

Mantık analizörleri gittikçe, (nispeten) ucuz olanların temel bir karşılaştırmasını yazdım:

PC tabanlı mantık analizörlerinin karşılaştırılması

Örnekleme hızı hakkında dikkat edilmesi gereken bir şey, doğru bir okuma elde etmek için genellikle veri hızınızın en az 4 katı olması ve 10 kata kadar daha iyi olmasıdır. Dolayısıyla, 8MHz'lik bir sinyali izlemek istiyorsanız (örneğin SPI'deki ucuz bir AVR'den kolayca oluşturabilirsiniz), 32-80MHz örnekleme hızı analizörü istersiniz. Bu yalnızca 'eşzamansız' modda çekim yaparken geçerlidir. 'Eşzamanlı' modunda (örneğin bir saat sinyaliyle) çekim yapıyorsanız, örnekleme oranınızın yalnızca saat sinyalinin hızıyla eşleşmesi gerekir. Örneğin, bu durumda, 8MHz eşzamanlı örnekleme, 8MHz SPI sinyalini yakalamak için yeterli olacaktır (özel bir saat sinyali olduğundan).


1

MSO-19 sahibiyim ve çok beğendim. Keşke birden fazla analog kanalı olsaydı, ancak hem osiloskop hem de mantık analizörü olarak işlev görüyor. Fiyat, güzel bir ekipman parçası olduğunu düşünüyorum (ve OS X VMWare iyi çalışır). O'scope, devrenin bir bölümünde gerçekten neler olduğunu görmeme yardımcı oldu ve bir mantık çözümleyicisinin yaptığı gibi size sadece dijital hattın yüksek / düşük durumunu göstermiyor. Standart multimetrenizden çok daha doğru (ve daha hızlı yanıt veren) bir volt metre. Sadece I2C ve SPI yerine seri veri kodunu çözebilseydi gerçekten güzel olurdu…


1

Bu cevap muhtemelen ardunio kullanarak size çok fazla fayda sağlamaz, ancak genel soruya bir cevaptır.

Pickit2'nin mantık analizörü işlevlerini çok kullanıyorum. Açıkçası PIC'leri programlamak içindir, ancak aynı zamanda her zaman dijital sinyallere bakmak için kullandığım 3 kanallı bir mantık analizörü moduna sahiptir. Mevcut projelerim için Cortex-M3 kullanmamıza rağmen bunu hala kullanıyorum. Açıkçası, uygun dişli standardı ile son derece ilkel bir araç ama buna rağmen inanılmaz derecede kullanışlı buluyorum

I2C devrelerinde ve TV çıkış sinyallerinde hata ayıklamak için kullandım, örneğin yazımı buraya bakın


1

Bu oldukça havalı ve gerçekten ucuz: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

İyi bir örnekleme oranına sahiptir ve serin bir açık HW projesini destekleyebilirsiniz. Görünüşe göre hala bir tür beta aşamasında, bu yüzden sadece bir şey takmak ve çalışmasını istiyorsanız en büyük şey olmayabilir.


Bunu bir ay önce satın aldım, çünkü öncelikle bir netbook ile çalıştığım için, "yakala" düğmesini tıklayabilmek için bilgisayarımın ekran boyutu ile ilgili sorunlar yaşadım, ancak normal boyutlu bir dizüstü veya masaüstü bilgisayarınız varsa 'iyi olacağım. Çok kullanmadım, ama sevdiğim küçük ve fiyat da güzel!
onaclov2000

Bu LA'yı biraz kullanıyorum ve bu benim ilk LA'ım olduğundan, muhtemelen sağladığı% 50'den daha az güç / işlevsellik kullanıyorum. Çeşitli diğer düşük maliyetli LA'lar karşılaştırıldığında, ben para için en iyi değeri LA biri bulundu. Yazılım fena değil. Aslında bunu benim amacım için oldukça iyi buldum. Nasıl kullandığımı görmek istiyorsanız, profilime tıklayın ve sorduğum soruları görün.
icarus74
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.