Mündəricat:

Gözlərini aç! Məntiqi analizator: 21 addım
Gözlərini aç! Məntiqi analizator: 21 addım

Video: Gözlərini aç! Məntiqi analizator: 21 addım

Video: Gözlərini aç! Məntiqi analizator: 21 addım
Video: Seyyid Fariq Boradigahi - Gözlərini Aç Dilbərim (Official Audio Clip) 2024, Noyabr
Anonim
Image
Image
Məclis
Məclis

Məntiq analizatoru, ünsiyyət xəttində hərəkət edən bitlər olan nəbz qatarını görselleştirmenizi asanlaşdırır. Beləliklə, mümkün bir problemi müəyyən etmək üçün gözlərinizi açır. Bu niyə vacibdir? Vaxtınıza qənaət edə biləcək çox təsirli bir inkişaf və səhv aşkarlama vasitəsidir. Bugünkü videoda, məntiqi analizatorun əhəmiyyətini qiymətləndirəcəyik, bu cihazı istifadə edərkən ümumi tətbiqlərin bəzi protokollarını müşahidə edəcəyik və məntiq analizatorunun köməyi olmadan aşkarlama uğursuzluğunu nümunə göstərəcəyik.

Bu videoda qrafik interfeysi və pulsuz proqramı olan nisbətən ucuz (təxminən 35 dollar) və səmərəli bir model istifadə etdim.

Addım 1: Quraşdırma

Addım 2: İstifadə olunan xüsusiyyətlər - Server

İstifadə olunan xüsusiyyətlər - Server
İstifadə olunan xüsusiyyətlər - Server

• Əlaqələr üçün tullananlar

• 2 Arduino (2 Mega Arduinos 2560 istifadə etdik)

• Məntiqi Analizator (Saleae istifadə edirik)

• Arduino və analizator üçün USB bağlantı kabelləri.

• Osiloskop (isteğe bağlı)

• Protoboard

Addım 3: istifadə olunan dövrə

İstifadə olunan dövrə
İstifadə olunan dövrə

Burada üç sancağın monitorinqini göstərən bir sxem var: TX0, SDA və SCL. İki Arduinosumuz var: usta və qul.

Addım 4: Mənbə Kodu: Usta

Quraşdırmada i2c ünsiyyəti üçün kitabxananı daxil edəcəyik. Şəbəkəyə Master olaraq daxil olduq və 0 seriyasını işə saldıq. Loop -da, nümunədə təyin etdiyimiz kimi Arduino 8 nömrəmizlə əlaqə qurmaq üçün kölə məlumat baytlarını istədik. Alınan baytlar, məntiq analizatoru ilə qiymətləndiriləcək serialda çap edirik.

#include // I2C void setup () biblioteca daxil olmaqla () {Wire.begin (); // Mestre -ni yenidən daxil edin (istədiyiniz vaxta qədər) Serial.begin (115200); // inicia seriyalı 0} void loop () {Wire.requestFrom (8, 6); // 8 baytdan 8 -ə qədər olan müddətdə (Wire.available ()) {// enquanto houver bytes para reseptor… char c = Wire.read (); // yenidən yazın və ya Serial.print (c); // envia o caracter pela serial (na verdade vai para o ofer)} gecikmə (500); // aguarda meio segundo}

Addım 5: Mənbə Kodu: Kölə

Bu kölə koda yenidən i2c ünsiyyət kitabxanasını daxil edirəm. Şəbəkəyə 8 ünvanı ilə kölə olaraq daxil oluram. İstək hadisəsini qeyd edirik və "sorğu" funksiyası ilə əlaqələndiririk. Döngədə heç bir şey etməyə ehtiyac yoxdur, yalnız 0.1 saniyə gecikmə verin.

Nəhayət, Quraşdırmada qeydə alınan Master tərəfindən tələb hadisəsi baş verdikdə yerinə yetiriləcək sorğu funksiyasına sahibik. Nəhayət, 6 baytlıq bir mesajla cavab veririk.

#include // I2C void setup () biblioteca daxil olmaqla () {Wire.begin (8); // redaktə edin 8 Wire.onRequest (requestEvent); // qeydiyyatdan keçmə hadisəsi tələb olunur // e associa à função requestEvent} boşluq döngəsi () {gecikmə (100); // não faz yox, heç bir döngə yoxdur, 0 və 1 sequndo} // funcão que será icraedici bir hadisə baş verdikdə və ya qeydiyyatdan keçdikdə // heç bir quraşdırma void requestEvent () {Wire.write ("teste"); // 6 baytdan artıq cavab verin}

Addım 6: Analizator: Avadanlıq

Analizator: Avadanlıq
Analizator: Avadanlıq

Nümunə sürəti: 24 MHz

Məntiq: 5 V -dən 5.25 V -ə qədər

Aşağı səviyyə 0.8 V.

Yüksək səviyyəli eşik 2.0 V

Təxminən 1 Mohm və ya daha çox giriş empedansı

Addım 7: Saleae Proqram Quraşdırması

Saleae Proqram Quraşdırılması
Saleae Proqram Quraşdırılması

Məntiq analizatoru tərəfindən tutulan məlumatları alan və bitlərin kodunu açan proqram aşağıdakı linkdən yüklənə bilər:

Addım 8: Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası
Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Təmiz olduğu üçün xüsusilə bəyəndiyim interfeysi burada göstərirəm.

Addım 9: Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası
Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Budur bəzi konfiqurasiya variantları:

• Kanalın adını tıklayaraq onu dəyişə bilərik.

• Kanallardan birinin tutma və aşkarlama forması üçün bir tetikleyici rolunu oynayacağını təyin edə bilərik.

• Kanal nömrəsini basıb saxlayın, siyahıdakı mövqeyinizi dəyişə bilərsiniz.

• Ötürücüyə tıklayaraq, kanal vizualını konfiqurasiya edə, genişləndirə bilərik …

•… və ya kanalı gizlətmək. İstifadə etməyəcəyimiz bütün kanalları gizlədirik.

Addım 10: Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası
Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

"Başla" düyməsinin oxlarını tıkladığınızda, Seçmə Hızı və qeyd müddətinin seçimləri var.

Nədənsə, proqram dərəcənin saxlanıla bilməyəcəyini algılarsa, bir mesaj göstəriləcək və funksional dəyər əldə olunana qədər avtomatik olaraq dərəcəsi azalacaq.

Addım 11: Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası
Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Protokol analizatorlarını da daxil edəcəyik. Əvvəlcə WIRE kitabxanasının təriflərini izləyən və kanalları düzgün əlaqələndirən I2C -dir. Nəhayət, analizatoru asinxron serialla tanış edəcəyik. Parametrləri montaja uyğun olaraq düzgün qurmaq üçün diqqətli olmalıyıq.

Addım 12: Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası
Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

"Dekodlaşdırılmış Protokollar" sekmesinde, hansı protokol analizatorlarının aktiv olduğunu yoxlamalıyıq. Orada məlumatlar görünəcək. "İzahatlar" sekmesinde, daha yaxşı görselleştirmek üçün bəzi nəticələri əlavə edə bilərik. Yalnız "ölçmə əlavə et" simgesini vurun.

Addım 13: Çək: Baxış

Çək: Baxış
Çək: Baxış

Çəkmə ekranında, proqram SDA, SCL və TX0 -un məlumat pulse qatarını göstərir.

Addım 14: Capture: Protokol Analizinin Nəticəsi

Capture: Protokol Analizinin Nəticəsi
Capture: Protokol Analizinin Nəticəsi

Burada tutmanın nəticəsini görürük. "Dekodlaşdırılmış Protokollar" sekmesinde əlimizdədir:

• Server 8 id ilə kölə tələbi.

• Qul cavabı, altı simvol: "t", "e", "s", "t", "e" və boşluq.

• Hər birinin ardınca NACK (Not Acknowledge) boşluq simvolu istisna olmaqla, düzgün bayt qəbulunu göstərən ACK biti (Acknowledge) gəlir.

• Ardından, Arduino IDE serial terminalına alınan və göndərilən simvolları göstərən TX0 serialının kodlaşdırma nəticəsini görürük.

Addım 15: Çək: Kanal 0 və Məlumat (SDA)

Çək: Kanal 0 və Məlumat (SDA)
Çək: Kanal 0 və Məlumat (SDA)

Bu görüntüdə SDA xəttinin nəbz qatarı var. Nəzərə alın ki, ötürülən hər bayta baxmaq olar.

Adım 16: Çək: Kanal 1 və Saat (SCL)

Çək: Kanal 1 və Saat (SCL)
Çək: Kanal 1 və Saat (SCL)

İndi burada SCL xəttinin nəbz qatarı var. Şəkildə gördüyünüz kimi siçanı siqnalın üzərinə yerləşdirərək daha çox məlumatı yoxlaya bilərsiniz. Saat tezliyinin 100 kHz olduğunu görə bilərik.

Addım 17: Çək: Kanal 2 və Serial (TX0)

Çək: Kanal 2 və Serial (TX0)
Çək: Kanal 2 və Serial (TX0)

TX0 xəttinin nəbz qatarına gəldikdə, Başlanğıc bitini və hər bitin çərçivə nöqtələrini görə bilərik. "E" simvolunu təmsil edən bir baytımız var.

Addım 18: Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası
Testlərimiz üçün Ətraf Mühitin Konfiqurasiyası

Burada məlumatları oxumaq üçün bir neçə variantımız var.

Addım 19: Capture: Osiloskop və Analizator

Çəkmə: Osiloskop və Analizator
Çəkmə: Osiloskop və Analizator

Osiloskopumdan çəkdiyim ekrana baxın. Məntiq analizatoru siqnalı yalnız yüksək və aşağı algılamaları təmsil edir, lakin siqnal keyfiyyətini ifadə etmir. Bunu ən yaxşı osiloskopda müşahidə etmək olar.

Addım 20: Capture: Uğursuzluq müşahidə etmək (Serial Uğursuzluq nümunəsi)

Capture: Uğursuzluq müşahidə etmək (Serial Uğursuzluq nümunəsi)
Capture: Uğursuzluq müşahidə etmək (Serial Uğursuzluq nümunəsi)

İndi başıma gələn serial uğursuzluq nümunəsini göstərəcəyəm. Cib telefonu, SİM kartda istifadə olunan bir GPRS modemi ilə ESP32 -yə qoşulmağa çalışırdım. Ancaq sadəcə əlaqələndirmədi. Daha sonra elektrik təchizatını, naqilləri yoxladım və lövhəni dəyişdirdim. Hər şeyi etdim, amma heç nə düzəltmədi. Məntiqi bir analiz aparmaq qərarına gəldim: UART 115200 -də ESP siqnalının uyğun gəlməməyə başladığını kəşf etdim. Yəni ESP32 115, 200 olması lazım olanı bundan fərqli bir sürətlə oynayırdı.

Parser tərəfindən müəyyən edilən bu səhv qırmızı rəngli X işarəsi ilə göstərildi. Anladığım kimi, proqram belə bir şeyə sahib olan nöqtənin zamanla yarı yerdəyişdiyini söyləyir. Bu dəyişiklik artdıqca, hər şeyin uyğun gəlmədiyi bir vaxt gələ bilər ki, məlumat qarşı tərəfə çatmasın. Adətən gəlir, amma SIM800 həssasdır və dəqiq deyilsə, məlumat digər ucuna çatmır.

Bilmirəm, bu tez -tez olur, ya yox, amma mənim başıma gəldi və bu səbəbdən burada bu mövzuya toxunmaq qərarına gəldim. Bəs mən nə etdim? Yavaşladım. 9, 600, 19, 200, 38, 400 -ə qədər qoysanız, işləyir, bu 115, 200 ilə baş vermir.

Addım 21: Dosyaları Yükləyin

PDF

MƏN YOX

Tövsiyə: