Kazalo:
- 1. korak: Montaža
- 2. korak: Uporabljene funkcije - strežnik
- 3. korak: Uporabljeno vezje
- 4. korak: Izvorna koda: Mojster
- 5. korak: Izvorna koda: Slave
- 6. korak: Analizator: Strojna oprema
- 7. korak: Namestitev programske opreme Saleae
- 8. korak: Konfiguriranje okolja za naše teste
- 9. korak: Konfiguriranje okolja za naše teste
- 10. korak: Konfiguriranje okolja za naše teste
- 11. korak: Konfiguriranje okolja za naše teste
- 12. korak: Konfiguriranje okolja za naše teste
- 13. korak: Zajem: Pregled
- Korak 14: Zajem: rezultat analize protokola
- Korak 15: Zajem: kanal 0 in podatki (SDA)
- Korak 16: Zajem: 1. kanal in ura (SCL)
- Korak 17: Zajem: kanal 2 in zaporedni (TX0)
- 18. korak: Konfiguriranje okolja za naše teste
- Korak 19: Zajem: osciloskop in analizator
- 20. korak: Zajem: Opazovanje napake (primer serijske napake)
- 21. korak: Prenesite datoteke
Video: Odpri oči! Logični analizator: 21 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Logični analizator olajša vizualizacijo impulznega niza, ki so deli, ki potujejo v komunikacijski liniji. Tako se vam odprejo oči, da prepoznate možno težavo. Zakaj je to pomembno? To je zelo učinkovito orodje za razvoj in odkrivanje napak, ki vam lahko prihrani čas. Danes bomo v tem videoposnetku ocenili pomen logičnega analizatorja, opazovali nekaj protokolov običajnih praks pri uporabi te naprave in ponazorili napako odkrivanja brez pomoči logičnega analizatorja.
V tem videu sem uporabil relativno poceni (okoli 35 USD) in učinkovit model z grafičnim vmesnikom in brezplačno programsko opremo.
1. korak: Montaža
2. korak: Uporabljene funkcije - strežnik
• Mostički za priključke
• 2 Arduinosa (uporabili smo 2 Mega Arduino 2560)
• Logični analizator (uporabljamo Saleae)
• Priključni kabli USB za Arduino in analizator.
• Osciloskop (neobvezno)
• Protoboard
3. korak: Uporabljeno vezje
Tukaj imamo shemo, ki prikazuje spremljanje treh zatičev: TX0, SDA in SCL. Imamo dva Arduina: gospodarja in sužnja.
4. korak: Izvorna koda: Mojster
V nastavitvah bomo vključili knjižnico za komunikacijo i2c. V omrežje smo vstopili kot glavni in inicializirali serijski 0. V zanki smo za komunikacijo z našo številko 8 Arduino zahtevali bajte podrejenih podatkov, kot smo opredelili v primeru. V serijo, ki bo ocenjena z logičnim analizatorjem, natisnemo prejete bajte.
#include // vključuje biblioteco para comunicação I2C void setup () {Wire.begin (); // Entra na rede como Mestre (endereço é opcional para o mestre) Serial.begin (115200); // inicia a serial 0} void loop () {Wire.requestFrom (8, 6); // zahteva 6 bajtov, da se jih naredi za 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)} zakasnitev (500); // aguarda meio segundo}
5. korak: Izvorna koda: Slave
V to podrejeno kodo spet vključujem knjižnico za komunikacijo i2c. V omrežje vstopim kot podrejen z naslovom 8. Registriramo dogodek zahteve in ga povežemo s funkcijo "request". V zanki vam ni treba storiti ničesar, samo zamudite 0,1 sekunde.
Nazadnje imamo funkcijo zahteve, ki se bo izvedla, ko se zgodi glavni dogodek zahteve, ki je bila registrirana v nastavitvah. Na koncu odgovorimo s sporočilom v 6 bajtih.
#include // vključuje biblioteco para comunicação I2C void setup () {Wire.begin (8); // entra na rede como escravo com endereço 8 Wire.onRequest (requestEvent); // registracija o evento de requisiçao // e associa à função requestEvent} void loop () {delay (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 registda como evento no setup void requestEvent () {Wire.write ("teste"); // odgovorite na 6 -bajtno sporočilo}
6. korak: Analizator: Strojna oprema
Hitrost vzorčenja do: 24 MHz
Logika: 5 V do 5,25 V
Prag nizkega nivoja 0,8 V
Visoki prag 2,0 V
Vhodna impedanca približno 1 Mohm ali več
7. korak: Namestitev programske opreme Saleae
Program, ki sprejema podatke, ki jih zajame logični analizator, in dekodira bite, lahko prenesete na naslednjo povezavo:
8. korak: Konfiguriranje okolja za naše teste
Tukaj prikazujem vmesnik, ki mi je bil še posebej všeč, ker je bil čist.
9. korak: Konfiguriranje okolja za naše teste
Tu je nekaj konfiguracijskih možnosti:
• S klikom na ime kanala ga lahko spremenimo.
• Ugotovimo lahko, ali bo kateri od kanalov služil kot sprožilec zajema in oblike odkrivanja.
• S klikom in držanjem številke kanala lahko spremenite svoj položaj na seznamu.
• S klikom na orodje lahko konfiguriramo vizualizacijo kanala, razširimo …
• … ali skrivanje kanala. Skrili bomo vse kanale, ki jih ne bomo uporabljali.
10. korak: Konfiguriranje okolja za naše teste
S klikom na puščice gumba "Start" so na voljo možnosti Sampling Rate in trajanje snemanja.
Iz nekega razloga, če programska oprema zazna, da hitrosti ni mogoče vzdrževati, se prikaže sporočilo in samodejno se bo hitrost znižala, dokler ne bo dosežena funkcionalna vrednost.
11. korak: Konfiguriranje okolja za naše teste
Vključili bomo tudi analizatorje protokolov. Najprej je to I2C, ki sledi definicijam knjižnice WIRE in pravilno poveže kanale. Na koncu bomo analizator predstavili asinhroni serijski enoti. Paziti moramo, da parametre pravilno sestavimo glede na sklop.
12. korak: Konfiguriranje okolja za naše teste
Na zavihku "Dekodirani protokoli" bi morali preveriti, kateri analizatorji protokolov so omogočeni. Tam se bodo prikazali podatki. Na zavihku »Pripisi« lahko za boljšo vizualizacijo dodamo nekatere rezultate. Samo kliknite ikono "dodaj meritev".
13. korak: Zajem: Pregled
Na zaslonu za zajem program prikaže niz podatkovnih impulzov SDA, SCL in TX0.
Korak 14: Zajem: rezultat analize protokola
Tu vidimo rezultat ujetja. Na zavihku "Dekodirani protokoli" imamo:
• Zahteva strežnika za podrejenega z ID 8.
• Odziv pomožnika, šest znakov: "t", "e", "s", "t", "e" in presledek.
• Vsakemu sledi bit ACK (Acknowledge), ki označuje pravilen sprejem bajtov, razen presledka NACK (Not Acknowledge).
• Nato vidimo rezultat dekodiranja serije TX0, ki označuje sprejete znake in poslane na serijski terminal Arduino IDE.
Korak 15: Zajem: kanal 0 in podatki (SDA)
Na tej sliki imamo impulzni niz linije SDA. Upoštevajte, da si je mogoče ogledati vsak poslani bajt.
Korak 16: Zajem: 1. kanal in ura (SCL)
Zdaj imamo tukaj impulzni vlak linije SCL. Več podrobnosti lahko preverite tako, da z miško postavite signal, kot vidite na sliki. Vidimo lahko, da je bila taktna frekvenca 100 kHz.
Korak 17: Zajem: kanal 2 in zaporedni (TX0)
Kar zadeva impulzni niz linije TX0, lahko vidimo začetni bit in točke uokvirjanja vsakega bita. Imamo bajt, ki predstavlja znak "e".
18. korak: Konfiguriranje okolja za naše teste
Tukaj imamo več možnosti za branje podatkov.
Korak 19: Zajem: osciloskop in analizator
Poglejte tukaj na zaslon, ki sem ga posnel z osciloskopom. Signal logičnega analizatorja predstavlja le visoko in nizko zaznavanje, vendar ne predstavlja kakovosti signala. To je najbolje opaziti na osciloskopu.
20. korak: Zajem: Opazovanje napake (primer serijske napake)
Zdaj bom pokazal primer serijske napake, ki se mi je pravzaprav zgodila. Imel sem modem GPRS, ki se uporablja za mobilni telefon, kartico SIM, in se poskušal povezati z ESP32. Ampak preprosto se ni povezalo. Nato sem preveril napajanje, ožičenje in zamenjal ploščo. Naredil sem vse, a nič se ni popravilo. Odločil sem se za logično analizo: odkril sem, da se je signal ESP na UART 115200 začel neusklajevati. To pomeni, da je ESP32 igral tisto, kar bi moralo biti 115, 200 z drugačno hitrostjo kot ta.
Ta napaka, ki jo je identificiral razčlenjevalnik, je bila prikazana z X v rdeči barvi. Po mojem razumevanju program pravi, da je točka, ki ima tako malo, časovno za polovico premaknjena. Ko se ta premik povečuje, lahko pride čas, ko se vse ne ujema, tako da informacije ne pridejo na drugo stran. Običajno prispe, vendar je kartica SIM800 občutljiva in če ni natančna, podatki ne dosežejo drugega konca.
Ne vem, ali se to pogosto dogaja ali ne, vendar se je to zgodilo meni, zato sem se odločil, da bom to temo obravnaval tukaj. Kaj sem torej naredil? Upočasnila sem. Če postavite 9, 600, 19, 200, do 38, 400, deluje, kar se ne zgodi pri 115, 200.
21. korak: Prenesite datoteke
JAZ NE
Priporočena:
Naredite digitalni logični analizator za manj kot 1: 5 korakov
Naredite digitalni logični analizator za manj kot 1 USD: Logični senzor nivoja je naprava, ki zazna, ali je izhod komponente 1 ali 0 (pozitiven ali negativen). Poznate tiste lepe senzorje nivoja z LCD zasloni, ki stanejo okoli 25 USD? Ta je smešno cenejši in počne isto stvar (to sem
Enostaven DIY logični pretvornik za 3.3V naprave: 4 koraki
Enostaven DIY logični pretvornik za 3.3V naprave: V tem prispevku vam bom pokazal, kako lahko sami izdelate logični pretvornik 5V na 3.3V za priključitev 5V senzorjev na nove plošče Arduino in Raspberry Pi. Zakaj potrebujemo pretvornik logičnega nivoja ? Večina vas se rada igra z Arduinom in Raspberry Pi duri
Logični analizator z uporabniškim vmesnikom Android: 7 korakov
Logični analizator z uporabniškim vmesnikom Android: Svet je že preplavljen s toliko logičnimi analizatorji. Pri svojem hobiju z elektroniko sem ga potreboval za odpravljanje težav in odpravljanje napak. Iskal sem po internetu, vendar ne najdem tistega, ki ga iščem. Torej, tukaj predstavljam … " Še en Lo
DIY 5v do 3.3v logični nivo: 3 koraki
DIY 5v do 3.3v Logični menjalnik: Logični nivoji se uporabljajo za premik ene napetostne stopnje na drugo, kar je bistveno za delovanje nekaterih digitalnih čipov. Vzemimo primer, ko želimo skico naložiti na esp8266-01 z uporabo arduino moramo tx logiko arduina premakniti na 3.3v
Kako desnemu kliku dodati "Odpri z beležnico": 11 korakov
Kako dodati »Odpri z beležnico« desnemu kliku: osebno ne maram uporabljati »odpri z« zaradi časa, tudi če traja le nekaj sekund, in se moram spomniti, kje točno se določen program nahaja v mojem imeniku . To vam bo pokazalo, kako v desno tipko miške dodate kateri koli program (kontekstni meni