İçindekiler:

Gözlerini aç! Mantıksal Analiz Cihazı: 21 Adım
Gözlerini aç! Mantıksal Analiz Cihazı: 21 Adım

Video: Gözlerini aç! Mantıksal Analiz Cihazı: 21 Adım

Video: Gözlerini aç! Mantıksal Analiz Cihazı: 21 Adım
Video: Bunu da sadece müslümanlar anlıyacak 🙃 #shorts 2024, Kasım
Anonim
Image
Image
toplantı
toplantı

Mantık analizörü, bir iletişim hattında hareket eden bitler olan darbe katarının görselleştirilmesini kolaylaştırır. Böylece olası bir sorunu tespit etmek için gözlerinizi açar. Bu neden önemli? Size zaman kazandırabilecek çok verimli bir geliştirme ve arıza tespit aracıdır. Bugün bu videoda, mantıksal analizörün önemini değerlendireceğiz, bu cihazı kullanırken bazı yaygın uygulama protokollerini gözlemleyeceğiz ve bir mantık analizörünün yardımı olmadan bir algılama hatası örneği göstereceğiz.

Bu videoda, grafik arayüzü ve ücretsiz yazılımı olan nispeten ucuz (yaklaşık 35 $) ve verimli bir model kullandım.

Adım 1: Montaj

2. Adım: Kullanılan Özellikler - Sunucu

Kullanılan Özellikler - Sunucu
Kullanılan Özellikler - Sunucu

• Bağlantılar için atlama telleri

• 2 Arduino (2 Mega Arduino 2560 kullandık)

• Mantıksal Çözümleyici (Saleae kullanıyoruz)

• Arduino ve analizör için USB bağlantı kabloları.

• Osiloskop (opsiyonel)

• Ana kart

Adım 3: Kullanılan Devre

Kullanılan Devre
Kullanılan Devre

Burada üç pinin izlenmesini gösteren şematik var: TX0, SDA ve SCL. İki Arduino'muz var: bir usta ve bir köle.

Adım 4: Kaynak Kodu: Ana

Kurulumda, i2c iletişimi için kütüphaneyi dahil edeceğiz. Ağa Master olarak girdik ve seri 0'ı başlattık. Loop'ta örnekte tanımladığımız gibi Arduino 8 numaramız ile haberleşme için slave data baytları talep ettik. Alınan baytları mantık analizörü ile değerlendirilecek olan seriye yazdırıyoruz.

#include // I2C void setup() { Wire.begin(); // Entra na rede como Mestre (endereço é isteğe bağlı para o mestre) Serial.begin(115200); // inicia a serial 0 } void loop() { Wire.requestFrom(8, 6);// 6 byte'lık gerekli 8 while (Wire.available()) { // enquanto houver bytes para receber… karakter c = Wire.read(); // alıcı cada bayt ve armazena ortak karakter Serial.print(c); // envia o karakter dizisel (verdade vai para o tampon) } gecikme(500); //aguarda meio segundo }

Adım 5: Kaynak Kodu: Bağımlı

Bu slave kodunda yine i2c haberleşmesi için kütüphaneyi ekliyorum. Ağa slave olarak 8 adresi ile giriyorum. request olayını kaydedip "request" fonksiyonu ile ilişkilendiriyoruz. Döngüde herhangi bir şey yapmanıza gerek yok, sadece 0.1 saniyelik bir gecikme verin.

Son olarak, Setup'ta kayıtlı Master tarafından request olayı gerçekleştiğinde yürütülecek request fonksiyonumuz var. Sonunda 6 baytlık bir mesajla cevap veriyoruz.

#include // I2C void setup() { Wire.begin(8); // entra na rede komo escravo com endereço 8 Wire.onRequest(requestEvent); // istek ve olay kaydı // istek Olay } void loop() { delay(100); //döngü yok, apenas aguarda 0, 1 segundo } //işlemlerin yürütülmesi için gerekli olan miktarlar/yönetimler //kayıtlar için herhangi bir kurulum yok void requestEvent() { Wire.write("teste "); // 6 bayt mesajına yanıt ver }

Adım 6: Çözümleyici: Donanım

Analizör: Donanım
Analizör: Donanım

Örnekleme hızı: 24 MHz'e kadar

Mantık: 5 V - 5,25 V

Düşük seviye eşiği 0,8 V

Yüksek seviye eşik 2,0 V

Yaklaşık 1 Mohm veya daha fazla giriş empedansı

Adım 7: Saleae Yazılım Kurulumu

Saleae Yazılım Kurulumu
Saleae Yazılım Kurulumu

Mantık analizörü tarafından yakalanan verileri alan ve bitlerin kodunu çözen program aşağıdaki bağlantıdan indirilebilir:

8. Adım: Testlerimiz için Ortamı Yapılandırma

Testlerimiz için Ortamı Yapılandırma
Testlerimiz için Ortamı Yapılandırma

Özellikle temiz olduğu için beğendiğim arayüzü burada gösteriyorum.

9. Adım: Testlerimiz için Ortamı Yapılandırma

Testlerimiz için Ortamı Yapılandırma
Testlerimiz için Ortamı Yapılandırma

İşte bazı yapılandırma seçenekleri:

• Kanal ismine tıklayarak değiştirebiliriz.

• Kanallardan birinin yakalama için tetikleyici olarak hizmet edip etmeyeceğini ve algılama biçimini belirleyebiliriz.

• Kanal numarasını tıklayıp basılı tutarak listedeki konumunuzu değiştirebilirsiniz.

• Dişliye tıklayarak kanal görselleştirmesini yapılandırabiliriz, genişletebiliriz…

• … veya kanalı gizleme. Kullanmayacağımız tüm kanalları gizleriz.

Adım 10: Testlerimiz için Ortamı Yapılandırma

Testlerimiz için Ortamı Yapılandırma
Testlerimiz için Ortamı Yapılandırma

"Başlat" butonunun oklarına tıklandığında, Örnekleme Hızı ve kayıt süresi seçenekleri bulunur.

Herhangi bir nedenle, yazılım oranın korunamayacağını tespit ederse, bir mesaj görüntülenecek ve oran, işlevsel bir değere ulaşılana kadar otomatik olarak düşürülecektir.

Adım 11: Testlerimiz için Ortamı Yapılandırma

Testlerimiz için Ortamı Yapılandırma
Testlerimiz için Ortamı Yapılandırma

Protokol analizörlerini de dahil edeceğiz. Öncelikle WIRE kitaplığının tanımlarını takip eden ve kanalları doğru şekilde ilişkilendiren I2C'dir. Son olarak, analizörü asenkron seriye tanıtacağız. Montaja göre parametreleri doğru bir şekilde yapılandırmak için dikkatli olmamız gerekiyor.

Adım 12: Testlerimiz için Ortamı Yapılandırma

Testlerimiz için Ortamı Yapılandırma
Testlerimiz için Ortamı Yapılandırma

"Decoding Protocols" sekmesinde, hangi protokol analizörlerinin etkinleştirildiğini kontrol etmeliyiz. Orada, veriler görünecektir. "Ek Açıklamalar" sekmesinde, daha iyi görselleştirme için bazı sonuçları ekleyebiliriz. "Ölçüm ekle" simgesine tıklamanız yeterlidir.

Adım 13: Yakalama: Genel Bakış

Yakalama: Genel Bakış
Yakalama: Genel Bakış

Yakalama ekranında, program SDA, SCL ve TX0'ın veri darbe dizisini görüntüler.

Adım 14: Yakalama: Protokol Analizinin Sonucu

Yakalama: Protokol Analizi Sonucu
Yakalama: Protokol Analizi Sonucu

Burada yakalama sonucunu görüyoruz. "Kodu Çözülmüş Protokoller" sekmesinde, elimizde:

• Kimliği 8 olan köle için sunucu talebi.

• Köle yanıtı, altı karakter: "t", "e", "s", "t", "e" ve bir boşluk.

• Her birini, NACK (Onaylanmadı) boşluk karakteri dışında, doğru bayt alımını gösteren bir ACK biti (Onay) izler.

• Ardından, Arduino IDE seri terminaline alınan ve gönderilen karakterleri gösteren TX0 serisinin kod çözme sonucunu görüyoruz.

Adım 15: Yakalama: Kanal 0 ve Veri (SDA)

Yakalama: Kanal 0 ve Veri (SDA)
Yakalama: Kanal 0 ve Veri (SDA)

Bu resimde, SDA hattının darbe katarına sahibiz. İletilen her baytın görüntülenebileceğini unutmayın.

Adım 16: Yakalama: Kanal 1 ve Saat (SCL)

Yakalama: Kanal 1 ve Saat (SCL)
Yakalama: Kanal 1 ve Saat (SCL)

Şimdi, burada SCL hattının darbe katarı var. Resimde gördüğünüz gibi fareyi sinyalin üzerine getirerek daha fazla ayrıntıyı kontrol edebilirsiniz. Saat frekansının 100 kHz'de olduğunu görebiliriz.

Adım 17: Yakalama: Kanal 2 ve Seri (TX0)

Yakalama: Kanal 2 ve Seri (TX0)
Yakalama: Kanal 2 ve Seri (TX0)

TX0 hattının darbe dizisine gelince, Başlangıç bitini ve her bir bitin çerçeveleme noktalarını görebiliriz. "e" karakterini temsil eden bir baytımız var.

Adım 18: Testlerimiz için Ortamı Yapılandırma

Testlerimiz için Ortamı Yapılandırma
Testlerimiz için Ortamı Yapılandırma

Burada verileri okumak için birkaç seçeneğimiz var.

Adım 19: Yakalama: Osiloskop ve Analizör

Yakalama: Osiloskop ve Analizör
Yakalama: Osiloskop ve Analizör

Osiloskopumdan aldığım ekrana bakın. Mantık analizörü sinyali yalnızca yüksek ve düşük algılamaları temsil eder, ancak sinyal kalitesini temsil etmez. Bu en iyi osiloskopta gözlemlenebilir.

Adım 20: Yakalama: Bir Arızayı Gözlemleme (Seri Arıza örneği)

Yakalama: Bir Arızayı Gözlemleme (Seri Arıza örneği)
Yakalama: Bir Arızayı Gözlemleme (Seri Arıza örneği)

Şimdi, gerçekten başıma gelen bir seri arıza örneği göstereceğim. Bir cep telefonunda kullanılan türde bir GPRS modemle, SIM kartla ESP32'ye bağlanmaya çalışıyordum. Ama sadece bağlanmadı. Daha sonra güç kaynağını, kablolamayı kontrol ettim ve kartı değiştirdim. Her şeyi yaptım ama hiçbir şey düzelmedi. Mantıklı bir analiz yapmaya karar verdim: UART 115200'deki ESP sinyalinin uyumsuz olmaya başladığını keşfettim. Yani ESP32 bundan farklı bir hızda 115, 200 olması gerekeni oynuyordu.

Ayrıştırıcı tarafından tanımlanan bu hata, kırmızı bir X ile görüntülendi. Anladığım kadarıyla program, böyle bir parçaya sahip olan noktanın zamanda yarı yarıya yer değiştirdiğini söylüyor. Bu kayma arttıkça, her şeyin uyumsuz olduğu bir zaman gelebilir, böylece bilgi karşı tarafa ulaşmaz. Genellikle gelir, ancak SIM800 hassastır ve kesin değilse bilgi diğer uca ulaşmaz.

Bu sık sık olan bir şey mi bilmiyorum ama benim başıma geldi ve bu konuyu burada ele almaya karar verdim. Peki ne yaptım? yavaşladım. 9, 600, 19, 200, 38, 400'e kadar koyarsanız çalışır, 115, 200 ile oluşmaz.

Adım 21: Dosyaları İndirin

PDF

BEN HAYIR

Önerilen: