Satura rādītājs:

Atver acis! Loģiskais analizators: 21 darbība
Atver acis! Loģiskais analizators: 21 darbība

Video: Atver acis! Loģiskais analizators: 21 darbība

Video: Atver acis! Loģiskais analizators: 21 darbība
Video: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, Jūlijs
Anonim
Image
Image
Montāža
Montāža

Loģikas analizators atvieglo jūsu pulsa vilciena vizualizāciju, kas ir biti, kas pārvietojas sakaru līnijā. Tādējādi tas atver acis, lai identificētu iespējamo problēmu. Kāpēc tas ir svarīgi? Tas ir ļoti efektīvs attīstības un kļūdu noteikšanas rīks, kas var ietaupīt jūsu laiku. Šajā video šodien mēs novērtēsim loģiskā analizatora nozīmi, ievērosim dažus parastās prakses protokolus, lietojot šo ierīci, kā arī atklāsim kļūdu bez loģikas analizatora.

Šajā video es izmantoju salīdzinoši lētu (aptuveni 35 USD) un efektīvu modeli ar grafisko interfeisu un bezmaksas programmatūru.

1. solis: montāža

2. darbība. Izmantotās funkcijas - serveris

Izmantotās funkcijas - serveris
Izmantotās funkcijas - serveris

• Džemperi savienojumiem

• 2 Arduinos (mēs izmantojām 2 Mega Arduinos 2560)

• Loģiskais analizators (mēs izmantojam Saleae)

• USB savienojuma kabeļi Arduino un analizatoram.

• Osciloskops (pēc izvēles)

• Protoboard

3. darbība. Izmantotā ķēde

Izmantota ķēde
Izmantota ķēde

Šeit mums ir shematiska shēma, kas parāda trīs tapu uzraudzību: TX0, SDA un SCL. Mums ir divi Arduinos: saimnieks un vergs.

4. solis: avota kods: galvenais

Iestatījumos mēs iekļausim bibliotēku i2c komunikācijai. Mēs ievadījām tīklu kā galveno un inicializējām sēriju 0. Cilpā mēs pieprasījām vergu datu baitus saziņai ar mūsu Arduino numuru 8, kā mēs definējām piemērā. Mēs drukājam sērijā, kas tiks novērtēta ar loģikas analizatoru, saņemtos baitus.

#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); // inicial a 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… 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)} kavēšanās (500); // aguarda meio segundo}

5. darbība. Avota kods: vergs

Šajā vergu kodā es atkal iekļauju bibliotēku i2c komunikācijai. Es ieeju tīklā kā vergs ar adresi 8. Mēs reģistrējam pieprasījuma notikumu un saistām to ar funkciju "pieprasījums". Jums nav jāveic nekādas darbības, vienkārši dodiet 0,1 sekundes aizkavi.

Visbeidzot, mums ir pieprasījuma funkcija, kas tiks izpildīta, kad notiks galvenā pieprasījuma notikums, kas tika reģistrēts iestatīšanā. Visbeidzot, mēs atbildam ar 6 baitu ziņojumu.

#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); // reģistra o evento de requisiçao // e associa à função requestEvent} void loop () {kavēšanās (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 registerrada como evento no setup void requestEvent () {Wire.write ("teste"); // atbildēt com uma mensagem de 6 bytes}

6. solis: analizators: aparatūra

Analizators: aparatūra
Analizators: aparatūra

Izlases frekvence līdz: 24 MHz

Loģika: no 5 V līdz 5,25 V.

Zema līmeņa slieksnis 0,8 V

Augsta līmeņa slieksnis 2,0 V

Ieejas pretestība ir aptuveni 1 Mohm vai lielāka

7. darbība. Saleae programmatūras instalēšana

Saleae programmatūras uzstādīšana
Saleae programmatūras uzstādīšana

Programmu, kas saņem loģikas analizatora iegūtos datus un atšifrē bitus, var lejupielādēt, izmantojot šo saiti:

8. darbība: vides konfigurēšana mūsu testiem

Vides konfigurēšana mūsu testiem
Vides konfigurēšana mūsu testiem

Šeit es parādīju saskarni, kas man īpaši patika, jo tā bija tīra.

9. solis: vides konfigurēšana mūsu testiem

Vides konfigurēšana mūsu testiem
Vides konfigurēšana mūsu testiem

Šeit ir dažas konfigurācijas iespējas:

• Noklikšķinot uz kanāla nosaukuma, mēs to varam mainīt.

• Mēs varam noteikt, vai viens no kanāliem kalpos kā uztvērējs un noteikšanas veids.

• Noklikšķinot un turot kanāla numuru, varat mainīt savu pozīciju sarakstā.

• Noklikšķinot uz zobrata, mēs varam konfigurēt kanāla vizualizāciju, paplašinot…

•… vai kanāla slēpšana. Mēs slēpsim visus kanālus, kurus neizmantosim.

10. darbība: vides konfigurēšana mūsu testiem

Vides konfigurēšana mūsu testiem
Vides konfigurēšana mūsu testiem

Noklikšķinot uz pogas "Sākt" bultiņām, ir pieejamas paraugu ņemšanas ātruma un ieraksta ilguma iespējas.

Kādu iemeslu dēļ, ja programmatūra konstatē, ka likmi nevar saglabāt, tiks parādīts ziņojums un automātiski likme tiks samazināta, līdz tiks sasniegta funkcionālā vērtība.

11. darbība: vides konfigurēšana mūsu testiem

Vides konfigurēšana mūsu testiem
Vides konfigurēšana mūsu testiem

Mēs iekļausim arī protokolu analizatorus. Pirmkārt, tas ir I2C, ievērojot WIRE bibliotēkas definīcijas un pareizi saistot kanālus. Visbeidzot, mēs iepazīstināsim analizatoru ar asinhrono sēriju. Mums jābūt uzmanīgiem, lai pareizi konfigurētu parametrus atbilstoši montāžai.

12. solis: vides konfigurēšana mūsu testiem

Vides konfigurēšana mūsu testiem
Vides konfigurēšana mūsu testiem

Cilnē "Atšifrētie protokoli" mums jāpārbauda, kuri protokolu analizatori ir iespējoti. Tur parādīsies dati. Cilnē “Anotācijas” mēs varam pievienot dažus rezultātus labākai vizualizācijai. Vienkārši noklikšķiniet uz ikonas "Pievienot mērījumu".

13. darbība. Uzņemšana: pārskats

Uzņemšana: pārskats
Uzņemšana: pārskats

Uzņemšanas ekrānā programma parāda SDA, SCL un TX0 datu impulsa vilcienu.

14. darbība. Uzņemšana: protokola analīzes rezultāts

Uzņemšana: protokola analīzes rezultāts
Uzņemšana: protokola analīzes rezultāts

Šeit mēs redzam uztveršanas rezultātu. Cilnē "Atšifrētie protokoli" mums ir:

• Servera pieprasījums vergam ar ID 8.

• Verga atbilde, sešas rakstzīmes: "t", "e", "s", "t", "e" un atstarpe.

• Katram seko ACK bits (Acknowledge), kas norāda pareizu baitu saņemšanu, izņemot atstarpes rakstzīmi NACK (Not Acknowledge).

• Tālāk mēs redzam TX0 sērijas dekodēšanas rezultātu, norādot saņemtās un uz Arduino IDE sērijas termināli nosūtītās rakstzīmes.

15. darbība: uztveršana: 0. kanāls un dati (SDA)

Uzņemšana: 0. kanāls un dati (SDA)
Uzņemšana: 0. kanāls un dati (SDA)

Šajā attēlā mums ir SDA līnijas impulsa vilciens. Ņemiet vērā, ka var apskatīt katru pārraidīto baitu.

16. darbība. Uzņemšana: 1. kanāls un pulkstenis (SCL)

Uzņemšana: 1. kanāls un pulkstenis (SCL)
Uzņemšana: 1. kanāls un pulkstenis (SCL)

Tagad mums ir SCL līnijas impulsa vilciens. Jūs varat pārbaudīt sīkāku informāciju, vienkārši novietojot peli virs signāla, kā redzat attēlā. Mēs redzam, ka pulksteņa frekvence bija 100 kHz.

17. darbība. Uzņemšana: 2. kanāls un seriālais (TX0)

Uzņemšana: 2. kanāls un seriālais (TX0)
Uzņemšana: 2. kanāls un seriālais (TX0)

Runājot par TX0 līnijas impulsa vilcienu, mēs varam redzēt sākuma bitu un katra bita kadrēšanas punktus. Mums ir baits, kas apzīmē rakstzīmi "e".

18. darbība: vides konfigurēšana mūsu testiem

Vides konfigurēšana mūsu testiem
Vides konfigurēšana mūsu testiem

Šeit mums ir vairākas datu lasīšanas iespējas.

19. darbība: uzņemšana: osciloskops un analizators

Uzņemšana: osciloskops un analizators
Uzņemšana: osciloskops un analizators

Paskaties šeit uz ekrāna, ko es iemūžināju no sava osciloskopa. Loģikas analizatora signāls attēlo tikai augstos un zemos atklājumus, bet tas neatspoguļo signāla kvalitāti. To vislabāk var novērot osciloskopā.

20. darbība: uztveršana: kļūmes novērošana (sērijas kļūmes piemērs)

Uzņemšana: kļūmes novērošana (sērijas kļūmes piemērs)
Uzņemšana: kļūmes novērošana (sērijas kļūmes piemērs)

Tagad es parādīšu sērijas neveiksmes piemēru, kas patiesībā notika ar mani. Es mēģināju izveidot savienojumu ar ESP32 ar tādu GPRS modemu, kādu izmantoja mobilajā telefonā, SIM kartē. Bet tas vienkārši nesavienojās. Pēc tam es pārbaudīju strāvas padevi, elektroinstalāciju un nomainīju plāksni. Es darīju visu, bet nekas to neizlaboja. Es nolēmu veikt loģisku analīzi: es atklāju, ka ESP signāls UART 115200 sāka neatbilst. Tas ir, ESP32 spēlēja 115, 200 ar citu ātrumu nekā šis.

Šī kļūda, ko identificēja parsētājs, tika parādīta ar X sarkanā krāsā. Manā izpratnē programma saka, ka punkts, kuram ir šāds bits, laika gaitā ir daļēji pārvietots. Palielinoties šai nobīdei, var pienākt brīdis, kad viss ir neatbilstoši, lai informācija nesasniegtu otru pusi. Tas parasti ierodas, bet SIM800 ir jutīgs, un, ja tas nav precīzs, informācija nesasniedz otru galu.

Es nezinu, vai tas notiek bieži vai nē, bet tas notika ar mani, un tāpēc es nolēmu pievērsties šai tēmai šeit. Ko tad es darīju? Es palēnināju ātrumu. Ja ievietojat 9, 600, 19, 200, līdz 38, 400, tas darbojas, kas nenotiek ar 115, 200.

21. darbība: lejupielādējiet failus

PDF

ES NĒ

Ieteicams: