Innholdsfortegnelse:
- Trinn 1: Montering
- Trinn 2: Funksjoner som brukes - Server
- Trinn 3: Krets brukt
- Trinn 4: Kildekode: Master
- Trinn 5: Kildekode: Slave
- Trinn 6: Analysator: Maskinvare
- Trinn 7: Saleae programvareinstallasjon
- Trinn 8: Konfigurering av miljøet for våre tester
- Trinn 9: Konfigurere miljøet for våre tester
- Trinn 10: Konfigurering av miljøet for våre tester
- Trinn 11: Konfigurere miljøet for våre tester
- Trinn 12: Konfigurere miljøet for våre tester
- Trinn 13: Capture: Oversikt
- Trinn 14: Capture: Resultat av protokollanalyse
- Trinn 15: Capture: Channel 0 and Data (SDA)
- Trinn 16: Capture: Channel 1 and Clock (SCL)
- Trinn 17: Capture: Channel 2 og Serial (TX0)
- Trinn 18: Konfigurere miljøet for våre tester
- Trinn 19: Capture: Oscilloscope and Analyzer
- Trinn 20: Capture: Observing a Failure (eksempel på seriefeil)
- Trinn 21: Last ned filene
Video: Åpne øynene dine! Logisk analysator: 21 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Logikkanalysatoren letter visualiseringen av pulstoget, som er bitene som beveger seg i en kommunikasjonslinje. Dermed åpner det øynene dine for å identifisere et mulig problem. Hvorfor er dette viktig? Det er et veldig effektivt utviklings- og feilsøkingsverktøy som kan spare tid. I denne videoen i dag vil vi evaluere viktigheten av den logiske analysatoren, observere noen protokoller for vanlig praksis mens du bruker denne enheten, og eksemplifisere en påvisningssvikt uten hjelp av en logisk analysator.
I denne videoen brukte jeg en relativt billig (rundt $ 35) og effektiv modell, med et grafisk grensesnitt og gratis programvare.
Trinn 1: Montering
Trinn 2: Funksjoner som brukes - Server
• Gensere for tilkoblinger
• 2 Arduinos (vi brukte 2 Mega Arduinos 2560)
• Logisk analysator (vi bruker Saleae)
• USB -tilkoblingskabler for Arduino og analysator.
• Oscilloskop (valgfritt)
• Protoboard
Trinn 3: Krets brukt
Her har vi skjematisk, som viser overvåking av tre pinner: TX0, SDA og SCL. Vi har to Arduinos: en mester og en slave.
Trinn 4: Kildekode: Master
I oppsettet vil vi inkludere biblioteket for i2c -kommunikasjon. Vi gikk inn i nettverket som Master og initialiserte seriell 0. I Loop ba vi om slavedatabyte for kommunikasjon med vårt Arduino nummer 8, som vi definerte i eksemplet. Vi skriver ut serienummeret, som vil bli evaluert med logikkanalysatoren, mottatte 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 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 for 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}
Trinn 5: Kildekode: Slave
I denne slavekoden inkluderer jeg igjen biblioteket for i2c -kommunikasjon. Jeg går inn i nettverket som en slave med adressen 8. Vi registrerer forespørselshendelsen og knytter den til funksjonen "forespørsel". Du trenger ikke å gjøre noe på sløyfen, bare gi en forsinkelse på 0,1 sekund.
Til slutt har vi forespørselsfunksjonen som vil bli utført når forespørselshendelsen av Master oppstår, som ble registrert i Setup. Vi svarer til slutt med en melding på 6 byte.
#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}
Trinn 6: Analysator: Maskinvare
Prøvehastighet opptil: 24 MHz
Logikk: 5 V til 5,25 V
Lavnivå terskel 0,8 V
Terskel på høyt nivå 2,0 V
Inngangsimpedans på ca 1 Mohm eller mer
Trinn 7: Saleae programvareinstallasjon
Programmet som mottar data fanget opp av logikkanalysatoren og dekoder bitene, kan lastes ned på følgende lenke:
Trinn 8: Konfigurering av miljøet for våre tester
Jeg viser grensesnittet her, som jeg likte spesielt godt fordi det var rent.
Trinn 9: Konfigurere miljøet for våre tester
Her er noen konfigurasjonsalternativer:
• Ved å klikke på kanalnavnet kan vi endre det.
• Vi kan avgjøre om en av kanalene vil fungere som en trigger for fangst og form for deteksjon.
• Ved å klikke og holde på kanalnummeret kan du endre posisjonen din på listen.
• Ved å klikke på giret kan vi konfigurere kanalvisualiseringen og utvide …
• … eller skjule kanalen. Vi vil skjule alle kanalene vi ikke vil bruke.
Trinn 10: Konfigurering av miljøet for våre tester
Ved å klikke på pilene på "Start" -knappen, er det alternativer for samplingsfrekvens og innspillingens varighet.
Av en eller annen grunn, hvis programvaren oppdager at hastigheten ikke kan opprettholdes, vises en melding og hastigheten reduseres automatisk til en funksjonell verdi er nådd.
Trinn 11: Konfigurere miljøet for våre tester
Vi inkluderer også protokollanalysatorene. Først er det I2C, som følger definisjonene av WIRE -biblioteket, og knytter kanalene riktig. Til slutt vil vi introdusere analysatoren for asynkron serie. Vi må være forsiktige med å konfigurere parameterne korrekt i henhold til forsamlingen.
Trinn 12: Konfigurere miljøet for våre tester
I kategorien "Dekoderte protokoller" bør vi kontrollere hvilke protokollanalysatorer som er aktivert. Der vil dataene vises. I kategorien "Kommentarer" kan vi legge til noen av resultatene for bedre visualisering. Bare klikk på "legg til måling" -ikonet.
Trinn 13: Capture: Oversikt
I fangstskjermen viser programmet datapulstoget til SDA, SCL og TX0.
Trinn 14: Capture: Resultat av protokollanalyse
Her ser vi resultatet av fangsten. I fanen "Dekoderte protokoller" har vi:
• Serverforespørselen for slaven med ID 8.
• Slavesvaret, seks tegn: "t", "e", "s", "t", "e" og et mellomrom.
• Hver etterfølges av en ACK -bit (Acknowledge) som indikerer riktig byte -mottak, bortsett fra mellomromstegnet NACK (Not Acknowledge).
• Deretter ser vi dekodingsresultatet for TX0 -serien, som angir tegnene som er mottatt og sendt til Arduino IDE -seriell terminal.
Trinn 15: Capture: Channel 0 and Data (SDA)
I dette bildet har vi pulstoget til SDA -linjen. Vær oppmerksom på at hver overførte byte kan sees.
Trinn 16: Capture: Channel 1 and Clock (SCL)
Nå har vi her pulstoget til SCL -linjen. Du kan sjekke flere detaljer ved å plassere musen over signalet, som du ser på bildet. Vi kan se at klokkefrekvensen var på 100 kHz.
Trinn 17: Capture: Channel 2 og Serial (TX0)
Når det gjelder pulstoget på TX0 -linjen, kan vi se startbiten og rammepunktene for hver bit. Vi har en byte som representerer karakteren "e".
Trinn 18: Konfigurere miljøet for våre tester
Her har vi flere alternativer for å lese dataene.
Trinn 19: Capture: Oscilloscope and Analyzer
Se her på skjermen jeg fanget fra oscilloskopet mitt. Logikkanalysatorsignalet representerer bare høye og lave deteksjoner, men det representerer ikke signalkvaliteten. Dette kan best observeres på et oscilloskop.
Trinn 20: Capture: Observing a Failure (eksempel på seriefeil)
Nå skal jeg vise et eksempel på en seriefeil, som faktisk skjedde med meg. Jeg var med et GPRS -modem, den typen som ble brukt på en mobiltelefon, SIM -kortet, prøvde å koble til ESP32. Men det koblet bare ikke. Jeg sjekket deretter strømforsyningen, ledningene og byttet bord. Jeg gjorde alt, men ingenting fikset det. Jeg bestemte meg for å sette inn en logisk analyse: Jeg oppdaget at ESP -signalet på UART 115200 begynte å mislykkes. Det vil si at ESP32 spilte det som skulle være 115 200 med en annen hastighet enn dette.
Denne feilen, som ble identifisert av parseren, ble vist med et X i rødt. Etter min forståelse sier programmet at poenget som har en slik bit er halvt forskjøvet i tid. Når dette skiftet øker, kan det komme en tid da alt er feil, slik at informasjon ikke når den andre siden. Den kommer vanligvis, men SIM800 er sensitiv, og hvis den ikke er nøyaktig, når ikke informasjonen den andre enden.
Jeg vet ikke om dette er noe som skjer ofte eller ikke, men det skjedde med meg, og derfor bestemte jeg meg for å ta opp dette emnet her. Så hva gjorde jeg? Jeg bremset farten. Hvis du setter 9, 600, 19, 200, opp til 38, 400, fungerer det, noe som ikke forekommer med 115, 200.
Trinn 21: Last ned filene
INO
Anbefalt:
Halloween gresskar med et bevegelig animatronisk øye - Dette gresskaret kan rulle øynene !: 10 trinn (med bilder)
Halloween gresskar med et bevegelig animatronisk øye | Dette gresskaret kan rulle med øyet !: I denne instruksen lærer du hvordan du lager et Halloween -gresskar som skremmer alle når øyet beveger seg. Juster ultralydsensorens triggeravstand til riktig verdi (trinn 9), og gresskaret ditt vil forstene alle som tør å ta cand
Sanntids Rubiks kube med bind for øynene ved hjelp av Raspberry Pi og OpenCV: 4 trinn
Sanntids Rubiks kube-bind for øynene med Raspberry Pi og OpenCV: Dette er den andre versjonen av Rubiks kubeverktøy laget for å løse i bind for øynene. Den første versjonen ble utviklet av javascript, du kan se prosjektet RubiksCubeBlindfolded1 I motsetning til den forrige bruker denne versjonen OpenCV -biblioteket til å oppdage fargene og
Lag en digital logisk analysator for mindre enn $ 1: 5 trinn
Lag en digital logisk analysator for mindre enn $ 1: En logisk nivå sensor er en enhet som registrerer om utgangen til en komponent er 1 eller 0 (positiv eller negativ). Du kjenner de fine nivåsensorene med LCD -skjermene som koster rundt $ 25? Denne er latterlig billigere og og gjør det samme (Den
Kontrollere lysene med øynene: 9 trinn (med bilder)
Kontrollere lys med øynene: Dette semesteret på college tok jeg en klasse kalt Instrumentation in Biomedicine der jeg lærte det grunnleggende om signalbehandling for medisinske applikasjoner. For klassens siste prosjekt, jobbet teamet mitt med EOG (elektrookulografi) teknologi. Essenti
Se på Eclipse Throught -lesebrillene (og brenner ikke øynene mine): 4 trinn (med bilder)
Ser på Eclipse Throught -lesebrillene (og ikke brenner øynene mine): Hei, skjønte jeg nysgjerrigheten din med tittelen min? Faren min gjorde det også, da vi gikk i den gamle Montréal i går, tok han av seg brillene og viste meg hvordan jeg kunne se hvordan formørkelsen tenkte lesebrillene sine. Så alt som