Taula de continguts:
- Pas 1: Muntatge
- Pas 2: Funcions utilitzades: servidor
- Pas 3: Circuit utilitzat
- Pas 4: Codi font: Mestre
- Pas 5: Codi font: esclau
- Pas 6: Analitzador: maquinari
- Pas 7: Instal·lació del programari de Saleae
- Pas 8: Configuració del medi ambient per a les nostres proves
- Pas 9: Configuració del medi ambient per a les nostres proves
- Pas 10: Configuració del medi ambient per a les nostres proves
- Pas 11: Configuració del medi ambient per a les nostres proves
- Pas 12: Configuració del medi ambient per a les nostres proves
- Pas 13: Captura: Visió general
- Pas 14: captura: resultat de l'anàlisi de protocols
- Pas 15: captura: canal 0 i dades (SDA)
- Pas 16: captura: canal 1 i rellotge (SCL)
- Pas 17: Captura: canal 2 i sèrie (TX0)
- Pas 18: Configuració del medi ambient per a les nostres proves
- Pas 19: Captura: oscil·loscopi i analitzador
- Pas 20: captura: observació d'un error (exemple d'error en sèrie)
- Pas 21: baixeu els fitxers
Vídeo: Obre els ulls! Analitzador lògic: 21 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
L’analitzador lògic facilita la visualització del tren d’impulsos, que són els bits que viatgen en una línia de comunicació. Per tant, us obre els ulls per identificar un possible problema. Per què és important? És una eina de desenvolupament i detecció d’errors molt eficient que us pot estalviar temps. Avui en aquest vídeo avaluarem la importància de l’analitzador lògic, observarem alguns protocols de pràctiques habituals mentre s’utilitza aquest dispositiu i exemplificarem un error de detecció sense l’ajut d’un analitzador lògic.
En aquest vídeo, he utilitzat un model relativament econòmic (al voltant de 35 dòlars) i eficient, amb una interfície gràfica i programari lliure.
Pas 1: Muntatge
Pas 2: Funcions utilitzades: servidor
• Jumpers per a connexions
• 2 Arduinos (hem utilitzat 2 Mega Arduinos 2560)
• Analitzador lògic (utilitzem Saleae)
• Cables de connexió USB per Arduino i analitzador.
• Oscil·loscopi (opcional)
• Protoboard
Pas 3: Circuit utilitzat
Aquí tenim l'esquema, que mostra la supervisió de tres pins: TX0, SDA i SCL. Tenim dos Arduinos: un mestre i un esclau.
Pas 4: Codi font: Mestre
A la configuració, inclourem la biblioteca per a la comunicació i2c. Vam entrar a la xarxa com a mestre i vam inicialitzar la sèrie 0. Al bucle, vam sol·licitar bytes de dades esclaus per a la comunicació amb el nostre número Arduino 8, tal com vam definir a l'exemple. Imprimim en la sèrie, que serà avaluada amb l'analitzador lògic, els bytes rebuts.
#include // inclui a biblioteca for comunicação I2C void setup () {Wire.begin (); // Entra na rede com Mestre (endereç és opcional per a mestre) Serial.begin (115200); // inicia un 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 com a caràcter Serial.print (c); // envia o caracter pela serial (na verdade vai para o buffer)} delay (500); // aguarda meio segundo}
Pas 5: Codi font: esclau
En aquest codi esclau, torno a incloure la biblioteca per a la comunicació i2c. Ingresso a la xarxa com a esclau amb l'adreça 8. Registrem l'esdeveniment de sol·licitud i l'associem a la funció "sol·licitud". No cal que feu res al bucle, només cal que retardeu 0,1 segons.
Finalment, tenim la funció de sol·licitud que s’executarà quan es produeixi l’esdeveniment de sol·licitud per part del mestre, que es va registrar a la configuració. Respondrem, finalment, amb un missatge de 6 bytes.
#include // inclui a biblioteca for comunicação I2C void setup () {Wire.begin (8); // entra na rede com escravo com endereço 8 Wire.onRequest (requestEvent); // registra o event de requisiçao // e associació a função requestEvent} void loop () {delay (100); // no faz nada no loop, apenas aguarda 0, 1 segundo} // funció que serà executada quan ocorrerà o esdeveniment de requeriment de pelo mestre // va ser registrat com a esdeveniment sense configuració void requestEvent () {Wire.write ("teste"); // responde com uma mensagem de 6 bytes}
Pas 6: Analitzador: maquinari
Freqüència de mostra fins a: 24 MHz
Lògica: de 5 V a 5,25 V
Llindar de nivell baix 0,8 V
Llindar d'alt nivell 2,0 V
Impedància d'entrada d'uns 1 Mohm o més
Pas 7: Instal·lació del programari de Saleae
El programa que rep les dades capturades per l’analitzador lògic i descodifica els bits es pot descarregar al següent enllaç:
Pas 8: Configuració del medi ambient per a les nostres proves
Aquí mostro la interfície, que m’ha agradat especialment perquè estava neta.
Pas 9: Configuració del medi ambient per a les nostres proves
Aquí teniu algunes opcions de configuració:
• Fent clic al nom del canal, el podem canviar.
• Podem determinar si un dels canals servirà de detonant per a la captura i la forma de detecció.
• Fent clic i mantenint premut el número del canal, podeu canviar la vostra posició a la llista.
• En fer clic a l’engranatge, podem configurar la visualització del canal, ampliant …
• … o amagant el canal. Amagarem tots els canals que no utilitzarem.
Pas 10: Configuració del medi ambient per a les nostres proves
Fent clic a les fletxes del botó "Inici", hi ha les opcions de Freqüència de mostreig i durada de la gravació.
Per alguna raó, si el programari detecta que no es pot mantenir la velocitat, es mostrarà un missatge i automàticament es reduirà la taxa fins que s’assoleixi un valor funcional.
Pas 11: Configuració del medi ambient per a les nostres proves
També inclourem els analitzadors de protocols. Primer és el I2C, seguint les definicions de la biblioteca WIRE i associant els canals correctament. Finalment, introduirem l’analitzador a sèries asíncrones. Hem de tenir cura de configurar correctament els paràmetres segons el muntatge.
Pas 12: Configuració del medi ambient per a les nostres proves
A la pestanya "Protocols descodificats", hauríem de comprovar quins analitzadors de protocols estan habilitats. Allà apareixeran les dades. A la pestanya "Anotacions", podem afegir alguns dels resultats per obtenir una millor visualització. Simplement feu clic a la icona "Afegeix mesurament".
Pas 13: Captura: Visió general
A la pantalla de captura, el programa mostra el tren de pols de dades de l'SDA, SCL i TX0.
Pas 14: captura: resultat de l'anàlisi de protocols
Aquí veiem el resultat de la captura. A la pestanya "Protocols descodificats" tenim:
• La sol·licitud del servidor per a l'esclau amb l'identificador 8.
• La resposta de l'esclau, sis caràcters: "t", "e", "s", "t", "e" i un espai.
• A cada un li segueix un bit ACK (Acknowledge) que indica la recepció correcta de bytes, excepte el caràcter d’espai NACK (Not Acknowledge).
• A continuació, veiem el resultat de la descodificació del serial TX0, que indica els caràcters rebuts i enviats al terminal serial Arduino IDE.
Pas 15: captura: canal 0 i dades (SDA)
En aquesta imatge, tenim el tren de polsos de la línia SDA. Tingueu en compte que es poden visualitzar cada byte transmès.
Pas 16: captura: canal 1 i rellotge (SCL)
Ara tenim aquí el tren de polsos de la línia SCL. Podeu consultar més detalls simplement posicionant el ratolí sobre el senyal, tal com veieu a la imatge. Podem veure que la freqüència del rellotge era de 100 kHz.
Pas 17: Captura: canal 2 i sèrie (TX0)
Pel que fa al tren d’impulsos de la línia TX0, podem veure el bit d’inici i els punts d’enquadrament de cada bit. Tenim un byte que representa el caràcter "e".
Pas 18: Configuració del medi ambient per a les nostres proves
Aquí tenim diverses opcions per llegir les dades.
Pas 19: Captura: oscil·loscopi i analitzador
Mireu aquí la pantalla que vaig capturar del meu oscil·loscopi. El senyal de l'analitzador lògic representa només les deteccions alta i baixa, però no representa la qualitat del senyal. Això es pot observar millor en un oscil·loscopi.
Pas 20: captura: observació d'un error (exemple d'error en sèrie)
Ara, mostraré un exemple d’error en sèrie, que realment em va passar. Jo estava amb un mòdem GPRS, del tipus que es feia servir en un telèfon mòbil, la targeta SIM, intentant connectar-me a l’ESP32. Però simplement no es connectava. Després vaig comprovar la font d’alimentació, el cablejat i vaig canviar la placa. Ho vaig fer tot, però res no ho va solucionar. Vaig decidir fer una anàlisi lògica: vaig descobrir que el senyal ESP de l'UART 115200 començava a no coincidir. És a dir, l’ESP32 jugava al que hauria de ser 115, 200 a una velocitat diferent d’aquesta.
Aquest error, identificat per l’analitzador, es va mostrar amb una X en vermell. Segons la meva comprensió, el programa diu que el punt que té una mica és tan mig desplaçat en el temps. A mesura que aquest canvi augmenta, pot arribar un moment en què tot no coincideixi, de manera que la informació no arribi a l’altra banda. Normalment arriba, però el SIM800 és sensible i, si no és exacte, la informació no arriba a l’altre extrem.
No sé si això passa amb freqüència o no, però em va passar, i per això vaig decidir tractar aquest tema aquí. Què he fet, doncs? Vaig frenar la velocitat. Si poseu 9, 600, 19, 200, fins a 38, 400, funciona, cosa que no passa amb els 115, 200.
Pas 21: baixeu els fitxers
INO
Recomanat:
Carabassa de Halloween amb ull animatrònic en moviment - Aquesta carbassa pot rodar els ulls: 10 passos (amb imatges)
Carabassa de Halloween amb ull animatrònic en moviment | Aquesta carbassa pot rodar els ulls: en aquest instructiu, aprendràs a fer una carbassa de Halloween que aterrori a tothom quan es mou l’ull. Ajusteu la distància d’activació del sensor d’ultrasons al valor correcte (pas 9) i la vostra carbassa petrificarà tothom que s’atreveixi a prendre cand
Hack de bateria de 12 volts! No et creuràs els ulls !!!!! (actualitzat): 7 passos
Hack de bateria de 12 volts! No et creuràs els ulls !!!!! (actualitzat): inspirat en l'informable de Kipkay, vaig pensar que agafaria algunes de les meves pròpies bateries d'una altra marca … I, noi, em va sorprendre
Control de llums amb els ulls: 9 passos (amb imatges)
Control de llums amb els teus ulls: aquest semestre a la universitat, vaig fer una classe anomenada Instrumentació en biomedicina en què vaig aprendre els conceptes bàsics del processament de senyals per a aplicacions mèdiques. Per al projecte final de la classe, el meu equip va treballar en tecnologia EOG (electrooculografia). Essenti
Veure els ulleres de lectura de l'Eclipse (i no em cremen els ulls): 4 passos (amb imatges)
Veient l’eclipsi amb ulleres de lectura (i no em cremaven els ulls): Ei, he captat la teva curiositat amb el meu títol? El meu pare també ho va fer, ja que ahir passàvem pel vell Montr é all, es va treure les ulleres i em va ensenyar a veure com veure l'eclipsi pensava que les seves ulleres de lectura. Així doncs, tot allò que
Distribuïu els vostres instructables, els temes del fòrum i els vostres preferits a Twitter i Facebook: 3 passos
Distribuïu els vostres instructables, els temes del fòrum i els vostres preferits a Twitter i Facebook: mitjançant els canals RSS del vostre compte i d'un parell de llocs web útils, és possible sindicar i compartir els vostres instructables, els temes del fòrum, els preferits i tota la resta de la vostra activitat a Instructibles a Facebook o Twitter. Aquesta és una gran manera