Innehållsförteckning:
- Steg 1: Montering
- Steg 2: Funktioner som används - Server
- Steg 3: Krets används
- Steg 4: Källkod: Master
- Steg 5: Källkod: Slav
- Steg 6: Analysator: Hårdvara
- Steg 7: Installation av Saleae -programvara
- Steg 8: Konfigurera miljön för våra tester
- Steg 9: Konfigurera miljön för våra tester
- Steg 10: Konfigurera miljön för våra tester
- Steg 11: Konfigurera miljön för våra tester
- Steg 12: Konfigurera miljön för våra tester
- Steg 13: Capture: Översikt
- Steg 14: Capture: Resultat av protokollanalys
- Steg 15: Capture: Channel 0 and Data (SDA)
- Steg 16: Capture: Channel 1 and Clock (SCL)
- Steg 17: Capture: Channel 2 och Serial (TX0)
- Steg 18: Konfigurera miljön för våra tester
- Steg 19: Capture: Oscilloskop och analysator
- Steg 20: Capture: Observing a Failure (exempel på seriefel)
- Steg 21: Ladda ner filerna
Video: Öppna dina ögon! Logisk analysator: 21 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Logikanalysatorn underlättar din visualisering av pulståget, som är bitarna som färdas i en kommunikationslinje. Således öppnar det dina ögon för att identifiera ett möjligt problem. Varför är detta viktigt? Det är ett mycket effektivt utvecklings- och feldetekteringsverktyg som kan spara tid. I den här videon i dag kommer vi att utvärdera vikten av den logiska analysatorn, observera några protokoll för vanliga metoder när vi använder den här enheten och exemplifiera ett detekteringsfel utan hjälp av en logisk analysator.
I den här videon använde jag en relativt billig (cirka $ 35) och effektiv modell, med ett grafiskt gränssnitt och gratis programvara.
Steg 1: Montering
Steg 2: Funktioner som används - Server
• Byxor för anslutningar
• 2 Arduinos (vi använde 2 Mega Arduinos 2560)
• Logisk analysator (vi använder Saleae)
• USB -anslutningskablar för Arduino och analysator.
• Oscilloskop (tillval)
• Protoboard
Steg 3: Krets används
Här har vi schemat, som visar övervakningen av tre stift: TX0, SDA och SCL. Vi har två Arduinos: en mästare och en slav.
Steg 4: Källkod: Master
I installationen kommer vi att inkludera biblioteket för i2c -kommunikation. Vi gick in i nätverket som Master och initierade serie 0. I Loop begärde vi slavdatabyte för kommunikation med vårt Arduino nummer 8, som vi definierade i exemplet. Vi skriver ut i serien, som kommer att utvärderas med logikanalysatorn, mottagna 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 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}
Steg 5: Källkod: Slav
I denna slavkod inkluderar jag igen biblioteket för i2c -kommunikation. Jag går in i nätverket som en slav med adressen 8. Vi registrerar begärningshändelsen och associerar den med funktionen "begäran". Du behöver inte göra någonting på slingan, bara ge en fördröjning på 0,1 sekunder.
Slutligen har vi förfrågningsfunktionen som kommer att utföras när begärningshändelsen av Master inträffar, som registrerades i Setup. Vi svarar slutligen med ett meddelande 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}
Steg 6: Analysator: Hårdvara
Provhastighet upp till: 24 MHz
Logik: 5 V till 5,25 V
Tröskel på låg nivå 0,8 V
Tröskel på hög nivå 2,0 V
Ingångsimpedans på cirka 1 Mohm eller mer
Steg 7: Installation av Saleae -programvara
Programmet som tar emot data som fångats av logikanalysatorn och avkodar bitarna kan laddas ner på följande länk:
Steg 8: Konfigurera miljön för våra tester
Jag visar gränssnittet här, vilket jag särskilt gillade eftersom det var rent.
Steg 9: Konfigurera miljön för våra tester
Här är några konfigurationsalternativ:
• Genom att klicka på kanalnamnet kan vi ändra det.
• Vi kan avgöra om en av kanalerna kommer att fungera som en utlösare för fångst och detekteringsform.
• Genom att klicka och hålla kvar kanalnumret kan du ändra din position i listan.
• Genom att klicka på växeln kan vi konfigurera kanalvisualiseringen och utöka …
• … eller döljer kanalen. Vi döljer alla kanaler som vi inte kommer att använda.
Steg 10: Konfigurera miljön för våra tester
Genom att klicka på pilarna på "Start" -knappen finns alternativen för samplingshastighet och inspelningens varaktighet.
Av någon anledning, om programvaran upptäcker att takten inte kan bibehållas, visas ett meddelande och hastigheten kommer automatiskt att sänkas tills ett funktionellt värde har uppnåtts.
Steg 11: Konfigurera miljön för våra tester
Vi kommer också att inkludera protokollanalysatorer. Först är det I2C, som följer definitionerna av WIRE -biblioteket och associerar kanalerna korrekt. Slutligen introducerar vi analysatorn till asynkron serie. Vi måste vara noga med att konfigurera parametrarna korrekt enligt monteringen.
Steg 12: Konfigurera miljön för våra tester
På fliken "Avkodade protokoll" bör vi kontrollera vilka protokollanalysatorer som är aktiverade. Där kommer uppgifterna att visas. På fliken "Kommentarer" kan vi lägga till några av resultaten för bättre visualisering. Klicka bara på ikonen "lägg till mätning".
Steg 13: Capture: Översikt
På skärmen för inspelning visar programmet datapulståget för SDA, SCL och TX0.
Steg 14: Capture: Resultat av protokollanalys
Här ser vi resultatet av fångsten. På fliken "Avkodade protokoll" har vi:
• Serverbegäran för slaven med id 8.
• Slavsvaret, sex tecken: "t", "e", "s", "t", "e" och ett mellanslag.
• Varje följs av en ACK -bit (Acknowledge) som indikerar korrekt byte -mottagning, förutom NACK (Not Acknowledge) -tecken.
• Därefter ser vi avkodningsresultatet för TX0 -serien, vilket anger tecknen som tagits emot och skickats till Arduino IDE -seriell terminal.
Steg 15: Capture: Channel 0 and Data (SDA)
I den här bilden har vi pulståget för SDA -linjen. Observera att varje överförd byte kan ses.
Steg 16: Capture: Channel 1 and Clock (SCL)
Nu har vi här pulståget för SCL -linjen. Du kan kontrollera mer information helt enkelt genom att placera musen över signalen, som du ser på bilden. Vi kan se att klockfrekvensen var vid 100 kHz.
Steg 17: Capture: Channel 2 och Serial (TX0)
När det gäller pulståget på TX0 -linjen kan vi se startbiten och rampunkterna för varje bit. Vi har en byte som representerar karaktären "e".
Steg 18: Konfigurera miljön för våra tester
Här har vi flera alternativ för att läsa data.
Steg 19: Capture: Oscilloskop och analysator
Se här på skärmen jag fångade från mitt oscilloskop. Logikanalysatorsignalen representerar endast höga och låga detekteringar, men den representerar inte signalkvaliteten. Detta kan bäst observeras på ett oscilloskop.
Steg 20: Capture: Observing a Failure (exempel på seriefel)
Nu ska jag visa ett exempel på ett seriefel som faktiskt hände mig. Jag var med ett GPRS -modem, den typ som används på en mobiltelefon, SIM -kortet, försökte ansluta till ESP32. Men det anslöt bara inte. Jag kontrollerade sedan strömförsörjningen, ledningarna och bytte styrelse. Jag gjorde allt, men inget fixade det. Jag bestämde mig för att lägga in en logisk analys: Jag upptäckte att ESP -signalen på UART 115200 började matcha. Det vill säga, ESP32 spelade vad som borde vara 115 200 med en annan hastighet än detta.
Det här felet, som identifierades av parsern, visades med ett X i rött. Enligt min förståelse säger programmet att punkten som har en sådan bit är halvt förskjuten i tiden. När denna förskjutning ökar kan det komma en tid då allt stämmer överens, så att information inte når den andra sidan. Den kommer vanligtvis, men SIM800 är känslig och om den inte är exakt når informationen inte andra änden.
Jag vet inte om detta är något som händer ofta eller inte, men det hände mig, och därför bestämde jag mig för att ta upp detta ämne här. Så vad gjorde jag? Jag saktade ner. Om du sätter 9, 600, 19, 200, upp till 38, 400 fungerar det, vilket inte sker med 115, 200.
Steg 21: Ladda ner filerna
INO
Rekommenderad:
12 Volt batterihack! Du kommer inte tro dina ögon !!!!! (uppdaterad): 7 steg
12 Volt batterihack! Du kommer inte tro dina ögon !!!!! (uppdaterad): Inspirerad av instruktionerna från Kipkay trodde jag att jag skulle hämta några av mina egna batterier av ett annat märke … Och, pojke, blev jag förvånad
Kontrollera ljus med dina ögon: 9 steg (med bilder)
Kontrollera ljus med dina ögon: Den här terminen på college gick jag en klass som heter Instrumentation in Biomedicine där jag lärde mig grunderna i signalbehandling för medicinska applikationer. För klassens slutprojekt arbetade mitt team med EOG -teknik (elektrookulografi). Essenti
Programmering av den öppna DSKY: 5 steg (med bilder)
Programmering av den öppna DSKY: Välkommen till våra pågående instruktioner om programmering av din öppna DSKY. Kom ihåg att komma tillbaka eftersom denna instruktör kommer att fortsätta växa när vi ständigt producerar och släpper nytt programmeringsmaterial. Så följ den, gilla den och favoritera den. Den här serien med videor
Öppna Apollo Guidance Computer DSKY: 13 steg (med bilder)
Öppna Apollo Guidance Computer DSKY: Stolt över att vara en utvald instruerbar sedan 1/10/18. Rösta på oss och gilla oss! Kickstarter -kampanjen var en supersuccé! Open DSKY KickstarterOur Open DSKY är för närvarande live på Backerkit (https://opendsky.backerkit.com/hosted_preorders) och
Logisk sond med pulsdetektering: 8 steg
Logic Probe With Pulse Detection: THE TWO TRANSISTOR LOGC PROBE introducerade av jazzzzz och CMOS. Ett stort problem vid digital kretstestning är