Sisällysluettelo:

Avaa silmäsi! Looginen analysaattori: 21 vaihetta
Avaa silmäsi! Looginen analysaattori: 21 vaihetta

Video: Avaa silmäsi! Looginen analysaattori: 21 vaihetta

Video: Avaa silmäsi! Looginen analysaattori: 21 vaihetta
Video: Peter Janev - Avaa silmäsi 2024, Heinäkuu
Anonim
Image
Image
Kokoonpano
Kokoonpano

Logiikka -analysaattorin avulla voit visualisoida pulssijonon, jotka ovat tiedonsiirtolinjalla kulkevia bittejä. Näin se avaa silmäsi tunnistamaan mahdollisen ongelman. Miksi tämä on tärkeää? Se on erittäin tehokas kehitystyökalu, joka voi säästää aikaa. Tässä videossa tänään arvioimme loogisen analysaattorin tärkeyttä, tarkkailemme joitain yleisten käytäntöjen protokollia tämän laitteen käytön aikana ja havainnollistamme ilman loogista analysaattoria.

Tässä videossa käytin suhteellisen halpaa (noin 35 dollaria) ja tehokasta mallia, jossa oli graafinen käyttöliittymä ja ilmainen ohjelmisto.

Vaihe 1: Kokoonpano

Vaihe 2: Käytetyt ominaisuudet - Palvelin

Käytetyt ominaisuudet - Palvelin
Käytetyt ominaisuudet - Palvelin

• Liitännät

• 2 Arduinoa (käytimme 2 Mega Arduinos 2560)

• Looginen analysaattori (käytämme Saleae)

• USB -liitäntäkaapelit Arduinolle ja analysaattorille.

• Oskilloskooppi (valinnainen)

• Protoboard

Vaihe 3: Käytetty piiri

Käytetty piiri
Käytetty piiri

Tässä on kaavio, joka näyttää kolmen nastan seurannan: TX0, SDA ja SCL. Meillä on kaksi Arduinoa: isäntä ja orja.

Vaihe 4: Lähdekoodi: Master

Asetuksiin sisällytetään kirjasto i2c -viestintää varten. Tulimme verkkoon päällikkönä ja alustimme sarjaan 0. Silmukassa pyysimme orjatietoja tavuja kommunikoidaksemme Arduino -numeromme 8 kanssa, kuten olemme määritelleet esimerkissä. Tulostamme sarjassa, joka arvioidaan logiikka -analysaattorilla, vastaanotetut tavut.

#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); // aloittaa sarjan 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 puskuri)} delay (500); // aguarda meio segundo}

Vaihe 5: Lähdekoodi: Slave

Tähän orjakoodiin sisällytän jälleen i2c -viestinnän kirjaston. Menen orjaksi osoitteeseen 8. Rekisteröimme pyyntötapahtuman ja liitämme sen "pyyntö" -toimintoon. Sinun ei tarvitse tehdä silmukalla mitään, anna vain 0,1 sekunnin viive.

Lopuksi meillä on pyyntötoiminto, joka suoritetaan, kun päällikön pyyntötapahtuma tapahtuu, joka rekisteröitiin asennuksessa. Vastaamme lopuksi 6 tavun viestiin.

#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); // rekisteröinti tai 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á executab quando ocorrer o evento de requisição pelo mestre // foi registerrada como evento no setup void requestEvent () {Wire.write ("teste"); // vastaa com uma mensagem de 6 bytes}

Vaihe 6: Analysaattori: Laitteisto

Analysaattori: Laitteisto
Analysaattori: Laitteisto

Näytteenottotaajuus: 24 MHz

Logiikka: 5 V - 5,25 V

Matalan tason kynnys 0,8 V

Korkea kynnys 2,0 V

Tuloimpedanssi on noin 1 Mohm tai enemmän

Vaihe 7: Saleae -ohjelmiston asennus

Myynnissä olevien ohjelmistojen asennus
Myynnissä olevien ohjelmistojen asennus

Ohjelma, joka vastaanottaa logiikka -analysaattorin keräämät tiedot ja purkaa bitit, voidaan ladata seuraavasta linkistä:

Vaihe 8: Ympäristön määrittäminen testejä varten

Ympäristön määrittäminen testejä varten
Ympäristön määrittäminen testejä varten

Näytän tässä käyttöliittymän, josta pidin erityisesti, koska se oli puhdas.

Vaihe 9: Ympäristön määrittäminen testejä varten

Ympäristön määrittäminen testejä varten
Ympäristön määrittäminen testejä varten

Tässä muutamia kokoonpanovaihtoehtoja:

• Napsauttamalla kanavan nimeä voimme muuttaa sitä.

• Voimme määrittää, toimiiko jokin kanavista kaappauksen ja havaitsemismuodon laukaisijana.

• Napsauttamalla ja pitämällä kanavan numeroa painettuna voit muuttaa sijaintiasi luettelossa.

• Napsauttamalla ratasta voimme määrittää kanavan visualisoinnin, laajentaa…

•… tai kanavan piilottaminen. Piilotamme kaikki kanavat, joita emme käytä.

Vaihe 10: Ympäristön määrittäminen testejä varten

Ympäristön määrittäminen testejä varten
Ympäristön määrittäminen testejä varten

Napsauttamalla "Aloita" -painikkeen nuolia voit valita näytteenottotaajuuden ja tallennuksen keston.

Jos jostain syystä ohjelmisto havaitsee, että nopeutta ei voida ylläpitää, näyttöön tulee viesti ja nopeutta pienennetään automaattisesti, kunnes toiminnallinen arvo saavutetaan.

Vaihe 11: Ympäristön määrittäminen testejä varten

Ympäristön määrittäminen testejä varten
Ympäristön määrittäminen testejä varten

Mukana on myös protokolla -analysaattorit. Ensinnäkin se on I2C, joka seuraa WIRE -kirjaston määritelmiä ja yhdistää kanavat oikein. Lopuksi esittelemme analysaattorin asynkroniselle sarjalle. Meidän on oltava varovaisia määrittäessämme parametrit oikein kokoonpanon mukaan.

Vaihe 12: Ympäristön määrittäminen testejä varten

Ympäristön määrittäminen testejä varten
Ympäristön määrittäminen testejä varten

"Dekoodatut protokollat" -välilehdeltä meidän on tarkistettava, mitkä protokolla -analysaattorit ovat käytössä. Siellä tiedot näkyvät. "Huomautukset" -välilehdessä voimme lisätä joitakin tuloksia visualisoinnin parantamiseksi. Napsauta vain "lisää mittaus" -kuvaketta.

Vaihe 13: Sieppaus: Yleiskatsaus

Tallenna: Yleiskatsaus
Tallenna: Yleiskatsaus

Tallennusnäytössä ohjelma näyttää SDA: n, SCL: n ja TX0: n datapulssijonon.

Vaihe 14: sieppaus: protokolla -analyysin tulos

Tallennus: Protokolla -analyysin tulos
Tallennus: Protokolla -analyysin tulos

Tässä näemme kaappauksen tuloksen. "Dekoodatut protokollat" -välilehdellä on:

• Palvelimen pyyntö orjalle, jonka tunnus on 8.

• Orjavastaus, kuusi merkkiä: "t", "e", "s", "t", "e" ja välilyönti.

• Kunkin jälkeen on ACK -bitti (kuittaus), joka ilmaisee oikean tavun vastaanoton, paitsi NACK (Not Acknowledge) -merkki.

• Seuraavaksi näemme TX0 -sarjan dekoodaustuloksen, joka ilmaisee Arduino IDE -sarjan päätelaitteeseen vastaanotetut ja lähetetyt merkit.

Vaihe 15: sieppaus: kanava 0 ja data (SDA)

Sieppaus: Kanava 0 ja data (SDA)
Sieppaus: Kanava 0 ja data (SDA)

Tässä kuvassa meillä on SDA -linjan pulssijono. Huomaa, että jokainen lähetetty tavu voidaan tarkastella.

Vaihe 16: sieppaus: kanava 1 ja kello (SCL)

Sieppaus: Kanava 1 ja kello (SCL)
Sieppaus: Kanava 1 ja kello (SCL)

Nyt meillä on täällä SCL -linjan pulssijuna. Voit tarkistaa lisätietoja yksinkertaisesti viemällä hiiren signaalin päälle, kuten näet kuvassa. Voimme nähdä, että kellotaajuus oli 100 kHz.

Vaihe 17: sieppaus: kanava 2 ja sarja (TX0)

Sieppaus: Kanava 2 ja sarja (TX0)
Sieppaus: Kanava 2 ja sarja (TX0)

Mitä tulee TX0 -linjan pulssijonoon, näemme aloitusbitin ja kunkin bitin kehystyskohdat. Meillä on tavu, joka edustaa merkkiä "e".

Vaihe 18: Ympäristön määrittäminen testejä varten

Ympäristön määrittäminen testejä varten
Ympäristön määrittäminen testejä varten

Tässä meillä on useita vaihtoehtoja tietojen lukemiseen.

Vaihe 19: sieppaus: oskilloskooppi ja analysaattori

Tallennus: oskilloskooppi ja analysaattori
Tallennus: oskilloskooppi ja analysaattori

Katsokaa tätä kuvaa, jonka otin oskilloskoopiltani. Logiikka -analysaattorin signaali edustaa vain korkeita ja matalia havaintoja, mutta se ei edusta signaalin laatua. Tämä voidaan parhaiten havaita oskilloskoopilla.

Vaihe 20: Sieppaus: Vian havaitseminen (esimerkki sarjavirheestä)

Tallennus: Epäonnistumisen havaitseminen (esimerkki sarjavirheestä)
Tallennus: Epäonnistumisen havaitseminen (esimerkki sarjavirheestä)

Näytän nyt esimerkin sarjavirheestä, joka todella tapahtui minulle. Yritin muodostaa yhteyden ESP32 -laitteeseen GPRS -modeemin kanssa, jota käytettiin matkapuhelimessa ja SIM -kortissa. Mutta se ei vain yhdistynyt. Tarkistin sitten virtalähteen, johdotukset ja vaihdoin levyn. Tein kaiken, mutta mikään ei korjannut sitä. Päätin laittaa loogisen analyysin: huomasin, että UART 115200: n ESP -signaali alkoi täsmää. Toisin sanoen ESP32 soitti 115, 200 eri nopeudella kuin tämä.

Tämä jäsentimen tunnistama virhe näytettiin X: llä punaisella. Ymmärtääkseni ohjelma sanoo, että piste, jossa on tällainen bitti, on puoliksi siirretty ajassa. Kun tämä muutos lisääntyy, voi tulla aika, jolloin kaikki eivät täsmää, joten tiedot eivät pääse toiselle puolelle. Se yleensä saapuu, mutta SIM800 on herkkä ja jos se ei ole tarkka, tiedot eivät pääse toiseen päähän.

En tiedä, tapahtuuko tämä usein vai ei, mutta se tapahtui minulle, joten päätin käsitellä tätä aihetta täällä. Joten mitä tein? Hidastin vauhtia. Jos asetat 9, 600, 19, 200, jopa 38, 400, se toimii, mitä ei tapahdu 115, 200: ssa.

Vaihe 21: Lataa tiedostot

PDF

INO

Suositeltava: