Talaan ng mga Nilalaman:

Buksan mo ang iyong mga mata! Logical Analyzer: 21 Mga Hakbang
Buksan mo ang iyong mga mata! Logical Analyzer: 21 Mga Hakbang

Video: Buksan mo ang iyong mga mata! Logical Analyzer: 21 Mga Hakbang

Video: Buksan mo ang iyong mga mata! Logical Analyzer: 21 Mga Hakbang
Video: Paano Mababasa Ang Isip Ng Isang Tao? (14 PSYCHOLOGICAL TIPS) 2024, Nobyembre
Anonim
Image
Image
Assembly
Assembly

Pinapabilis ng analyzer ng lohika ang iyong pagpapakita ng pulse train, na kung saan ay ang mga bit na naglalakbay sa isang linya ng komunikasyon. Kaya, binubuksan nito ang iyong mga mata upang makilala ang isang posibleng problema. Bakit ito mahalaga? Ito ay isang napakahusay na tool sa pag-unlad at pagtuklas ng kasalanan na makakapagtipid sa iyo ng oras. Sa video na ito ngayon, susuriin namin ang kahalagahan ng lohikal na analisador, obserbahan ang ilang mga protokol ng mga karaniwang kasanayan habang ginagamit ang aparatong ito, at isalarawan ang isang pagkabigo sa pagtuklas nang walang tulong ng isang tagapag-aral ng lohika.

Sa video na ito, gumamit ako ng isang medyo mura (sa paligid ng $ 35) at mahusay na modelo, na may isang graphic na interface at libreng software.

Hakbang 1: Assembly

Hakbang 2: Mga Tampok na Ginamit - Server

Mga Ginamit na Tampok - Server
Mga Ginamit na Tampok - Server

• Mga jumper para sa mga koneksyon

• 2 Arduinos (gumamit kami ng 2 Mega Arduinos 2560)

• Lohikal na Analyzer (ginagamit namin ang Saleae)

• Mga cable na koneksyon sa USB para sa Arduino at analyzer.

• Oscilloscope (opsyonal)

• Protoboard

Hakbang 3: Ginamit ang Circuit

Ginamit na Circuit
Ginamit na Circuit

Narito mayroon kaming eskematiko, na nagpapakita ng pagsubaybay ng tatlong mga pin: TX0, SDA, at SCL. Mayroon kaming dalawang Arduino: isang panginoon at isang alipin.

Hakbang 4: Source Code: Master

Sa Pag-setup, isasama namin ang library para sa i2c na komunikasyon. Pinasok namin ang network bilang Master at pinasimulan ang serial 0. Sa Loop, hiniling namin ang byte ng data ng alipin para sa komunikasyon sa aming Arduino bilang 8, na tinukoy namin sa halimbawa. Nagpi-print kami sa serial, na susuriin sa tagapag-aral ng lohika, ang mga tinanggap na byte.

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

Hakbang 5: Source Code: Alipin

Sa code ng alipin na ito, isinasama ko muli ang silid-aklatan para sa komunikasyon ng i2c. Pinapasok ko ang network bilang isang alipin na may address na 8. Nirerehistro namin ang kaganapan sa kahilingan at iugnay ito sa pagpapaandar na "kahilingan." Hindi mo kailangang gumawa ng anuman sa loop, magbigay lamang ng isang 0.1 segundo na pagkaantala.

Panghuli, mayroon kaming pagpapaandar na kahilingan na naisasagawa kapag nangyari ang kaganapan sa paghiling ng Master, na nakarehistro sa Pag-setup. Tumugon kami, sa wakas, na may mensahe ng 6 bytes.

#include // inclui a biblioteca para comunicação I2C void setup () {Wire.begin (8); // entra na rede como escravo com endereço 8 Wire.onRequest (requestEvent); // registra o evento de requisiçao // e associa à função requestEvent} void loop () {antala (100); // não faz nada no loop, apenas aguarda 0, 1 segundo} // função que será executada quando ocorrer o evento de requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste"); // responde com uma mensagem de 6 bytes}

Hakbang 6: Analyzer: Hardware

Analyzer: Hardware
Analyzer: Hardware

Sample rate hanggang sa: 24 MHz

Lohika: 5 V hanggang 5.25 V

Mababang antas ng threshold 0.8 V

Mataas na antas ng threshold 2.0 V

Input impedance ng halos 1 Mohm o higit pa

Hakbang 7: Pag-install ng Saleae Software

Pag-install ng Saleae Software
Pag-install ng Saleae Software

Ang program na tumatanggap ng data na nakunan ng logic analyzer at na-decode ang mga bit ay maaaring ma-download sa sumusunod na link:

Hakbang 8: Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok
Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Ipinapakita ko ang interface dito, na partikular kong nagustuhan dahil malinis ito.

Hakbang 9: Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok
Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Narito ang ilang mga pagpipilian sa pagsasaayos:

• Sa pamamagitan ng pag-click sa pangalan ng channel, mababago natin ito.

• Maaari nating matukoy kung ang isa sa mga channel ay magsisilbing isang gatilyo para sa pagkuha at ang form ng pagtuklas.

• Sa pamamagitan ng pag-click at pagpindot sa numero ng channel, maaari mong baguhin ang iyong posisyon sa listahan.

• Sa pamamagitan ng pag-click sa gear, maaari naming mai-configure ang visualization ng channel, lumalawak…

•… o itinatago ang channel. Itatago namin ang lahat ng mga channel na hindi namin gagamitin.

Hakbang 10: Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok
Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Ang pag-click sa mga arrow ng pindutang "Start", mayroong mga pagpipilian ng Rate ng Sampling at tagal ng pagrekord.

Para sa ilang kadahilanan, kung nakita ng software na hindi mapapanatili ang rate, ipapakita ang isang mensahe at awtomatikong mababawas ang rate hanggang sa maabot ang isang halaga ng pagganap.

Hakbang 11: Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok
Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Isasama rin namin ang mga analyzer ng protocol. Una ito ang I2C, sumusunod sa mga kahulugan ng WIRE library, at maiuugnay nang wasto ang mga channel. Panghuli, ipakikilala namin ang analyzer sa asynchronous serial. Kailangan nating maging maingat upang mai-configure nang tama ang mga parameter ayon sa pagpupulong.

Hakbang 12: Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok
Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Sa tab na "Na-decode ang Mga Protocol", dapat nating suriin kung aling mga tagapag-analisa ng protokol ang pinagana. Doon, lilitaw ang data. Sa tab na "Mga Anotasyon," maaari kaming idagdag ang ilan sa mga resulta para sa mas mahusay na pagpapakita. Mag-click lamang sa icon na "magdagdag ng pagsukat".

Hakbang 13: Makunan: Pangkalahatang-ideya

Makunan: Pangkalahatang-ideya
Makunan: Pangkalahatang-ideya

Sa screen ng pagkuha, ipinapakita ng programa ang data pulse train ng SDA, SCL, at TX0.

Hakbang 14: Makunan: Resulta ng Pagsusuri ng Protocol

Makunan: Resulta ng Pagsusuri ng Protocol
Makunan: Resulta ng Pagsusuri ng Protocol

Dito, nakikita natin ang resulta ng pagkuha. Sa tab na "Na-decode ang Mga Protocol", mayroon kaming:

• Ang kahilingan ng server para sa alipin na may id 8.

• Ang tugon ng alipin, anim na character: "t", "e", "s", "t", "e" at isang puwang.

• Ang bawat isa ay sinusundan ng isang ACK bit (Kilalanin) na nagpapahiwatig ng wastong byte na pagtanggap, maliban sa NACK (Hindi Kilalanin) na character na puwang.

• Susunod, nakikita namin ang resulta ng pag-decode ng serial na TX0, na nagpapahiwatig ng mga natanggap na character at ipinadala sa serial terminal ng Arduino IDE.

Hakbang 15: Makunan: Channel 0 at Data (SDA)

Makunan: Channel 0 at Data (SDA)
Makunan: Channel 0 at Data (SDA)

Sa imaheng ito, mayroon kaming pulse train ng linya ng SDA. Tandaan na ang bawat naihatid na byte ay maaaring matingnan.

Hakbang 16: Makunan: Channel 1 at Clock (SCL)

Makunan: Channel 1 at Clock (SCL)
Makunan: Channel 1 at Clock (SCL)

Ngayon, nandito kami sa pulso train ng linya ng SCL. Maaari mong suriin ang higit pang mga detalye sa pamamagitan lamang ng pagposisyon ng mouse sa ibabaw ng signal, tulad ng nakikita mo sa imahe. Maaari nating makita na ang dalas ng orasan ay nasa 100 kHz.

Hakbang 17: Makunan: Channel 2 at Serial (TX0)

Makunan: Channel 2 at Serial (TX0)
Makunan: Channel 2 at Serial (TX0)

Tulad ng para sa tren ng pulso ng linya ng TX0, maaari naming makita ang Start bit at ang mga puntos ng pag-frame ng bawat piraso. Mayroon kaming byte na kumakatawan sa character na "e."

Hakbang 18: Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok
Pag-configure ng Kapaligiran para sa Aming Mga Pagsubok

Narito mayroon kaming maraming mga pagpipilian para sa pagbabasa ng data.

Hakbang 19: Makunan: Oscilloscope at Analyzer

Makunan: Oscilloscope at Analyzer
Makunan: Oscilloscope at Analyzer

Tumingin dito sa screen na nakuha ko mula sa aking oscilloscope. Ang signal ng analyzer ng lohika ay kumakatawan lamang sa mataas at mababang pagtuklas, ngunit hindi ito kumakatawan sa kalidad ng signal. Mahusay na ito ay maaaring obserbahan sa isang oscilloscope.

Hakbang 20: Makunan: Ang pagmamasid sa isang pagkabigo (halimbawa ng Serial Failure)

Makunan: Pagmamasid sa isang pagkabigo (halimbawa ng Serial Failure)
Makunan: Pagmamasid sa isang pagkabigo (halimbawa ng Serial Failure)

Ngayon, magpapakita ako ng isang halimbawa ng isang kabiguang serial, na talagang nangyari sa akin. Kasama ako sa isang modem ng GPRS, ang uri na ginamit sa isang cell phone, ang SIM card, sinusubukan na kumonekta sa ESP32. Ngunit hindi lang ito kumonekta. Pagkatapos ay nasuri ko ang suplay ng kuryente, ang mga kable, at binago ang board. Ginawa ko ang lahat, ngunit walang nag-ayos nito. Napagpasyahan kong maglagay sa isang lohikal na pagsusuri: Natuklasan ko na ang signal ng ESP sa UART 115200 ay nagsimulang hindi magkatugma. Iyon ay, ang ESP32 ay naglalaro ng dapat na 115, 200 sa ibang bilis kaysa dito.

Ang error na ito, na kinilala ng parser, ay ipinakita na may isang X na pula. Sa aking pag-unawa, sinasabi ng programa na ang puntong mayroong kaunting bahagi ay kalahating nawala sa oras. Habang tumataas ang paglilipat na ito, maaaring dumating ang isang oras kung saan ang lahat ay hindi tugma, upang ang impormasyon ay hindi maabot ang kabilang panig. Karaniwan itong dumarating, ngunit ang SIM800 ay sensitibo at kung hindi ito eksaktong, ang impormasyon ay hindi umabot sa kabilang dulo.

Hindi ko alam kung ito ay isang bagay na madalas nangyayari o hindi, ngunit nangyari ito sa akin, at sa gayon nagpasya akong talakayin ang paksang ito dito. Kaya ano ang ginawa ko? Bumagal ako. Kung maglagay ka ng 9, 600, 19, 200, hanggang sa 38, 400, gumagana ito, na hindi nagaganap kasama ang 115, 200.

Hakbang 21: I-download ang Mga File

PDF

INO

Inirerekumendang: