Mundarija:

Ko'zlaringizni oching! Mantiqiy analizator: 21 qadam
Ko'zlaringizni oching! Mantiqiy analizator: 21 qadam

Video: Ko'zlaringizni oching! Mantiqiy analizator: 21 qadam

Video: Ko'zlaringizni oching! Mantiqiy analizator: 21 qadam
Video: МЖК Оффтоп. Английский: говорить или не говорить? 2024, Noyabr
Anonim
Image
Image
O'rnatish
O'rnatish

Mantiqiy analizator pulsli poezdni vizualizatsiya qilishni osonlashtiradi, bu aloqa liniyasi bo'ylab harakatlanadigan qismlar. Shunday qilib, mumkin bo'lgan muammoni aniqlash uchun ko'zingizni ochadi. Nima uchun bu muhim? Bu vaqtni tejashga imkon beradigan juda samarali ishlab chiqish va xatolarni aniqlash vositasi. Bugungi videoda biz mantiqiy analizatorning ahamiyatini baholaymiz, ushbu qurilmadan foydalanganda umumiy amaliyotning ba'zi protokollarini kuzatamiz va mantiqiy analizator yordamisiz aniqlanmagan xatoga misol bo'lamiz.

Bu videoda men nisbatan arzon (35 dollar atrofida) va samarali modelni ishlatdim, grafik interfeysi va bepul dasturiy ta'minoti.

1 -qadam: yig'ish

2 -qadam: ishlatilgan xususiyatlar - Server

Ishlatiladigan xususiyatlar - Server
Ishlatiladigan xususiyatlar - Server

• Ulanish uchun o'tish moslamalari

• 2 Arduino (biz 2 Mega Arduinos 2560 dan foydalanganmiz)

• Mantiqiy analizator (biz Saleae dan foydalanamiz)

• Arduino va analizator uchun USB ulanish kabellari.

• Osiloskop (ixtiyoriy)

• Protoboard

3 -qadam: O'chirish davri

Ishlatilgan davr
Ishlatilgan davr

Bu erda biz uchta pinni kuzatishni ko'rsatadigan sxemaga egamiz: TX0, SDA va SCL. Bizda ikkita Arduino bor: xo'jayin va qul.

4 -qadam: Manba kodi: usta

O'rnatishda biz i2c aloqasi uchun kutubxonani o'z ichiga olamiz. Biz tarmoqqa Master sifatida kirdik va 0 seriyasini ishga tushirdik. Loopda biz misolda aniqlaganimizdek Arduino 8 raqami bilan bog'lanish uchun qul ma'lumot baytlarini so'radik. Biz ketma -ket chop etamiz, bu mantiq analizatori, olingan baytlar yordamida baholanadi.

#include // inbui a biblioteca para comunicação I2C void setup () {Wire.begin (); // Mestre -ni qayta yozish (endereço é opcional para o mestre) Serial.begin (115200); // inicia ketma -ket 0} void loop () {Wire.requestFrom (8, 6); // rekvizit 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bayt para reseptor… char c = Wire.read (); // recebe cada bayt e armazena como caracter Serial.print (c); // envia o caracter pela serial (na verdade vai para o ofer)} kechiktirish (500); // menimcha

5 -qadam: Manba kodi: qul

Ushbu qul kodida men yana i2c aloqasi uchun kutubxonani o'z ichiga olaman. Men tarmoqqa 8. manzil bilan qul sifatida kiraman. Biz so'rov hodisasini ro'yxatdan o'tkazamiz va uni "so'rov" funktsiyasi bilan bog'laymiz. Loopda hech narsa qilishning hojati yo'q, 0,1 soniya kechiktirish kifoya.

Nihoyat, bizda "O'rnatish" da ro'yxatdan o'tgan Master tomonidan so'rov hodisasi sodir bo'lganda bajariladigan so'rov funktsiyasi mavjud. Biz, nihoyat, 6 baytlik xabar bilan javob beramiz.

#include // inbui a biblioteca para comunicação I2C void setup () {Wire.begin (8); // buyruqni qayta yozing 8 Wire.onRequest (requestEvent); // registra o evento de recisisio // e associa à função requestEvent} void loop () {delay (100); // hech qanday tsikl yo'q, apenas aguarda 0, 1 segundo} // funktsiyalarni bajarish uchun zarur bo'lgan voqea -hodisalar ro'yxatga olinmagan bo'lsa // ro'yxatdan o'tishni bekor qilish talab qilinmagan bo'lsaEvent () {Wire.write ("teste"); // 6 baytdan keyin javob bering

6 -qadam: Analizator: Uskuna

Analizator: apparat
Analizator: apparat

Namuna tezligi: 24 MGts gacha

Mantiq: 5 V dan 5,25 V gacha

Past darajali chegara 0,8 V

Yuqori darajadagi chegara 2,0 V

Taxminan 1 mohm yoki undan ortiq kirish empedansi

7 -qadam: Saleae dasturiy ta'minotini o'rnatish

Saleae dasturiy ta'minot o'rnatish
Saleae dasturiy ta'minot o'rnatish

Mantiqiy analizator tomonidan olingan ma'lumotlarni qabul qiladigan va bitlarni dekodlaydigan dasturni quyidagi havola orqali yuklab olish mumkin:

8 -qadam: Bizning sinovlarimiz uchun muhitni sozlash

Sinovlarimiz uchun muhitni sozlash
Sinovlarimiz uchun muhitni sozlash

Men bu erda interfeysni ko'rsataman, bu menga ayniqsa yoqdi, chunki u toza edi.

9 -qadam: Bizning sinovlarimiz uchun muhitni sozlash

Sinovlarimiz uchun muhitni sozlash
Sinovlarimiz uchun muhitni sozlash

Bu erda ba'zi konfiguratsiya variantlari:

• Kanal nomini bosish orqali biz uni o'zgartirishimiz mumkin.

• Biz kanallardan biri suratga olish uchun tetik vazifasini o'taydimi yoki yo'qligini aniqlashimiz mumkin.

• Kanal raqamini bosib ushlab turish orqali siz ro'yxatdagi o'rnini o'zgartirishingiz mumkin.

• Vitesni bosish orqali biz kanal vizualizatsiyasini sozlashimiz, kengaytira olamiz …

•… yoki kanalni yashirish. Biz foydalanmaydigan barcha kanallarni yashiramiz.

10 -qadam: Bizning sinovlarimiz uchun muhitni sozlash

Sinovlarimiz uchun muhitni sozlash
Sinovlarimiz uchun muhitni sozlash

"Ishga tushirish" tugmachasini bosganingizda, namuna olish tezligi va yozuv davomiyligi variantlari mavjud.

Agar biron sababga ko'ra, agar dasturiy ta'minot kursni ushlab turish mumkin emasligini aniqlasa, xabar ko'rsatiladi va funktsional qiymatga kelguncha tezlik avtomatik ravishda kamayadi.

11 -qadam: Bizning sinovlarimiz uchun muhitni sozlash

Bizning sinovlarimiz uchun muhitni sozlash
Bizning sinovlarimiz uchun muhitni sozlash

Biz protokol analizatorlarini ham qo'shamiz. Birinchidan, bu WIRE kutubxonasi ta'riflariga amal qilib, kanallarni to'g'ri bog'laydigan I2C. Nihoyat, biz analizatorni asinxron serial bilan tanishtiramiz. Parametrlarni yig'ilishga muvofiq to'g'ri sozlash uchun ehtiyot bo'lishimiz kerak.

12 -qadam: Bizning sinovlarimiz uchun muhitni sozlash

Sinovlarimiz uchun muhitni sozlash
Sinovlarimiz uchun muhitni sozlash

"Dekodlangan protokollar" yorlig'ida biz qaysi protokol analizatorlari yoqilganligini tekshirishimiz kerak. U erda ma'lumotlar paydo bo'ladi. Vizualizatsiyani yaxshilash uchun "Izohlar" yorlig'iga ba'zi natijalarni qo'shishimiz mumkin. Faqat "o'lchov qo'shish" belgisini bosing.

13 -qadam: Rasmga tushirish: umumiy nuqtai

Rasmga olish: umumiy nuqtai
Rasmga olish: umumiy nuqtai

Rasmga tushirish ekranida dastur SDA, SCL va TX0 ning pulsli poezdini ko'rsatadi.

14 -qadam: Rasmga tushirish: Protokol tahlilining natijasi

Rasmga olish: Protokol tahlilining natijasi
Rasmga olish: Protokol tahlilining natijasi

Bu erda biz qo'lga olish natijasini ko'ramiz. "Dekodlangan protokollar" yorlig'ida bizda:

• server 8 identifikatorli qul uchun so'rov.

• Qul javobi, oltita belgi: "t", "e", "s", "t", "e" va bo'sh joy.

• Har birining orqasidan NACK (Not Acknowledge) bo'sh joy belgisidan tashqari, baytning to'g'ri qabul qilinishini ko'rsatuvchi ACK biti (Acknowledge) keladi.

• Keyin, biz TX0 serialining kod hal qilish natijasini ko'ramiz, unda qabul qilingan va Arduino IDE ketma -ket terminaliga yuborilgan belgilar ko'rsatilgan.

15 -qadam: Rasmga tushirish: 0 -kanal va ma'lumotlar (SDA)

Rasmga olish: 0 -kanal va ma'lumotlar (SDA)
Rasmga olish: 0 -kanal va ma'lumotlar (SDA)

Ushbu rasmda bizda SDA chizig'ining pulsli poezdi bor. E'tibor bering, uzatilgan har bir baytni ko'rish mumkin.

16 -qadam: Rasmga tushirish: 1 -kanal va soat (SCL)

Rasmga olish: 1 -kanal va soat (SCL)
Rasmga olish: 1 -kanal va soat (SCL)

Endi bizda SCL liniyasining pulsli poezdi bor. Rasmda ko'rib turganingizdek, sichqonchani signal ustiga qo'yish orqali batafsil ma'lumotni tekshirishingiz mumkin. Biz soat chastotasi 100 kHzda ekanligini ko'rishimiz mumkin.

17 -qadam: Rasmga tushirish: 2 -kanal va serial (TX0)

Rasmga olish: 2 -kanal va ketma -ket (TX0)
Rasmga olish: 2 -kanal va ketma -ket (TX0)

TX0 liniyasining pulsli poezdiga kelsak, biz boshlang'ich bitni va har bir bitning ramka nuqtalarini ko'rishimiz mumkin. Bizda "e" belgisini ifodalovchi bayt bor.

18 -qadam: Sinovlar uchun muhitni sozlash

Sinovlarimiz uchun muhitni sozlash
Sinovlarimiz uchun muhitni sozlash

Bu erda ma'lumotlarni o'qish uchun bir nechta variant mavjud.

19 -qadam: Rasmga olish: osiloskop va analizator

Rasmga olish: osiloskop va analizator
Rasmga olish: osiloskop va analizator

Men osiloskopdan olgan ekranga qarang. Mantiqiy analizator signali faqat yuqori va past aniqlanishni bildiradi, lekin u signal sifatini bildirmaydi. Buni eng yaxshi osiloskopda kuzatish mumkin.

20 -qadam: Rasmga tushirish: nosozlikni kuzatish (ketma -ket xatolarga misol)

Rasmga tushirish: nosozlikni kuzatish (ketma -ket muvaffaqiyatsizlikka misol)
Rasmga tushirish: nosozlikni kuzatish (ketma -ket muvaffaqiyatsizlikka misol)

Endi men men bilan sodir bo'lgan ketma -ket muvaffaqiyatsizlikka misol keltiraman. Men ESP32 -ga ulanmoqchi bo'lgan GPRS -modem bilan uyali telefonda, SIM -kartada bo'lganman. Lekin u shunchaki ulanmadi. Keyin men elektr ta'minotini, simlarni tekshirdim va taxtani o'zgartirdim. Men hamma narsani qildim, lekin hech narsa hal qilmadi. Men mantiqiy tahlil qilishga qaror qildim: UART 115200 -dagi ESP signali mos kela olmasligini aniqladim. Ya'ni, ESP32 115, 200 bo'lishi kerak bo'lgan narsani bundan boshqacha tezlikda o'ynagan.

Ajratuvchi tomonidan aniqlangan bu xato qizil rangda X bilan ko'rsatildi. Men tushunganimdek, dastur shuni ko'rsatadiki, bunday nuqta o'z vaqtida yarim joyidan siljiydi. Bu siljish kuchaygani sayin, hamma narsa bir -biriga mos kelmaydigan vaqt kelishi mumkin, shuning uchun ma'lumot boshqa tomonga etib bormaydi. U odatda keladi, lekin SIM800 sezgir va agar aniq bo'lmasa, ma'lumot boshqa uchiga etib bormaydi.

Bu tez -tez sodir bo'ladimi yoki yo'qmi, bilmayman, lekin bu men bilan sodir bo'lgan, shuning uchun men bu mavzuni shu erda hal qilishga qaror qildim. Xo'sh, men nima qildim? Men sekinlashdim. Agar siz 9, 600, 19, 200, 38, 400 gacha qo'ygan bo'lsangiz, u ishlaydi, bu 115, 200 bilan sodir bo'lmaydi.

21 -qadam: Fayllarni yuklab oling

PDF

INO

Tavsiya: