Indholdsfortegnelse:
- Trin 1: Montering
- Trin 2: Brugte funktioner - Server
- Trin 3: Kredsløb brugt
- Trin 4: Kildekode: Master
- Trin 5: Kildekode: Slave
- Trin 6: Analysator: Hardware
- Trin 7: Installation af Saleae -software
- Trin 8: Konfiguration af miljøet til vores tests
- Trin 9: Konfiguration af miljøet til vores tests
- Trin 10: Konfiguration af miljøet til vores tests
- Trin 11: Konfiguration af miljøet til vores tests
- Trin 12: Konfiguration af miljøet til vores tests
- Trin 13: Capture: Oversigt
- Trin 14: Capture: Resultat af protokolanalyse
- Trin 15: Capture: Kanal 0 og data (SDA)
- Trin 16: Capture: Channel 1 og Clock (SCL)
- Trin 17: Capture: Channel 2 og Serial (TX0)
- Trin 18: Konfiguration af miljøet til vores tests
- Trin 19: Optagelse: Oscilloskop og analysator
- Trin 20: Capture: Observation a Failure (eksempel på seriefejl)
- Trin 21: Download filerne
Video: Åben dine øjne! Logisk analysator: 21 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Logikanalysatoren letter din visualisering af pulstoget, som er bitene, der bevæger sig i en kommunikationslinje. Således åbner det dine øjne for at identificere et muligt problem. Hvorfor er dette vigtigt? Det er et meget effektivt udviklings- og fejlsøgningsværktøj, der kan spare dig tid. I denne video i dag vil vi evaluere betydningen af den logiske analysator, observere nogle protokoller for almindelig praksis, mens vi bruger denne enhed, og eksemplificere en detektionsfejl uden hjælp fra en logisk analysator.
I denne video brugte jeg en relativt billig (omkring $ 35) og effektiv model med en grafisk grænseflade og gratis software.
Trin 1: Montering
Trin 2: Brugte funktioner - Server
• Jumpere til forbindelser
• 2 Arduinos (vi brugte 2 Mega Arduinos 2560)
• Logisk analysator (vi bruger Saleae)
• USB -tilslutningskabler til Arduino og analysator.
• Oscilloskop (valgfrit)
• Protoboard
Trin 3: Kredsløb brugt
Her har vi skematisk, som viser overvågning af tre ben: TX0, SDA og SCL. Vi har to Arduinos: en mester og en slave.
Trin 4: Kildekode: Master
I opsætningen inkluderer vi biblioteket til i2c -kommunikation. Vi kom ind på netværket som Master og initialiserede seriel 0. I Loop bad vi om slavedatabyte til kommunikation med vores Arduino nummer 8, som vi definerede i eksemplet. Vi udskriver serienummeret, som vil blive evalueret med den logiske analysator, de modtagne bytes.
#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); // 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)} forsinkelse (500); // aguarda meio segundo}
Trin 5: Kildekode: Slave
I denne slavekode inkluderer jeg igen biblioteket til i2c -kommunikation. Jeg går ind i netværket som en slave med adressen 8. Vi registrerer anmodningshændelsen og forbinder det med funktionen "anmodning". Du behøver ikke at gøre noget på sløjfen, bare give en forsinkelse på 0,1 sekund.
Endelig har vi den anmodningsfunktion, der vil blive udført, når anmodningshændelsen fra Master opstår, som blev registreret i Opsætning. Vi svarer endelig med en besked på 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 () {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 registrada como evento no setup void requestEvent () {Wire.write ("teste"); // responde com uma mensagem de 6 bytes}
Trin 6: Analysator: Hardware
Prøvehastighed op til: 24 MHz
Logik: 5 V til 5,25 V
Lavt niveau tærskel 0,8 V
Tærskel på højt niveau 2,0 V
Inputimpedans på ca. 1 Mohm eller mere
Trin 7: Installation af Saleae -software
Programmet, der modtager de data, der er indfanget af den logiske analysator og afkoder bitene, kan downloades på følgende link:
Trin 8: Konfiguration af miljøet til vores tests
Jeg viser grænsefladen her, som jeg især kunne lide, fordi den var ren.
Trin 9: Konfiguration af miljøet til vores tests
Her er nogle konfigurationsmuligheder:
• Ved at klikke på kanalnavnet kan vi ændre det.
• Vi kan afgøre, om en af kanalerne vil fungere som en trigger til registrering og form for detektering.
• Ved at klikke og holde på kanalnummeret kan du ændre din position på listen.
• Ved at klikke på gearet kan vi konfigurere kanalvisualiseringen og udvide …
• … eller skjule kanalen. Vi skjuler alle de kanaler, vi ikke vil bruge.
Trin 10: Konfiguration af miljøet til vores tests
Ved at klikke på pilene på "Start" -knappen er der muligheder for samplingshastighed og optagelsens varighed.
Af en eller anden grund, hvis softwaren registrerer, at hastigheden ikke kan opretholdes, vises der en meddelelse, og hastigheden reduceres automatisk, indtil en funktionel værdi er nået.
Trin 11: Konfiguration af miljøet til vores tests
Vi inkluderer også protokolanalysatorerne. Først er det I2C, der følger definitionerne af WIRE -biblioteket og forbinder kanalerne korrekt. Endelig introducerer vi analysatoren til asynkron seriel. Vi skal være omhyggelige med at konfigurere parametrene korrekt i henhold til samlingen.
Trin 12: Konfiguration af miljøet til vores tests
På fanen "Dekodede protokoller" skal vi kontrollere, hvilke protokolanalysatorer der er aktiveret. Der vil dataene blive vist. På fanen "Annotationer" kan vi tilføje nogle af resultaterne for bedre visualisering. Bare klik på ikonet "tilføj måling".
Trin 13: Capture: Oversigt
I optagelsesskærmen viser programmet datapulstoget for SDA, SCL og TX0.
Trin 14: Capture: Resultat af protokolanalyse
Her ser vi resultatet af indfangningen. Under fanen "Dekodede protokoller" har vi:
• Serveranmodningen til slaven med id 8.
• Slave -svaret, seks tegn: "t", "e", "s", "t", "e" og et mellemrum.
• Hver efterfølges af en ACK -bit (Acknowledge), der angiver korrekt byte -modtagelse, undtagen NACK (Not Acknowledge) mellemrumstegn.
• Dernæst ser vi afkodningsresultatet af TX0 -serien, der angiver de modtagne tegn og sendt til Arduino IDE -serielle terminal.
Trin 15: Capture: Kanal 0 og data (SDA)
I dette billede har vi pulstoget fra SDA -linjen. Bemærk, at hver overført byte kan ses.
Trin 16: Capture: Channel 1 og Clock (SCL)
Nu har vi her pulstoget på SCL -linjen. Du kan kontrollere flere detaljer ved blot at placere musen over signalet, som du ser på billedet. Vi kan se, at urfrekvensen var på 100 kHz.
Trin 17: Capture: Channel 2 og Serial (TX0)
Hvad angår pulstoget på TX0 -linjen, kan vi se Start -bit og rammepunkterne for hver bit. Vi har en byte, der repræsenterer karakteren "e".
Trin 18: Konfiguration af miljøet til vores tests
Her har vi flere muligheder for at læse dataene.
Trin 19: Optagelse: Oscilloskop og analysator
Se her på skærmen jeg fangede fra mit oscilloskop. Det logiske analysatorsignal repræsenterer kun de høje og lave detektioner, men det repræsenterer ikke signalkvaliteten. Dette kan bedst observeres på et oscilloskop.
Trin 20: Capture: Observation a Failure (eksempel på seriefejl)
Nu viser jeg et eksempel på en seriefejl, som faktisk skete for mig. Jeg var med et GPRS -modem, den slags der blev brugt på en mobiltelefon, SIM -kortet, og forsøgte at oprette forbindelse til ESP32. Men det sluttede bare ikke. Jeg kontrollerede derefter strømforsyningen, ledningerne og skiftede tavlen. Jeg gjorde alt, men intet fikset det. Jeg besluttede at foretage en logisk analyse: Jeg opdagede, at ESP -signalet på UART 115200 begyndte at misforstå. Det vil sige, at ESP32 spillede, hvad der skulle være 115, 200 med en anden hastighed end denne.
Denne fejl, som blev identificeret af parseren, blev vist med et X i rødt. Efter min forståelse siger programmet, at det punkt, der har sådan lidt, er halvt forskudt i tid. Når dette skift stiger, kan der komme et tidspunkt, hvor alt er uoverensstemmende, så information ikke når den anden side. Det ankommer normalt, men SIM800 er følsom, og hvis det ikke er præcist, når oplysningerne ikke den anden ende.
Jeg ved ikke, om det er noget, der sker ofte eller ej, men det skete for mig, og derfor besluttede jeg mig for at behandle dette emne her. Så hvad gjorde jeg? Jeg bremsede farten. Hvis du sætter 9, 600, 19, 200, op til 38, 400, virker det, hvilket ikke sker med 115, 200.
Trin 21: Download filerne
INO
Anbefalede:
ArduBand - Gem dine øjne !: 6 trin (med billeder)
ArduBand - Save Your Eyes !: Hej, i den nuværende situation arbejder mange mennesker derhjemme, og derfor bruger vi meget mere tid foran computere eller smartphones. Nogle gange kan vi sidde foran skærmen i flere timer, ødelægge vores øjne og krumme ryggen. Vi kunne bruge en
12 Volt batteri hack! Du vil ikke tro dine øjne !!!!! (opdateret): 7 trin
12 Volt batteri hack! Du vil ikke tro dine øjne !!!!! (opdateret): Inspireret af instruktøren fra Kipkay tænkte jeg, at jeg ville hente nogle af mine egne batterier af et andet mærke … Og dreng, blev jeg overrasket
Kontrol af lys med dine øjne: 9 trin (med billeder)
Kontrol af lys med dine øjne: Dette semester på college tog jeg en klasse kaldet Instrumentation in Biomedicine, hvor jeg lærte det grundlæggende i signalbehandling til medicinske applikationer. Til klassens afsluttende projekt arbejdede mit team på EOG (elektrookulografi) teknologi. Essenti
EZProbe, en EZ430 -baseret logisk sonde: 4 trin
EZProbe, en EZ430 baseret logisk sonde: dette er et simpelt logisk sondeprojekt baseret på TI EZ430 dongle. Jeg benyttede mig af et gratis tilbud på et par ez430'er fra TI i september 2010. De er meget praktiske og sjove i at prøve små kodestykker og se LED'en blinke. de havde siden b
Logisk sonde med pulsregistrering: 8 trin
Logic Probe With Pulse Detection: THE TO TRANSISTOR LOGC PROBE introduceret af jazzzzzhttps: //www.instructables.com/id/Two-Transistor-Logic-Probe/is enkel-men ikke dum-det fungerer meget godt med at bestemme TTL's logiske niveau og CMOS. Et stort problem i digital kredsløbstest er