Përmbajtje:

Hapi sytë! Analizues logjik: 21 hapa
Hapi sytë! Analizues logjik: 21 hapa

Video: Hapi sytë! Analizues logjik: 21 hapa

Video: Hapi sytë! Analizues logjik: 21 hapa
Video: Вентиляция в хрущевке. Как сделать? Переделка хрущевки от А до Я. #31 2024, Nëntor
Anonim
Image
Image
Kuvendi
Kuvendi

Analizuesi logjik lehtëson vizualizimin tuaj të trenit të pulsit, të cilat janë copat që udhëtojnë në një linjë komunikimi. Kështu, hap sytë për të identifikuar një problem të mundshëm. Pse është e rëndësishme kjo? Shtë një mjet shumë efikas i zhvillimit dhe zbulimit të defekteve që mund t’ju kursejë kohë. Në këtë video sot, ne do të vlerësojmë rëndësinë e analizuesit logjik, do të vëzhgojmë disa protokolle të praktikave të zakonshme gjatë përdorimit të kësaj pajisjeje dhe do të japim shembull një dështim zbulimi pa ndihmën e një analizuesi logjik.

Në këtë video, kam përdorur një model relativisht të lirë (rreth 35 dollarë) dhe efikas, me një ndërfaqe grafike dhe softuer falas.

Hapi 1: Asambleja

Hapi 2: Karakteristikat e Përdorura - Server

Karakteristikat e Përdorura - Server
Karakteristikat e Përdorura - Server

• Kërcyesit për lidhje

• 2 Arduinos (kemi përdorur 2 Mega Arduinos 2560)

• Analizues Logjik (ne përdorim Saleae)

• Kabllot e lidhjes USB për Arduino dhe analizues.

• Osciloskopi (opsional)

• Protoboard

Hapi 3: Qarku i përdorur

Qarku i përdorur
Qarku i përdorur

Këtu kemi skemën, e cila tregon monitorimin e tre kunjave: TX0, SDA dhe SCL. Ne kemi dy Arduino: një mjeshtër dhe një skllav.

Hapi 4: Kodi burimor: Master

Në Setup, ne do të përfshijmë bibliotekën për komunikim i2c. Ne hymë në rrjet si Master dhe filluam serialin 0. Në Loop, ne kërkuam skedarë të të dhënave për komunikim me numrin tonë Arduino 8, siç e përcaktuam në shembullin. Ne shtypim në serial, i cili do të vlerësohet me analizuesin logjik, bajtët e marrë.

#include // includi a biblioteca para comunicação I2C void setup () {Wire.begin (); // Entra na redde como Mestre (endereço é opcional para o mestre) Serial.filloni (115200); // inicia një serial 0} void loop () {Wire.requestFrom (8, 6); // requisita 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bytes para receber. Me Me char c = Wire.read (); // recebe cada byte e armazena como caracter Serial.print (c); // envia o caracter pela serial (në verdade vai para o buffer)} vonesë (500); // aguarda meio segundo}

Hapi 5: Kodi burim: Skllav

Në këtë kod skllav, unë përsëri përfshij bibliotekën për komunikim i2c. Unë hyj në rrjet si skllav me adresën 8. Ne regjistrojmë ngjarjen e kërkesës dhe e lidhim atë me funksionin "kërkesë". Nuk keni nevojë të bëni asgjë në lak, thjesht jepni një vonesë prej 0.1 sekondash.

Së fundi, ne kemi funksionin e kërkesës që do të ekzekutohet kur ndodh ngjarja e kërkesës nga Master, e cila është regjistruar në Setup. Ne përgjigjemi, më në fund, me një mesazh prej 6 bajtësh.

#include // includi a biblioteca para comunicação I2C void setup () {Wire.begin (8); // entra na rede como escravo com endereço 8 Wire.onRequest (requestEvent); // regjistrimi i ngjarjes së kërkesës // e shoqatës à função requestEvent} lak i pavlefshëm () {vonesë (100); // nuk do të ketë një lak, nuk do të jetë e qartë 0, 1 muaj më parë} // do të përdorë një ekzekutim të shpejtë ose të ngjarjes për të kërkuar një kërkesë // të regjistrojë një ngjarje të çastit pa konfigurim void requestEvent () {Wire.write ("teste"); // pergjigju com uma mensagem de 6 bytes}

Hapi 6: Analyzer: Hardware

Analizues: Pajisje kompjuterike
Analizues: Pajisje kompjuterike

Shkalla e mostrës deri në: 24 MHz

Logjika: 5 V deri në 5.25 V

Pragu i nivelit të ulët 0.8 V

Pragu i nivelit të lartë 2.0 V

Pengesa e hyrjes prej rreth 1 Mohm ose më shumë

Hapi 7: Instalimi i Softuerit Saleae

Instalimi i Softuerit Saleae
Instalimi i Softuerit Saleae

Programi që merr të dhënat e kapura nga analizatori logjik dhe deshifron bitët mund të shkarkohet në lidhjen e mëposhtme:

Hapi 8: Konfigurimi i Mjedisit për Testet Tona

Konfigurimi i Mjedisit për Testet Tona
Konfigurimi i Mjedisit për Testet Tona

Unë tregoj ndërfaqen këtu, e cila më pëlqeu veçanërisht sepse ishte e pastër.

Hapi 9: Konfigurimi i Mjedisit për Testet Tona

Konfigurimi i Mjedisit për Testet Tona
Konfigurimi i Mjedisit për Testet Tona

Këtu janë disa opsione konfigurimi:

• Duke klikuar mbi emrin e kanalit, ne mund ta ndryshojmë atë.

• Ne mund të përcaktojmë nëse një nga kanalet do të shërbejë si shkas për kapjen dhe formën e zbulimit.

• Duke klikuar dhe mbajtur numrin e kanalit, mund të ndryshoni pozicionin tuaj në listë.

• Duke klikuar mbi ingranazhin, ne mund të konfigurojmë vizualizimin e kanalit, duke zgjeruar…

•… ose fshehja e kanalit. Ne do të fshehim të gjitha kanalet që nuk do të përdorim.

Hapi 10: Konfigurimi i Mjedisit për Testet Tona

Konfigurimi i Mjedisit për Testet Tona
Konfigurimi i Mjedisit për Testet Tona

Duke klikuar në shigjetat e butonit "Fillimi", ka opsionet e Shkallës së Kampionimit dhe kohëzgjatjes së regjistrimit.

Për disa arsye, nëse softueri zbulon se norma nuk mund të mbahet, një mesazh do të shfaqet dhe automatikisht norma do të ulet derisa të arrihet një vlerë funksionale.

Hapi 11: Konfigurimi i Mjedisit për Testet Tona

Konfigurimi i Mjedisit për Testet Tona
Konfigurimi i Mjedisit për Testet Tona

Ne gjithashtu do të përfshijmë analizuesit e protokollit. Së pari është I2C, duke ndjekur përkufizimet e bibliotekës WIRE dhe duke i lidhur kanalet në mënyrë korrekte. Së fundi, ne do ta prezantojmë analizuesin me serialin asinkron. Duhet të jemi të kujdesshëm për të konfiguruar saktë parametrat sipas asamblesë.

Hapi 12: Konfigurimi i Mjedisit për Testet Tona

Konfigurimi i Mjedisit për Testet Tona
Konfigurimi i Mjedisit për Testet Tona

Në skedën "Protokollet e Dekoduara", ne duhet të kontrollojmë se cilët analizues të protokollit janë të aktivizuar. Atje, të dhënat do të shfaqen. Në skedën "Shënimet", ne mund të shtojmë disa nga rezultatet për një vizualizim më të mirë. Thjesht klikoni në ikonën "shto matje".

Hapi 13: Regjistrimi: Vështrim i përgjithshëm

Regjistrimi: Vështrim i përgjithshëm
Regjistrimi: Vështrim i përgjithshëm

Në ekranin e kapjes, programi shfaq trenin e pulsit të të dhënave të SDA, SCL dhe TX0.

Hapi 14: Kapja: Rezultati i Analizës së Protokollit

Kapja: Rezultati i Analizës së Protokollit
Kapja: Rezultati i Analizës së Protokollit

Këtu, ne shohim rezultatin e kapjes. Në skedën "Protokollet e Dekoduara", ne kemi:

• Kërkesa e serverit për skllavin me id 8.

• Përgjigja e skllavit, gjashtë karaktere: "t", "e", "s", "t", "e" dhe një hapësirë.

• Secili ndiqet nga një bit ACK (Prano) që tregon marrjen e saktë të bajtit, përveç karakterit të hapësirës NACK (Nuk pranon).

• Më tej, ne shohim rezultatin e deshifrimit të serialit TX0, duke treguar personazhet e marra dhe të dërguara në terminalin serik Arduino IDE.

Hapi 15: Regjistrimi: Kanali 0 dhe të dhënat (SDA)

Regjistrimi: Kanali 0 dhe të dhënat (SDA)
Regjistrimi: Kanali 0 dhe të dhënat (SDA)

Në këtë imazh, ne kemi trenin e pulsit të linjës SDA. Vini re se çdo bajt i transmetuar mund të shihet.

Hapi 16: Regjistrimi: Kanali 1 dhe Ora (SCL)

Regjistrimi: Kanali 1 dhe Ora (SCL)
Regjistrimi: Kanali 1 dhe Ora (SCL)

Tani, ne kemi këtu trenin e pulsit të linjës SCL. Ju mund të kontrolloni më shumë detaje thjesht duke vendosur miun mbi sinjal, siç shihni në imazh. Ne mund të shohim se frekuenca e orës ishte në 100 kHz.

Hapi 17: Regjistrimi: Kanali 2 dhe Seriali (TX0)

Regjistrimi: Kanali 2 dhe Seriali (TX0)
Regjistrimi: Kanali 2 dhe Seriali (TX0)

Sa i përket trenit të pulsit të linjës TX0, ne mund të shohim bitin Start dhe pikat e inkuadrimit të secilit bit. Ne kemi një bajt që përfaqëson karakterin "e".

Hapi 18: Konfigurimi i Mjedisit për Testet Tona

Konfigurimi i Mjedisit për Testet Tona
Konfigurimi i Mjedisit për Testet Tona

Këtu kemi disa mundësi për leximin e të dhënave.

Hapi 19: Regjistrimi: Osciloskopi dhe Analizuesi

Regjistrimi: Osciloskopi dhe Analizuesi
Regjistrimi: Osciloskopi dhe Analizuesi

Shikoni këtu ekranin që kam kapur nga oshiloskopi im. Sinjali i analizuesit logjik përfaqëson vetëm zbulimet e larta dhe të ulëta, por nuk përfaqëson cilësinë e sinjalit. Kjo mund të vërehet më së miri në një oshiloskop.

Hapi 20: Kapja: Vëzhgimi i një Dështimi (shembull i Dështimit Serial)

Kapja: Vëzhgimi i një Dështimi (shembull i Dështimit Serial)
Kapja: Vëzhgimi i një Dështimi (shembull i Dështimit Serial)

Tani, unë do të tregoj një shembull të një dështimi serik, i cili në fakt më ndodhi mua. Isha me një modem GPRS, lloji i përdorur në një celular, kartën SIM, duke u përpjekur të lidhesha me ESP32. Por thjesht nuk u lidh. Pastaj kontrollova furnizimin me energji elektrike, instalimet elektrike dhe ndryshova tabelën. Kam bërë gjithçka, por asgjë nuk e ka rregulluar. Vendosa të bëj një analizë logjike: zbulova se sinjali ESP në UART 115200 filloi të mos përputhej. Kjo do të thotë, ESP32 po luante atë që duhet të jetë 115, 200 me një shpejtësi të ndryshme nga kjo.

Ky gabim, i cili u identifikua nga analizuesi, u shfaq me një X në të kuqe. Sipas kuptimit tim, programi thotë se pika që ka një grimë të tillë është gjysmë e zhvendosur në kohë. Me rritjen e këtij ndryshimi, mund të vijë një kohë kur gjithçka nuk përputhet, në mënyrë që informacioni të mos arrijë në anën tjetër. Zakonisht arrin, por SIM800 është i ndjeshëm dhe nëse nuk është i saktë, informacioni nuk arrin në skajin tjetër.

Unë nuk e di nëse kjo është diçka që ndodh shpesh apo jo, por më ndodhi mua, dhe kështu vendosa ta trajtoj këtë temë këtu. Pra, çfarë bëra? E ngadalësova. Nëse vendosni 9, 600, 19, 200, deri në 38, 400, funksionon, gjë që nuk ndodh me 115, 200.

Hapi 21: Shkarkoni skedarët

PDF

INO

Recommended: