Obsah:
- Krok 1: Montáž
- Krok 2: Použité funkcie - Server
- Krok 3: Použitý obvod
- Krok 4: Zdrojový kód: Master
- Krok 5: Zdrojový kód: Slave
- Krok 6: Analyzátor: Hardvér
- Krok 7: Inštalácia softvéru Saleae
- Krok 8: Konfigurácia prostredia pre naše testy
- Krok 9: Konfigurácia prostredia pre naše testy
- Krok 10: Konfigurácia prostredia pre naše testy
- Krok 11: Konfigurácia prostredia pre naše testy
- Krok 12: Konfigurácia prostredia pre naše testy
- Krok 13: Zachytenie: Prehľad
- Krok 14: Zachytenie: Výsledok analýzy protokolu
- Krok 15: Zachytenie: kanál 0 a údaje (SDA)
- Krok 16: Zachytenie: kanál 1 a hodiny (SCL)
- Krok 17: Zachytenie: kanál 2 a sériové pripojenie (TX0)
- Krok 18: Konfigurácia prostredia pre naše testy
- Krok 19: Zachytenie: osciloskop a analyzátor
- Krok 20: Zachytenie: Pozorovanie zlyhania (príklad sériového zlyhania)
- Krok 21: Stiahnite si súbory
Video: Otvor oči! Logický analyzátor: 21 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Logický analyzátor uľahčuje vašu vizualizáciu sledu impulzov, čo sú bity cestujúce v komunikačnej línii. Vďaka tomu sa vám otvoria oči pre identifikáciu možného problému. Prečo je to dôležité? Je to veľmi efektívny nástroj na vývoj a detekciu chýb, ktorý vám môže ušetriť čas. V tomto dnešnom videu zhodnotíme dôležitosť logického analyzátora, dodržíme niektoré protokoly bežných postupov pri používaní tohto zariadenia a uvedieme príklad zlyhania detekcie bez pomoci logického analyzátora.
V tomto videu som použil relatívne lacný (okolo 35 dolárov) a efektívny model s grafickým rozhraním a bezplatným softvérom.
Krok 1: Montáž
Krok 2: Použité funkcie - Server
• Spojky pre prepojenia
• 2 Arduinos (použili sme 2 Mega Arduinos 2560)
• Logický analyzátor (používame Saleae)
• Pripojovacie káble USB pre Arduino a analyzátor.
• Osciloskop (voliteľný)
• Protoboard
Krok 3: Použitý obvod
Tu máme schému, ktorá ukazuje monitorovanie troch pinov: TX0, SDA a SCL. Máme dvoch Arduinos: pána a otroka.
Krok 4: Zdrojový kód: Master
Do Setupu zaradíme knižnicu pre i2c komunikáciu. Vstúpili sme do siete ako Master a inicializovali sme sériovú 0. V slučke sme požadovali podradené dátové bajty pre komunikáciu s naším Arduino číslom 8, ako sme definovali v príklade. Vytlačíme sériové čísla, ktoré budú vyhodnotené logickým analyzátorom, prijaté bajty.
#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); // required 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bytes para receber… char c = Wire.read (); // príjem 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}
Krok 5: Zdrojový kód: Slave
V tomto podradenom kóde opäť uvádzam knižnicu pre komunikáciu i2c. Vstupujem do siete ako podriadený s adresou 8. Zaregistrujeme udalosť požiadavky a priradíme ju k funkcii „požiadavka“. Na slučke nemusíte nič robiť, stačí oneskorenie 0,1 sekundy.
Nakoniec máme požiadavkovú funkciu, ktorá bude vykonaná, keď dôjde k udalosti požiadavky Master, ktorá bola zaregistrovaná v programe Setup. Odpovedáme nakoniec správou 6 bajtov.
#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); // register o evento de requisiçao // e associate à função requestEvent} void loop () {delay (100); // žiadne veľké množstvo žiadnej slučky, počet 0, 1 segundo} // hromadné spustenie sériového spustenia alebo zrušenie požadovanej akcie // zaregistrovanie sa bez nastavenia neplatné requestEvent () {Wire.write ("teste"); // odpoveď na maximálnu veľkosť 6 bajtov}
Krok 6: Analyzátor: Hardvér
Vzorkovacia frekvencia až: 24 MHz
Logika: 5 V až 5,25 V
Prah nízkej úrovne 0,8 V
Prah vysokej úrovne 2,0 V
Vstupná impedancia približne 1 Mohm alebo viac
Krok 7: Inštalácia softvéru Saleae
Program, ktorý prijíma údaje zachytené logickým analyzátorom a dekóduje bity, je možné stiahnuť z nasledujúceho odkazu:
Krok 8: Konfigurácia prostredia pre naše testy
Tu uvádzam rozhranie, ktoré sa mi obzvlášť páčilo, pretože bolo čisté.
Krok 9: Konfigurácia prostredia pre naše testy
Tu je niekoľko možností konfigurácie:
• Kliknutím na názov kanála ho môžeme zmeniť.
• Môžeme určiť, či jeden z kanálov bude slúžiť ako spúšťač zachytenia a forma detekcie.
• Kliknutím a podržaním čísla kanála môžete zmeniť svoju pozíciu v zozname.
• Kliknutím na ozubené koliesko môžeme nakonfigurovať vizualizáciu kanála a rozšíriť …
• … alebo skrytie kanála. Skryjeme všetky kanály, ktoré nepoužívame.
Krok 10: Konfigurácia prostredia pre naše testy
Kliknutím na šípky na tlačidle „Štart“sa zobrazia možnosti vzorkovacej frekvencie a trvania záznamu.
Ak softvér z nejakého dôvodu zistí, že rýchlosť nemožno udržať, zobrazí sa správa a automaticky sa rýchlosť zníži, kým sa nedosiahne funkčná hodnota.
Krok 11: Konfigurácia prostredia pre naše testy
Zahrneme tiež analyzátory protokolov. Najprv je to I2C, podľa definícií knižnice WIRE a správne priradenie kanálov. Nakoniec zavedieme analyzátor do asynchrónneho seriálu. Musíme dávať pozor na správnu konfiguráciu parametrov podľa zostavy.
Krok 12: Konfigurácia prostredia pre naše testy
Na karte „Dekódované protokoly“by sme mali skontrolovať, ktoré analyzátory protokolov sú povolené. Tam sa zobrazia údaje. Na kartu „Anotácie“môžeme pridať niektoré výsledky pre lepšiu vizualizáciu. Stačí kliknúť na ikonu „pridať meranie“.
Krok 13: Zachytenie: Prehľad
Na obrazovke snímania program zobrazí sled dátových impulzov SDA, SCL a TX0.
Krok 14: Zachytenie: Výsledok analýzy protokolu
Tu vidíme výsledok zajatia. Na karte „Dekódované protokoly“máme:
• Požiadavka servera na slave s ID 8.
• Odpoveď otroka, šesť znakov: „t“, „e“, „s“, „t“, „e“a medzera.
• Za každým nasleduje bit ACK (Acknowledge) indikujúci správny príjem bajtov, okrem znaku medzery NACK (Not Acknowledge).
• Ďalej vidíme výsledok dekódovania sériového čísla TX0, ktorý označuje znaky prijaté a odoslané na sériový terminál Arduino IDE.
Krok 15: Zachytenie: kanál 0 a údaje (SDA)
Na tomto obrázku máme impulzný sled linky SDA. Všimnite si toho, že je možné zobraziť každý prenášaný bajt.
Krok 16: Zachytenie: kanál 1 a hodiny (SCL)
Teraz tu máme sled impulzov linky SCL. Viac podrobností môžete skontrolovať jednoduchým umiestnením myši nad signál, ako vidíte na obrázku. Môžeme vidieť, že hodinová frekvencia bola 100 kHz.
Krok 17: Zachytenie: kanál 2 a sériové pripojenie (TX0)
Pokiaľ ide o sled impulzov linky TX0, môžeme vidieť počiatočný bit a body rámca každého bitu. Máme bajt predstavujúci znak „e“.
Krok 18: Konfigurácia prostredia pre naše testy
Tu máme niekoľko možností na čítanie údajov.
Krok 19: Zachytenie: osciloskop a analyzátor
Pozrite sa sem na obrazovku, ktorú som zachytil zo svojho osciloskopu. Signál logického analyzátora predstavuje iba vysoké a nízke detekcie, ale nereprezentuje kvalitu signálu. Najlepšie to možno pozorovať na osciloskope.
Krok 20: Zachytenie: Pozorovanie zlyhania (príklad sériového zlyhania)
Teraz ukážem príklad sériového zlyhania, ktoré sa mi skutočne stalo. Bol som s GPRS modemom, druhom používaným na mobilnom telefóne, na SIM karte, a pokúšal som sa pripojiť k ESP32. Ale jednoducho sa to nepripojilo. Potom som skontroloval napájanie, zapojenie a vymenil dosku. Robil som všetko, ale nič to nevyriešilo. Rozhodol som sa vykonať logickú analýzu: zistil som, že signál ESP na UART 115200 sa začal nezhodovať. To znamená, že ESP32 hral to, čo by malo byť 115, 200, inou rýchlosťou ako je táto.
Táto chyba, ktorú identifikoval analyzátor, sa zobrazila s X červenou farbou. Podľa môjho chápania program hovorí, že bod, ktorý má taký kúsok, je v čase posunutý napoly. Ako sa tento posun zvyšuje, môže prísť čas, keď je všetko nesúladné, takže sa informácie nedostanú na druhú stranu. Obvykle príde, ale SIM800 je citlivý, a ak nie je presný, informácie sa nedostanú na druhý koniec.
Neviem, či sa to stáva často alebo nie, ale stalo sa mi to, a preto som sa rozhodol venovať tejto téme tu. Čo som teda urobil? Spomalila som. Ak dáte 9, 600, 19, 200, až 38, 400, funguje to, čo sa pri 115, 200 nevyskytuje.
Krok 21: Stiahnite si súbory
INO
Odporúča:
Vyrobte si digitálny logický analyzátor za menej ako kroky 1: 5 USD
Vyrobte si digitálny logický analyzátor za menej ako 1 dolár: Logický snímač hladiny je zariadenie, ktoré sníma, či je výstup komponentu 1 alebo 0 (kladný alebo záporný). Poznáte tie pekné snímače hladiny s LCD obrazovkami, ktoré stoja okolo 25 dolárov? Tento je smiešne lacnejší a robí to isté (
Logický sniper Arduino UNO: 8 krokov (s obrázkami)
Arduino UNO Logic Sniffer: Tento projekt začal ako jednoduchý experiment. Počas môjho výskumu v technickom liste ATMEGA328P pre ďalší projekt som zistil niečo celkom zaujímavé. Jednotka zachytávania vstupu Timer1. Umožňuje mikrokontroléru nášho Arduino UNO detekovať signál
Logický analyzátor s používateľským rozhraním Android: 7 krokov
Logický analyzátor s používateľským rozhraním Android: Svet je už zaplavený toľkými logickými analyzátormi. Pri svojom hobby v oblasti elektroniky som potreboval jeden na riešenie problémov a ladenie. Hľadal som na internete, ale nemôžem nájsť ten, ktorý hľadám. Tak som tu, predstavujem … "ĎALŠÍ Lo
Ako spájkovať diely cez otvor: 7 krokov (s obrázkami)
Ako spájkovať diely cez otvor: V tomto návode vám ukážem, ako spájkovať diely cez otvor. Prevediem vás krok za krokom týmto postupom a dám vám niekoľko tipov & triky, ktoré by mali vaše spájkovacie schopnosti posunúť na novú úroveň. Tento návod je
Dajte svojmu počítaču otvor v prístave: 5 krokov
Dajte svojmu počítaču otvor v prístave: Vložte plexisklo do počítača za menej ako hodinu