Obsah:
- Krok 1: Sestavení
- Krok 2: Použité funkce - Server
- Krok 3: Použitý obvod
- Krok 4: Zdrojový kód: Master
- Krok 5: Zdrojový kód: Slave
- Krok 6: Analyzer: Hardware
- Krok 7: Instalace softwaru Saleae
- Krok 8: Konfigurace prostředí pro naše testy
- Krok 9: Konfigurace prostředí pro naše testy
- Krok 10: Konfigurace prostředí pro naše testy
- Krok 11: Konfigurace prostředí pro naše testy
- Krok 12: Konfigurace prostředí pro naše testy
- Krok 13: Zachycení: Přehled
- Krok 14: Zachycení: Výsledek analýzy protokolu
- Krok 15: Zachycení: kanál 0 a data (SDA)
- Krok 16: Zachycení: kanál 1 a hodiny (SCL)
- Krok 17: Capture: Channel 2 and Serial (TX0)
- Krok 18: Konfigurace prostředí pro naše testy
- Krok 19: Zachycení: osciloskop a analyzátor
- Krok 20: Zachycení: Pozorování selhání (příklad sériového selhání)
- Krok 21: Stáhněte si soubory
Video: Otevři oči! Logický analyzátor: 21 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Logický analyzátor usnadňuje vaši vizualizaci sledu pulzů, což jsou bity cestující v komunikační linii. Díky tomu se vám otevřou oči k identifikaci možného problému. Proč je toto důležité? Je to velmi účinný nástroj pro vývoj a detekci chyb, který vám může ušetřit čas. V tomto dnešním videu vyhodnotíme důležitost logického analyzátoru, sledujeme některé protokoly běžných postupů při používání tohoto zařízení a ukážeme příklad selhání detekce bez pomoci logického analyzátoru.
V tomto videu jsem použil relativně levný (kolem 35 $) a efektivní model s grafickým rozhraním a bezplatným softwarem.
Krok 1: Sestavení
Krok 2: Použité funkce - Server
• Propojky pro připojení
• 2 Arduinos (použili jsme 2 Mega Arduinos 2560)
• Logický analyzátor (používáme Saleae)
• USB propojovací kabely pro Arduino a analyzátor.
• Osciloskop (volitelný)
• Protoboard
Krok 3: Použitý obvod
Zde máme schéma, které ukazuje monitorování tří pinů: TX0, SDA a SCL. Máme dva Arduiny: pána a otroka.
Krok 4: Zdrojový kód: Master
V nastavení zahrneme knihovnu pro i2c komunikaci. Vstoupili jsme do sítě jako Master a inicializovali jsme sériovou 0. Ve smyčce jsme požadovali podřízené datové bajty pro komunikaci s naším Arduino číslem 8, jak jsme definovali v příkladu. Přijaté bajty vytiskneme v seriálu, který bude vyhodnocen pomocí logického analyzátoru.
#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ční sériová 0} prázdná smyčka () {Wire.requestFrom (8, 6); // požadováno 6 bajtů od doteků do konce 8, zatímco (Wire.available ()) {// enquanto houver bytes para receber… char c = Wire.read (); // pří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
Do tohoto podřízeného kódu opět zahrnuji knihovnu pro i2c komunikaci. Vstupuji do sítě jako slave s adresou 8. Zaregistrujeme událost request a spojíme ji s funkcí „request“. Na smyčce nemusíte nic dělat, stačí prodleva 0,1 sekundy.
Nakonec máme funkci požadavku, která bude provedena, když dojde k události požadavku Masterem, která byla zaregistrována v nastavení. Nakonec odpovíme zprávou o velikosti 6 bajtů.
#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); // registrace o evento de requisiçao // e asociace à função requestEvent} void loop () {delay (100); // não faz nada no loop, apenas aguarda 0, 1 segundo} // função que sera executionada quando ocorrer o evento de requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste"); // odpověď na více než 6 bajtů}
Krok 6: Analyzer: Hardware
Vzorkovací frekvence až: 24 MHz
Logika: 5 V až 5,25 V
Nízký práh 0,8 V.
Prah vysoké úrovně 2,0 V
Vstupní impedance přibližně 1 Mohm nebo více
Krok 7: Instalace softwaru Saleae
Program, který přijímá data zachycená logickým analyzátorem a dekóduje bity, lze stáhnout na následujícím odkazu:
Krok 8: Konfigurace prostředí pro naše testy
Ukazuji zde rozhraní, které se mi obzvlášť líbilo, protože bylo čisté.
Krok 9: Konfigurace prostředí pro naše testy
Zde jsou některé možnosti konfigurace:
• Kliknutím na název kanálu jej můžeme změnit.
• Můžeme určit, zda jeden z kanálů bude sloužit jako spoušť pro zachycení a forma detekce.
• Kliknutím a podržením čísla kanálu můžete změnit svou pozici v seznamu.
• Kliknutím na ozubené kolo můžeme nakonfigurovat vizualizaci kanálu, rozšířit …
•… nebo skrytí kanálu. Skryjeme všechny kanály, které nepoužijeme.
Krok 10: Konfigurace prostředí pro naše testy
Kliknutím na šipky tlačítka „Start“se zobrazí možnosti Sampling Rate a doba záznamu.
Pokud z nějakého důvodu software zjistí, že rychlost nelze udržovat, zobrazí se zpráva a rychlost se automaticky sníží, dokud není dosaženo funkční hodnoty.
Krok 11: Konfigurace prostředí pro naše testy
Zahrneme také analyzátory protokolů. Nejprve je to I2C, postupuje podle definic knihovny WIRE a správně přiřazuje kanály. Nakonec představíme analyzátor asynchronnímu sériovému číslu. Musíme být opatrní, abychom správně nakonfigurovali parametry podle sestavy.
Krok 12: Konfigurace prostředí pro naše testy
Na kartě „Dekódované protokoly“bychom měli zkontrolovat, které analyzátory protokolů jsou povoleny. Tam se zobrazí data. Na kartě „Anotace“můžeme přidat některé výsledky pro lepší vizualizaci. Stačí kliknout na ikonu „přidat měření“.
Krok 13: Zachycení: Přehled
Na obrazovce zachycení program zobrazí sled datových pulzů SDA, SCL a TX0.
Krok 14: Zachycení: Výsledek analýzy protokolu
Zde vidíme výsledek zajetí. Na kartě „Dekódované protokoly“máme:
• Požadavek serveru na slave s ID 8.
• Odpověď otroka, šest znaků: „t“, „e“, „s“, „t“, „e“a mezera.
• Za každým následuje bit ACK (Acknowledge) indikující správný příjem bajtů, kromě znaku mezery NACK (Not Acknowledge).
• Dále vidíme výsledek dekódování seriálu TX0, který označuje znaky přijaté a odeslané na sériový terminál Arduino IDE.
Krok 15: Zachycení: kanál 0 a data (SDA)
Na tomto obrázku máme sled pulsů linie SDA. Všimněte si, že každý přenesený bajt lze zobrazit.
Krok 16: Zachycení: kanál 1 a hodiny (SCL)
Nyní tu máme sled pulsů linky SCL. Další podrobnosti můžete zkontrolovat jednoduše umístěním myši nad signál, jak vidíte na obrázku. Vidíme, že taktovací frekvence byla 100 kHz.
Krok 17: Capture: Channel 2 and Serial (TX0)
Pokud jde o sled impulsů linky TX0, můžeme vidět počáteční bit a body rámce každého bitu. Máme bajt představující znak "e."
Krok 18: Konfigurace prostředí pro naše testy
Zde máme několik možností pro čtení dat.
Krok 19: Zachycení: osciloskop a analyzátor
Podívejte se sem na obrazovku, kterou jsem zachytil ze svého osciloskopu. Signál logického analyzátoru představuje pouze detekci vysokých a nízkých hodnot, ale nepředstavuje kvalitu signálu. To lze nejlépe pozorovat na osciloskopu.
Krok 20: Zachycení: Pozorování selhání (příklad sériového selhání)
Nyní ukážu příklad sériového selhání, které se mi skutečně stalo. Byl jsem s GPRS modemem, typem používaným na mobilním telefonu, na SIM kartě a pokoušel jsem se připojit k ESP32. Ale prostě se to nepřipojilo. Poté jsem zkontroloval napájecí zdroj, zapojení a vyměnil desku. Udělal jsem všechno, ale nic to nevyřešilo. Rozhodl jsem se provést logickou analýzu: zjistil jsem, že signál ESP na UART 115200 se začal neshodovat. To znamená, že ESP32 hrál to, co by mělo být 115, 200, jinou rychlostí než je tato.
Tato chyba, která byla identifikována analyzátorem, byla zobrazena s X červeně. V mém chápání program říká, že bod, který má takový kousek, je napůl posunut v čase. Jak tento posun narůstá, může přijít čas, kdy je vše v nesouladu, takže se informace nedostanou na druhou stranu. Obvykle dorazí, ale SIM800 je citlivý, a pokud není přesný, informace se nedostanou na druhý konec.
Nevím, jestli se to děje často nebo ne, ale stalo se mi to, a tak jsem se rozhodl tomuto tématu věnovat zde. Co jsem tedy udělal? Zpomalil jsem. Pokud vložíte 9, 600, 19, 200, až 38, 400, funguje to, což se u 115, 200 nevyskytuje.
Krok 21: Stáhněte si soubory
INO
Doporučuje:
Vytvořte digitální logický analyzátor za méně než 1: 5 kroků
Vytvořte digitální logický analyzátor za méně než 1 $: Logický snímač hladiny je zařízení, které snímá, zda je výstup komponenty 1 nebo 0 (kladný nebo záporný). Znáte ty pěkné snímače hladiny s LCD obrazovkami, které stojí kolem 25 dolarů? Tenhle je směšně levnější a dělá totéž (
Logický tester čipů Raspberry Pi: 4 kroky
Logický čipový tester Raspberry Pi: Jedná se o skript logického testeru pro Raspberry pi, pomocí kterého můžete zkontrolovat, zda váš (vlastní) logický obvod funguje. Tento skript lze také použít k testování relé. VAROVÁNÍ: Raspberry pi ne podpora 5v GPIO vstupů, takže pokud váš obvod výstupy 5V, yo
Jednoduchý logický převodník pro zařízení 3,3 V: 4 kroky
Jednoduchý logický převodník pro zařízení 3.3V: V tomto příspěvku vám ukážu, jak si můžete vytvořit vlastní logický převodník 5V na 3,3V pro připojení 5V senzorů k novým deskám Arduino a Raspberry Pi. Proč potřebujeme IC Converter logické úrovně ? Většina z vás ráda hraje s Arduino a Raspberry Pi duri
Logický analyzátor s uživatelským rozhraním Android: 7 kroků
Logický analyzátor s uživatelským rozhraním Android: Svět je již zaplaven tolika logickými analyzátory. Při svém elektronickém koníčku jsem potřeboval jeden pro řešení problémů a ladění. Hledal jsem na internetu, ale nenašel jsem ten, který hledám. Tak a jsem tady, představuji … & YET další Lo
DIY zábavný logický obvod ovládání zvuku pouze s rezistory kondenzátory Tranzistory: 6 kroků
DIY zábavný logický obvod ovládání zvuku pouze s rezistory Kondenzátory Tranzistory: V dnešní době existuje vzestupný trend v navrhování obvodů s integrovaným obvodem (IC), mnoho funkcí bylo třeba realizovat analogovými obvody za starých časů, ale nyní je může plnit také IC že je stabilnější, pohodlnější a snadnější