Sadržaj:
- Korak 1: Montaža
- Korak 2: Korištene značajke - poslužitelj
- Korak 3: Korišteni krug
- Korak 4: Izvorni kod: Master
- Korak 5: Izvorni kod: Slave
- Korak 6: Analizator: Hardver
- Korak 7: Instalacija softvera Saleae
- Korak 8: Konfiguriranje okoliša za naše testove
- Korak 9: Konfiguriranje okoliša za naše testove
- Korak 10: Konfiguriranje okoliša za naše testove
- Korak 11: Konfiguriranje okoliša za naše testove
- Korak 12: Konfiguriranje okoliša za naše testove
- Korak 13: Snimanje: Pregled
- Korak 14: Snimanje: rezultat analize protokola
- Korak 15: Snimanje: kanal 0 i podaci (SDA)
- Korak 16: Snimanje: 1. kanal i sat (SCL)
- Korak 17: Snimanje: kanal 2 i serijski (TX0)
- Korak 18: Konfiguriranje okoliša za naše testove
- Korak 19: Snimanje: osciloskop i analizator
- Korak 20: Snimanje: Uočavanje kvara (primjer serijskog kvara)
- Korak 21: Preuzmite datoteke
Video: Otvori oči! Logički analizator: 21 korak
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
Logički analizator olakšava vizualizaciju impulsnog niza koji su bitovi koji putuju u komunikacijskoj liniji. Tako vam otvara oči za identifikaciju mogućeg problema. Zašto je to važno? To je vrlo učinkovit alat za razvoj i otkrivanje grešaka koji vam može uštedjeti vrijeme. U ovom ćemo današnjem videu procijeniti važnost logičkog analizatora, promatrati neke protokole uobičajenih praksi tijekom korištenja ovog uređaja i primjer greške otkrivanja bez pomoći logičkog analizatora.
U ovom videu koristio sam relativno jeftin (oko 35 USD) i učinkovit model s grafičkim sučeljem i besplatnim softverom.
Korak 1: Montaža
Korak 2: Korištene značajke - poslužitelj
• Kratkospojnici za povezivanje
• 2 Arduina (koristili smo 2 Mega Arduina 2560)
• Logički analizator (koristimo Saleae)
• USB priključni kabeli za Arduino i analizator.
• Osciloskop (izborno)
• Protoboard
Korak 3: Korišteni krug
Ovdje imamo shemu koja prikazuje nadzor tri pina: TX0, SDA i SCL. Imamo dva Arduina: gospodara i roba.
Korak 4: Izvorni kod: Master
U Setup ćemo uključiti knjižnicu za i2c komunikaciju. Ušli smo u mrežu kao glavni i inicijalizirali serijski 0. U petlji smo tražili slave bajtove podataka za komunikaciju s našim Arduino brojem 8, kako smo definirali u primjeru. Ispisujemo serijske brojeve, koji će se ocijeniti logičkim analizatorom, primljenih bajtova.
#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 a serial 0} void loop () {Wire.requestFrom (8, 6); // potrebno je 6 bajtova za dodavanje do endcrama 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)} delay (500); // aguarda meio segundo}
Korak 5: Izvorni kod: Slave
U ovaj podređeni kod opet ubrajam knjižnicu za i2c komunikaciju. Ulazim u mrežu kao rob s adresom 8. Registriramo događaj zahtjeva i povezujemo ga s funkcijom "zahtjev". Ne morate ništa raditi na petlji, samo odgodite 0,1 sekundu.
Konačno, imamo funkciju zahtjeva koja će se izvršiti kad se dogodi događaj zahtjeva od strane Master -a, koji je registriran u programu Setup. Na kraju odgovaramo porukom od 6 bajtova.
#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); // 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"); // odgovori com uma mensagem od 6 bajtova}
Korak 6: Analizator: Hardver
Brzina uzorkovanja do: 24 MHz
Logika: 5 V do 5,25 V
Prag niske razine 0,8 V
Prag visoke razine 2,0 V
Ulazna impedancija od oko 1 Mohm ili više
Korak 7: Instalacija softvera Saleae
Program koji prima podatke snimljene logičkim analizatorom i dekodira bitove može se preuzeti na sljedećoj poveznici:
Korak 8: Konfiguriranje okoliša za naše testove
Ovdje prikazujem sučelje koje mi se posebno svidjelo jer je bilo čisto.
Korak 9: Konfiguriranje okoliša za naše testove
Evo nekoliko opcija konfiguracije:
• Klikom na naziv kanala možemo ga promijeniti.
• Možemo odrediti hoće li jedan od kanala poslužiti kao okidač za hvatanje i oblik otkrivanja.
• Klikom i držanjem broja kanala možete promijeniti svoj položaj na popisu.
• Klikom na zupčanik možemo konfigurirati vizualizaciju kanala, proširiti …
• … ili skrivanje kanala. Sakriti ćemo sve kanale koje nećemo koristiti.
Korak 10: Konfiguriranje okoliša za naše testove
Klikom na strelice gumba "Start" postoje opcije Sampling Rate i trajanje snimanja.
Iz nekog razloga, ako softver otkrije da se stopa ne može održati, prikazat će se poruka i automatski će se stopa smanjivati dok se ne postigne funkcionalna vrijednost.
Korak 11: Konfiguriranje okoliša za naše testove
Uključit ćemo i analizatore protokola. Prvo je to I2C, slijedeći definicije knjižnice WIRE i ispravno povezujući kanale. Na kraju ćemo analizator upoznati s asinkronom serijom. Moramo biti oprezni kako bismo ispravno konfigurirali parametre prema sklopu.
Korak 12: Konfiguriranje okoliša za naše testove
Na kartici "Dekodirani protokoli" trebali bismo provjeriti koji su analizatori protokola omogućeni. Tamo će se pojaviti podaci. Na kartici "Napomene" možemo dodati neke rezultate za bolju vizualizaciju. Samo kliknite na ikonu "dodaj mjerenje".
Korak 13: Snimanje: Pregled
Na zaslonu za snimanje program prikazuje podatkovni impulsni niz SDA, SCL i TX0.
Korak 14: Snimanje: rezultat analize protokola
Ovdje vidimo rezultat hvatanja. Na kartici "Dekodirani protokoli" imamo:
• Zahtjev poslužitelja za slave s id 8.
• Odgovor slave, šest znakova: "t", "e", "s", "t", "e" i razmak.
• Nakon svakog slijedi ACK bit (Acknowledge) koji označava točan prijem bajta, osim razmaka NACK (Not Acknowledge).
• Zatim vidimo rezultat dekodiranja TX0 serije, koji označava primljene znakove i poslane na Arduino IDE serijski terminal.
Korak 15: Snimanje: kanal 0 i podaci (SDA)
Na ovoj slici imamo pulsni niz SDA linije. Imajte na umu da se svaki preneseni bajt može pregledati.
Korak 16: Snimanje: 1. kanal i sat (SCL)
Ovdje imamo pulsni niz SCL linije. Više detalja možete provjeriti postavljanjem miša iznad signala, kao što vidite na slici. Možemo vidjeti da je frekvencija takta bila 100 kHz.
Korak 17: Snimanje: kanal 2 i serijski (TX0)
Što se tiče impulsnog niza linije TX0, možemo vidjeti početni bit i točke uokvirivanja svakog bita. Imamo bajt koji predstavlja znak "e".
Korak 18: Konfiguriranje okoliša za naše testove
Ovdje imamo nekoliko mogućnosti za čitanje podataka.
Korak 19: Snimanje: osciloskop i analizator
Pogledajte ovdje zaslon koji sam snimio svojim osciloskopom. Signal logičkog analizatora predstavlja samo visoke i niske detekcije, ali ne predstavlja kvalitetu signala. To se najbolje može vidjeti na osciloskopu.
Korak 20: Snimanje: Uočavanje kvara (primjer serijskog kvara)
Pokazat ću primjer serijskog kvara koji mi se zapravo dogodio. Pokušavao sam se spojiti na ESP32 s GPRS modemom, takvim koji se koristi na mobitelu, SIM karticom. Ali to se jednostavno nije povezalo. Zatim sam provjerio napajanje, ožičenje i promijenio ploču. Učinio sam sve, ali ništa nije popravilo. Odlučio sam staviti logičku analizu: otkrio sam da se ESP signal na UART 115200 počeo neusklađivati. Odnosno, ESP32 je igrao ono što bi trebalo biti 115, 200 drugom brzinom od ove.
Ova pogreška koju je identificirao raščlanjivač prikazana je s X u crvenoj boji. Koliko sam shvatio, program kaže da je točka koja ima takav dio napola pomaknuta u vremenu. Kako se taj pomak povećava, može doći vrijeme kada se sve ne podudara, tako da informacije ne dopiru do druge strane. Obično stiže, ali SIM800 je osjetljiv i ako nije točan, informacije ne dolaze do drugog kraja.
Ne znam je li to nešto što se često događa ili ne, ali dogodilo se to meni, pa sam odlučio riješiti tu temu ovdje. Pa što sam učinio? Usporio sam. Ako stavite 9, 600, 19, 200, do 38, 400, to radi, što se ne događa sa 115, 200.
Korak 21: Preuzmite datoteke
INO
Preporučeni:
Korak po korak Izgradnja računala: 9 koraka
Korak po korak izgradnja računala: potrepštine: hardver: matična ploča CPU & Hladnjak procesoraPSU (jedinica za napajanje) Skladištenje (HDD/SSD) RAMGPU (nije potrebno) Alati za kućište: Odvijač ESD narukvica/mattermalna pasta s aplikatorom
Tri kola zvučnika -- Korak po korak vodič: 3 koraka
Tri kola zvučnika || Vodič korak po korak: Krug zvučnika pojačava audio signale koji se primaju iz okruženja na mikrofon i šalje ih zvučniku s mjesta na kojem se proizvodi pojačani zvuk. Ovdje ću vam pokazati tri različita načina kako napraviti ovaj zvučnik pomoću:
Napravite digitalni logički analizator za manje od 1: 5 koraka
Napravite digitalni logički analizator za manje od 1 USD: Logički senzor razine je uređaj koji osjeća je li izlaz komponente 1 ili 0 (pozitivan ili negativan). Znate one lijepe senzore razine s LCD ekranima koji koštaju oko 25 USD? Ovaj je smiješno jeftiniji i radi istu stvar (To ja
Korak po korak edukacija iz robotike s kompletom: 6 koraka
Korak po korak edukacija iz robotike s kompletom: Nakon nekoliko mjeseci izgradnje vlastitog robota (molimo pogledajte sve ovo), a nakon što su dijelovi dva puta otkazali, odlučio sam napraviti korak unatrag i ponovno razmisliti o svom strategija i smjer. Višemjesečno iskustvo bilo je ponekad vrlo korisno i
Logički analizator s Android korisničkim sučeljem: 7 koraka
Logički analizator s Android korisničkim sučeljem: Svijet je već preplavljen s toliko mnogo logičkih analizatora. U hobiju za elektroniku trebao mi je jedan za rješavanje problema i ispravljanje pogrešaka. Pretražio sam internet, ali ne mogu pronaći ono što tražim. Evo me, predstavljam … & JOŠ Još jedno