Inhoudsopgave:
- Stap 1: Montage
- Stap 2: Gebruikte functies - Server
- Stap 3: Circuit gebruikt
- Stap 4: Broncode: Master
- Stap 5: Broncode: slaaf
- Stap 6: Analyser: hardware
- Stap 7: Installatie van Saleae-software
- Stap 8: De omgeving configureren voor onze tests
- Stap 9: De omgeving configureren voor onze tests
- Stap 10: De omgeving configureren voor onze tests
- Stap 11: De omgeving configureren voor onze tests
- Stap 12: De omgeving configureren voor onze tests
- Stap 13: Vastleggen: Overzicht
- Stap 14: Vastleggen: resultaat van protocolanalyse
- Stap 15: Vastleggen: kanaal 0 en gegevens (SDA)
- Stap 16: Vastleggen: kanaal 1 en klok (SCL)
- Stap 17: Vastleggen: kanaal 2 en serieel (TX0)
- Stap 18: De omgeving configureren voor onze tests
- Stap 19: Vastleggen: oscilloscoop en analysator
- Stap 20: Vastleggen: een storing waarnemen (voorbeeld van een seriestoring)
- Stap 21: Download de bestanden
Video: Open je ogen! Logische analysator: 21 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
De logische analysator vergemakkelijkt uw visualisatie van de pulstrein, de bits die in een communicatielijn reizen. Het opent dus je ogen om een mogelijk probleem te identificeren. Waarom is dit belangrijk? Het is een zeer efficiënte tool voor ontwikkeling en foutdetectie die u tijd kan besparen. In deze video van vandaag evalueren we het belang van de logische analysator, observeren we enkele veelgebruikte protocollen tijdens het gebruik van dit apparaat en illustreren we een detectiefout zonder de hulp van een logische analysator.
In deze video heb ik een relatief goedkoop (ongeveer $ 35) en efficiënt model gebruikt, met een grafische interface en gratis software.
Stap 1: Montage
Stap 2: Gebruikte functies - Server
• Jumpers voor verbindingen
• 2 Arduino's (we gebruikten 2 Mega Arduino's 2560)
• Logical Analyzer (we gebruiken Saleae)
• USB-aansluitkabels voor Arduino en analyser.
• Oscilloscoop (optioneel)
• Protobord
Stap 3: Circuit gebruikt
Hier hebben we het schema, dat de bewaking van drie pinnen laat zien: TX0, SDA en SCL. We hebben twee Arduino's: een master en een slave.
Stap 4: Broncode: Master
In de Setup zullen we de bibliotheek voor i2c-communicatie opnemen. We kwamen het netwerk binnen als Master en initialiseerden seriële 0. In de Loop vroegen we slave-databytes aan voor communicatie met ons Arduino-nummer 8, zoals we in het voorbeeld hebben gedefinieerd. We printen in de serie, die zal worden geëvalueerd met de logische analysator, de ontvangen bytes.
#include //inclui a biblioteca para comunicação I2C void setup() { Wire.begin(); // Entra na rede como Mestre (andere en optionele 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 en amazena como karakter Serial.print (c); // envia o caracter pela serial (na verdade vai para o buffer)} vertraging (500); //aguarda meio segundo}
Stap 5: Broncode: slaaf
In deze slave-code neem ik opnieuw de bibliotheek voor i2c-communicatie op. Ik betreed het netwerk als een slaaf met het adres 8. We registreren de aanvraaggebeurtenis en koppelen deze aan de functie "verzoek". U hoeft niets te doen in de lus, geef gewoon een vertraging van 0,1 seconde.
Ten slotte hebben we de verzoekfunctie die wordt uitgevoerd wanneer de verzoekgebeurtenis door de Master plaatsvindt, die is geregistreerd in Setup. We antwoorden tenslotte met een bericht van 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 eventto de requisiçao // e associa à função requestEvent } void loop () { delay (100); //no faz nada no loop, apenas aguarda 0, 1 segundo} //função que será executada quando ocorrer of event to the requisição pelo mestre //foi registrada como eventto no setup void requestEvent() { Wire.write("teste "); // responde com uma mensagem de 6 bytes }
Stap 6: Analyser: hardware
Samplefrequentie tot: 24 MHz
Logisch: 5 V tot 5,25 V
Laagdrempelige drempel 0,8 V
Hoge drempel 2,0 V
Ingangsimpedantie van ongeveer 1 Mohm of meer
Stap 7: Installatie van Saleae-software
Het programma dat de gegevens ontvangt die zijn vastgelegd door de logic analyzer en de bits decodeert, kan worden gedownload via de volgende link:
Stap 8: De omgeving configureren voor onze tests
Ik laat hier de interface zien, die ik vooral leuk vond omdat hij schoon was.
Stap 9: De omgeving configureren voor onze tests
Hier zijn enkele configuratie-opties:
• Door op de kanaalnaam te klikken, kunnen we deze wijzigen.
• We kunnen bepalen of een van de kanalen zal dienen als trigger voor capture en de vorm van detectie.
• Door op het kanaalnummer te klikken en vast te houden, kunt u uw positie in de lijst wijzigen.
• Door op het tandwiel te klikken, kunnen we de kanaalvisualisatie configureren, uitbreiden …
• … of het kanaal verbergen. We verbergen alle kanalen die we niet gebruiken.
Stap 10: De omgeving configureren voor onze tests
Door op de pijlen van de "Start"-knop te klikken, zijn er de opties van Sampling Rate en duur van de opname.
Als de software om de een of andere reden detecteert dat de snelheid niet kan worden gehandhaafd, wordt een bericht weergegeven en wordt de snelheid automatisch verlaagd totdat een functionele waarde is bereikt.
Stap 11: De omgeving configureren voor onze tests
We zullen ook de protocolanalysatoren opnemen. Ten eerste is het de I2C, die de definities van de WIRE-bibliotheek volgt en de kanalen correct associeert. Ten slotte zullen we de analysator kennis laten maken met asynchrone seriële. We moeten voorzichtig zijn om de parameters correct te configureren volgens de assembly.
Stap 12: De omgeving configureren voor onze tests
Op het tabblad "Gedecodeerde protocollen" moeten we controleren welke protocolanalysatoren zijn ingeschakeld. Daar verschijnen de gegevens. Op het tabblad "Annotaties" kunnen we enkele resultaten toevoegen voor een betere visualisatie. Klik gewoon op het pictogram "Meting toevoegen".
Stap 13: Vastleggen: Overzicht
In het opnamescherm toont het programma de datapulstrein van de SDA, SCL en TX0.
Stap 14: Vastleggen: resultaat van protocolanalyse
Hier zien we het resultaat van de opname. Op het tabblad "Gedecodeerde protocollen" hebben we:
• Het serververzoek voor de slave met id 8.
• Het slave-antwoord, zes tekens: "t", "e", "s", "t", "e" en een spatie.
• Elk wordt gevolgd door een ACK-bit (Acknowledge) die de correcte byte-ontvangst aangeeft, behalve het NACK (Not Acknowledge)-spatieteken.
• Vervolgens zien we het decoderingsresultaat van de TX0-serie, met vermelding van de tekens die zijn ontvangen en verzonden naar de Arduino IDE seriële terminal.
Stap 15: Vastleggen: kanaal 0 en gegevens (SDA)
In deze afbeelding hebben we de pulstrein van de SDA-lijn. Merk op dat elke verzonden byte kan worden bekeken.
Stap 16: Vastleggen: kanaal 1 en klok (SCL)
Nu hebben we hier de pulstrein van de SCL-lijn. U kunt meer details controleren door de muis op het signaal te plaatsen, zoals u in de afbeelding ziet. We kunnen zien dat de klokfrequentie 100 kHz was.
Stap 17: Vastleggen: kanaal 2 en serieel (TX0)
Wat betreft de pulstrein van de TX0-lijn, we kunnen het Start-bit en de framingpunten van elk bit zien. We hebben een byte die het teken "e" vertegenwoordigt.
Stap 18: De omgeving configureren voor onze tests
Hier hebben we verschillende opties voor het lezen van de gegevens.
Stap 19: Vastleggen: oscilloscoop en analysator
Kijk hier naar het scherm dat ik heb vastgelegd met mijn oscilloscoop. Het signaal van de logische analysator vertegenwoordigt alleen de hoge en lage detecties, maar het vertegenwoordigt niet de signaalkwaliteit. Dit is het beste waar te nemen op een oscilloscoop.
Stap 20: Vastleggen: een storing waarnemen (voorbeeld van een seriestoring)
Nu zal ik een voorbeeld laten zien van een seriële storing, die mij echt is overkomen. Ik was met een GPRS-modem, het soort dat op een mobiele telefoon wordt gebruikt, de simkaart, en probeerde verbinding te maken met de ESP32. Maar het maakte gewoon geen verbinding. Ik heb toen de voeding gecontroleerd, de bedrading en het bord vervangen. Ik heb alles gedaan, maar niets loste het op. Ik besloot een logische analyse uit te voeren: ik ontdekte dat het ESP-signaal op UART 115200 niet overeenkwam. Dat wil zeggen, de ESP32 speelde wat 115, 200 zou moeten zijn met een andere snelheid dan deze.
Deze fout, die werd geïdentificeerd door de parser, werd weergegeven met een X in het rood. Als ik het goed begrijp, zegt het programma dat het punt dat zo'n bit heeft half verschoven is in de tijd. Naarmate deze verschuiving toeneemt, kan er een moment komen dat alles niet op elkaar aansluit, zodat informatie de andere kant niet bereikt. Het komt meestal aan, maar de SIM800 is gevoelig en als het niet exact is, bereikt de informatie de andere kant niet.
Ik weet niet of dit iets is dat vaak voorkomt, maar het is mij overkomen en daarom besloot ik dit onderwerp hier te bespreken. Dus wat heb ik gedaan? Ik vertraagde. Als je 9, 600, 19, 200, tot 38, 400 zet, werkt het, wat niet gebeurt met de 115, 200.
Stap 21: Download de bestanden
INO
Aanbevolen:
Logische poorten met transistor: 3 stappen
Logische poorten met transistor: Logische poorten zijn de basisbouwstenen van elk digitaal systeem
Som van producten Circuit met behulp van logische poorten - Ajarnpa
Som van producten Circuit met behulp van logische poorten: in deze instructable laat ik je zien hoe je je eigen systeem kunt maken met behulp van de som van producten, een klein beetje Booleaanse algebra en enkele logische poorten. U hoeft niet exact hetzelfde systeem te maken als in deze tutorial, maar u kunt
EZProbe, een op EZ430 gebaseerde logische sonde: 4 stappen
EZProbe, een op EZ430 gebaseerde logische sonde: dit is een eenvoudig logische sondeproject gebaseerd op de TI EZ430-dongle. ik heb in september 2010 gebruik gemaakt van een gratis aanbieding op een paar ez430's van TI. ze zijn erg handig en leuk om kleine codefragmenten uit te proberen en de led te zien knipperen. ze hadden sinds b
Logische poorten maken in Excel: 11 stappen
Maak logische poorten in Excel: Het maken van alle 7 basis logische poorten in Excel is niet erg moeilijk. Als je de functies in Excel begrijpt, dan zou dit project vrij eenvoudig zijn, als je dat niet doet, geen zorgen, het zal niet lang duren om eraan te wennen. Excel heeft al een paar logische poorten gemaakt voor
Dubbele logische transistorpoorten - Ajarnpa
Dual Logic Transistor Gates: ik bouw transistorpoorten een beetje anders dan de meeste andere elektronica-ingenieurs. De meeste mensen wanneer ze transistorpoorten bouwen; bouw ze met alleen positieve logica in gedachten, maar poorten in IC's hebben twee logica's, positieve logica en negatieve logica. EEN