Tartalomjegyzék:

Nyisd ki a szemed! Logikai elemző: 21 lépés
Nyisd ki a szemed! Logikai elemző: 21 lépés

Videó: Nyisd ki a szemed! Logikai elemző: 21 lépés

Videó: Nyisd ki a szemed! Logikai elemző: 21 lépés
Videó: Каструп Λ Верваеке: загрузка разума и интеграция теней 2024, Július
Anonim
Image
Image
Összeszerelés
Összeszerelés

A logikai elemző megkönnyíti az impulzusvonat vizualizálását, amelyek a kommunikációs vonalon haladó bitek. Így kinyitja a szemét egy lehetséges probléma azonosítására. Ez miért fontos? Ez egy nagyon hatékony fejlesztési és hibafelismerő eszköz, amely időt takaríthat meg. Ebben a mai videóban értékeljük a logikai elemző fontosságát, megfigyeljük a szokásos gyakorlatok néhány protokollját az eszköz használata közben, és példaként mutatjuk be az észlelési hibát logikai elemző segítségével.

Ebben a videóban viszonylag olcsó (35 dollár körüli) és hatékony modellt használtam, grafikus felülettel és ingyenes szoftverrel.

1. lépés: Összeszerelés

2. lépés: Használt szolgáltatások - Szerver

Használt szolgáltatások - Szerver
Használt szolgáltatások - Szerver

• Átkötők csatlakozókhoz

• 2 Arduino (2 Mega Arduinos 2560 -at használtunk)

• Logikai elemző (Saleae -t használunk)

• USB csatlakozókábelek az Arduino és az analizátor számára.

• Oszcilloszkóp (opcionális)

• Protoboard

3. lépés: Használt áramkör

Használt áramkör
Használt áramkör

Itt van a vázlat, amely három tű figyelését mutatja: TX0, SDA és SCL. Két Arduinónk van: egy mester és egy rabszolga.

4. lépés: Forráskód: Mester

A Beállításban az i2c kommunikáció könyvtárát fogjuk tartalmazni. A hálózatba Masterként léptünk be, és 0. sorozatot inicializáltuk. A Loop -ban szolga adatbájtokat kértünk a 8 -as Arduino számunkkal való kommunikációhoz, amint azt a példában definiáltuk. A sorozatban nyomtatjuk, amelyet a logikai elemzővel értékelünk, a kapott bájtokat.

#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); // inicial 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 = Drót.olvasás (); // 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}

5. lépés: Forráskód: Slave

Ebbe a szolga kódba ismét belefoglalom az i2c kommunikáció könyvtárát. Szolgaként lépek be a hálózatba a 8. címmel. Regisztráljuk a kérési eseményt, és társítjuk a "kérés" funkcióhoz. Nem kell semmit tennie a cikluson, csak adjon 0,1 másodperces késleltetést.

Végül van egy kérési függvényünk, amelyet akkor hajtunk végre, amikor a Mester bekövetkezik, és amelyet a Beállításban regisztráltak. Végül 6 bájtos üzenettel válaszolunk.

#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 segment} // 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"); // válaszolj uma mensagem de 6 bytes}

6. lépés: Elemző: Hardver

Elemző: Hardver
Elemző: Hardver

Mintavételi frekvencia: 24 MHz

Logika: 5 V - 5,25 V

Alacsony szintű küszöb 0,8 V

Magas szintű küszöb 2,0 V

Bemeneti impedancia körülbelül 1 Mohm vagy több

7. lépés: Saleae szoftver telepítése

Eladó szoftver telepítése
Eladó szoftver telepítése

A program, amely fogadja a logikai elemző által rögzített adatokat és dekódolja a biteket, letölthető az alábbi linkről:

8. lépés: A környezet konfigurálása tesztjeinkhez

A környezet konfigurálása tesztjeinkhez
A környezet konfigurálása tesztjeinkhez

Itt mutatom a felületet, ami különösen tetszett, mert tiszta volt.

9. lépés: A környezet konfigurálása tesztjeinkhez

A környezet konfigurálása tesztjeinkhez
A környezet konfigurálása tesztjeinkhez

Íme néhány beállítási lehetőség:

• A csatorna nevére kattintva megváltoztathatjuk.

• Meg tudjuk határozni, hogy az egyik csatorna aktiválja -e a rögzítést és az észlelési formát.

• A csatornaszámra kattintva és lenyomva tartva megváltoztathatja pozícióját a listában.

• A fogaskerékre kattintva konfigurálhatjuk a csatorna megjelenítését, bővíthetjük…

•… vagy a csatorna elrejtése. Elrejtjük az összes csatornát, amelyet nem használunk.

10. lépés: A környezet konfigurálása tesztjeinkhez

A környezet konfigurálása tesztjeinkhez
A környezet konfigurálása tesztjeinkhez

A "Start" gomb nyilaira kattintva a mintavételi sebesség és a felvétel időtartama áll rendelkezésre.

Valamilyen oknál fogva, ha a szoftver azt észleli, hogy az arány nem tartható fenn, egy üzenet jelenik meg, és automatikusan csökken a sebesség, amíg el nem éri a funkcionális értéket.

11. lépés: A környezet konfigurálása tesztjeinkhez

A környezet konfigurálása tesztjeinkhez
A környezet konfigurálása tesztjeinkhez

A protokoll -elemzőket is tartalmazza. Először az I2C, követve a WIRE könyvtár definícióit, és helyesen társítva a csatornákat. Végül bemutatjuk az elemzőgépet az aszinkron sorozatokhoz. Vigyáznunk kell a paraméterek helyes beállítására az összeszerelésnek megfelelően.

12. lépés: A környezet konfigurálása tesztjeinkhez

A környezet konfigurálása tesztjeinkhez
A környezet konfigurálása tesztjeinkhez

A "Dekódolt protokollok" lapon ellenőrizni kell, hogy mely protokoll -elemzők engedélyezve vannak. Ott az adatok megjelennek. A "Jegyzetek" lapon hozzáadhatunk néhány eredményt a jobb megjelenítés érdekében. Csak kattintson a "mérés hozzáadása" ikonra.

13. lépés: Rögzítés: Áttekintés

Rögzítés: Áttekintés
Rögzítés: Áttekintés

A rögzítési képernyőn a program megjeleníti az SDA, SCL és TX0 adatimpulzus -sorozatát.

14. lépés: Rögzítés: Protokoll -elemzés eredménye

Rögzítés: A protokoll elemzésének eredménye
Rögzítés: A protokoll elemzésének eredménye

Itt láthatjuk a felvétel eredményét. A "Dekódolt protokollok" lapon a következők találhatók:

• A 8 -as azonosítójú kiszolgáló szerver kérése.

• A szolga válasz, hat karakter: "t", "e", "s", "t", "e" és szóköz.

• Mindegyiket egy ACK bit (nyugtázás) követi, amely a helyes bájtvételt jelzi, kivéve a NACK (Not Acknowledge) szóköz karaktert.

• Ezután látjuk a TX0 sorozat dekódolási eredményét, jelezve a kapott és az Arduino IDE soros terminálra küldött karaktereket.

15. lépés: Rögzítés: 0. csatorna és adatok (SDA)

Rögzítés: 0. csatorna és adatok (SDA)
Rögzítés: 0. csatorna és adatok (SDA)

Ezen a képen az SDA vonal impulzusvonata látható. Ne feledje, hogy minden továbbított bájt megtekinthető.

16. lépés: Rögzítés: 1. csatorna és óra (SCL)

Rögzítés: 1. csatorna és óra (SCL)
Rögzítés: 1. csatorna és óra (SCL)

Itt van az SCL vonal impulzusvonata. További részleteket egyszerűen ellenőrizhet, ha az egeret a jel fölé helyezi, amint az a képen látható. Láthatjuk, hogy az órajel frekvenciája 100 kHz volt.

17. lépés: Rögzítés: 2. csatorna és soros (TX0)

Rögzítés: 2. csatorna és soros (TX0)
Rögzítés: 2. csatorna és soros (TX0)

Ami a TX0 vonal impulzusvonatát illeti, láthatjuk a Start bitet és az egyes bitek keretezési pontjait. Van egy bájtunk, amely az "e" karaktert képviseli.

18. lépés: A környezet konfigurálása tesztjeinkhez

A környezet konfigurálása tesztjeinkhez
A környezet konfigurálása tesztjeinkhez

Itt több lehetőségünk van az adatok olvasására.

19. lépés: Rögzítés: oszcilloszkóp és elemző

Felvétel: oszcilloszkóp és elemző
Felvétel: oszcilloszkóp és elemző

Nézze meg ezt a képernyőt, amelyet az oszcilloszkópomról készítettem. A logikai elemző jel csak a magas és az alacsony érzékelést jelzi, de nem a jel minőségét. Ezt leginkább oszcilloszkóppal lehet megfigyelni.

20. lépés: Rögzítés: hiba észlelése (példa a soros meghibásodásra)

Rögzítés: Hiba megfigyelése (példa soros meghibásodásra)
Rögzítés: Hiba megfigyelése (példa soros meghibásodásra)

Most mutatok egy példát egy soros hibára, ami valójában velem történt. Egy GPRS modemmel voltam, amilyen a mobiltelefonon, a SIM -kártyán, és próbáltam csatlakozni az ESP32 -hez. De egyszerűen nem kapcsolódott össze. Ezután ellenőriztem a tápegységet, a vezetékeket és kicseréltem a táblát. Mindent megtettem, de semmi nem oldotta meg. Úgy döntöttem, hogy logikus elemzést végzek: felfedeztem, hogy az UART 115200 ESP jele kezdett eltérni. Vagyis az ESP32 ettől eltérő sebességgel játszotta a 115, 200 értéket.

Ezt a hibát, amelyet az elemző azonosított, X -el piros színnel jelenítettük meg. Értelmezésem szerint a program azt mondja, hogy az a pont, amelynek ilyen bitje van, idővel félig eltolódott. Ahogy ez az eltolódás növekszik, eljöhet az idő, amikor minden nem egyezik, így az információ nem jut el a másik oldalra. Általában megérkezik, de a SIM800 érzékeny, és ha nem pontos, az információ nem éri el a másik végét.

Nem tudom, hogy ez gyakran előfordul -e vagy sem, de velem történt meg, ezért úgy döntöttem, hogy itt foglalkozom ezzel a témával. Szóval mit csináltam? Lelassítottam. Ha 9, 600, 19, 200, akár 38, 400 értéket tesz fel, akkor működik, ami a 115, 200 esetén nem fordul elő.

21. lépés: Töltse le a fájlokat

PDF

ÉN NEM

Ajánlott: