Spisu treści:
- Krok 1: Montaż
- Krok 2: Użyte funkcje - serwer
- Krok 3: Użyty obwód
- Krok 4: Kod źródłowy: Master
- Krok 5: Kod źródłowy: Slave
- Krok 6: Analizator: sprzęt
- Krok 7: Instalacja oprogramowania Saleae
- Krok 8: Konfiguracja środowiska do naszych testów
- Krok 9: Konfiguracja środowiska do naszych testów
- Krok 10: Konfiguracja środowiska do naszych testów
- Krok 11: Konfiguracja środowiska do naszych testów
- Krok 12: Konfiguracja środowiska do naszych testów
- Krok 13: Przechwytywanie: przegląd
- Krok 14: Przechwytywanie: wynik analizy protokołu
- Krok 15: Przechwytywanie: kanał 0 i dane (SDA)
- Krok 16: Przechwytywanie: kanał 1 i zegar (SCL)
- Krok 17: Przechwytywanie: kanał 2 i szeregowy (TX0)
- Krok 18: Konfiguracja środowiska do naszych testów
- Krok 19: Przechwytywanie: oscyloskop i analizator
- Krok 20: Przechwytywanie: Obserwacja awarii (przykład awarii seryjnej)
- Krok 21: Pobierz pliki
Wideo: Otwórz oczy! Analizator logiczny: 21 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Analizator stanów logicznych ułatwia wizualizację ciągu impulsów, czyli bitów przemieszczających się w linii komunikacyjnej. W ten sposób otwiera oczy, aby zidentyfikować możliwy problem. Dlaczego to jest ważne? Jest to bardzo wydajne narzędzie do programowania i wykrywania błędów, które pozwala zaoszczędzić czas. W tym filmie dzisiaj ocenimy znaczenie analizatora logicznego, przyjrzymy się niektórym protokołom typowych praktyk podczas korzystania z tego urządzenia i zilustrujemy awarię wykrywania bez pomocy analizatora logicznego.
W tym filmie użyłem stosunkowo niedrogiego (około 35 USD) i wydajnego modelu, z interfejsem graficznym i bezpłatnym oprogramowaniem.
Krok 1: Montaż
Krok 2: Użyte funkcje - serwer
• Zworki do połączeń
• 2 Arduino (użyliśmy 2 Mega Arduino 2560)
• Analizator logiczny (używamy Saleae)
• Kable połączeniowe USB do Arduino i analizatora.
• Oscyloskop (opcjonalnie)
• Płyta prototypowa
Krok 3: Użyty obwód
Tutaj mamy schemat, który pokazuje monitorowanie trzech pinów: TX0, SDA i SCL. Mamy dwa Arduino: master i slave.
Krok 4: Kod źródłowy: Master
W Setup włączymy bibliotekę do komunikacji i2c. Weszliśmy do sieci jako Master i zainicjalizowaliśmy serial 0. W pętli poprosiliśmy o bajty danych slave do komunikacji z naszym Arduino numer 8, jak zdefiniowaliśmy w przykładzie. Drukujemy w serialu, który zostanie przeanalizowany przez analizator stanów logicznych, otrzymane bajty.
#include //dołącz bibliotekę do komunikacji 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);// wymaga 6 bytes de dados do escravo de endereço 8 while (Wire.available()) { // enquanto houver bytes para receber… char c = Drut.odczyt(); // odbierz cada byte e armazena como caracter Serial.print(c); // envia o caracter pela serial (na verdade vai para o buffer) } delay(500); //aguarda meio drugi }
Krok 5: Kod źródłowy: Slave
W tym kodzie slave ponownie włączam bibliotekę do komunikacji i2c. Wchodzę do sieci jako slave o adresie 8. Rejestrujemy zdarzenie żądania i kojarzymy je z funkcją „żądanie”. Nie musisz nic robić na pętli, po prostu daj opóźnienie 0,1 sekundy.
Wreszcie mamy funkcję żądania, która zostanie wykonana, gdy wystąpi zdarzenie żądania przez Master, które zostało zarejestrowane w Setup. W końcu odpowiadamy wiadomością o długości 6 bajtów.
#include //dołącz biblioteczkę komunikacji 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); //nie faz nada no loop, apenas aguarda 0, 1 segundo } //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 "); // odpowiedź com uma mensagem de 6 bajtów }
Krok 6: Analizator: sprzęt
Częstotliwość próbkowania do: 24 MHz
Logika: 5 V do 5,25 V
Próg niskiego poziomu 0,8 V
Próg wysokiego poziomu 2,0 V
Impedancja wejściowa około 1 MΩ lub więcej
Krok 7: Instalacja oprogramowania Saleae
Program odbierający dane przechwycone przez analizator stanów logicznych i dekodujący bity można pobrać pod następującym linkiem:
Krok 8: Konfiguracja środowiska do naszych testów
Pokazuję tutaj interfejs, który szczególnie mi się spodobał, bo był czysty.
Krok 9: Konfiguracja środowiska do naszych testów
Oto kilka opcji konfiguracji:
• Klikając na nazwę kanału, możemy ją zmienić.
• Możemy określić, czy jeden z kanałów będzie służył jako wyzwalacz do przechwytywania i formę detekcji.
• Klikając i przytrzymując numer kanału, możesz zmienić swoją pozycję na liście.
• Klikając w koło zębate możemy skonfigurować wizualizację kanału, rozwijając…
• … lub ukrywanie kanału. Ukryjemy wszystkie kanały, z których nie będziemy korzystać.
Krok 10: Konfiguracja środowiska do naszych testów
Klikając na strzałki przycisku „Start”, dostępne są opcje częstotliwości próbkowania i czasu trwania nagrania.
Z jakiegoś powodu, jeśli oprogramowanie wykryje, że nie można utrzymać dawki, zostanie wyświetlony komunikat i dawka zostanie automatycznie zmniejszona, aż do osiągnięcia wartości funkcjonalnej.
Krok 11: Konfiguracja środowiska do naszych testów
Dołączymy również analizatory protokołów. Najpierw jest to I2C, podążający za definicjami biblioteki WIRE i poprawnie kojarzący kanały. Na koniec wprowadzimy analizator do asynchronicznego połączenia szeregowego. Musimy uważać, aby poprawnie skonfigurować parametry zgodnie z montażem.
Krok 12: Konfiguracja środowiska do naszych testów
W zakładce „Decoded Protocols” powinniśmy sprawdzić, które analizatory protokołów są włączone. Tam pojawią się dane. W zakładce „Adnotacje” możemy dodać niektóre wyniki dla lepszej wizualizacji. Wystarczy kliknąć ikonę „dodaj pomiar”.
Krok 13: Przechwytywanie: przegląd
Na ekranie przechwytywania program wyświetla ciąg impulsów danych SDA, SCL i TX0.
Krok 14: Przechwytywanie: wynik analizy protokołu
Tutaj widzimy wynik przechwycenia. W zakładce „Dekodowane protokoły” mamy:
• Żądanie serwera dla urządzenia podrzędnego o identyfikatorze 8.
• Odpowiedź slave, sześć znaków: "t", "e", "s", "t", "e" i spacja.
• Po każdym następuje bit ACK (Acknowledge) wskazujący na prawidłowy odbiór bajtów, z wyjątkiem znaku spacji NACK (Not Acknowledge).
• Następnie widzimy wynik dekodowania szeregowego TX0, wskazując znaki odebrane i wysłane do terminala szeregowego Arduino IDE.
Krok 15: Przechwytywanie: kanał 0 i dane (SDA)
Na tym obrazie mamy ciąg impulsów linii SDA. Zauważ, że każdy przesłany bajt może być przeglądany.
Krok 16: Przechwytywanie: kanał 1 i zegar (SCL)
Teraz mamy tu ciąg impulsów linii SCL. Możesz sprawdzić więcej szczegółów, po prostu umieszczając mysz nad sygnałem, jak widać na obrazku. Widzimy, że częstotliwość zegara wynosiła 100 kHz.
Krok 17: Przechwytywanie: kanał 2 i szeregowy (TX0)
Jeśli chodzi o ciąg impulsów linii TX0, możemy zobaczyć bit Start i punkty obramowania każdego bitu. Mamy bajt reprezentujący znak „e”.
Krok 18: Konfiguracja środowiska do naszych testów
Tutaj mamy kilka opcji odczytu danych.
Krok 19: Przechwytywanie: oscyloskop i analizator
Spójrz tutaj na ekran, który przechwyciłem z mojego oscyloskopu. Sygnał analizatora logicznego reprezentuje tylko detekcje wysokie i niskie, ale nie reprezentuje jakości sygnału. Najlepiej można to zaobserwować na oscyloskopie.
Krok 20: Przechwytywanie: Obserwacja awarii (przykład awarii seryjnej)
Teraz pokażę przykład seryjnej awarii, która mi się przydarzyła. Byłem z modemem GPRS, takim jak używany w telefonie komórkowym, kartą SIM, próbując połączyć się z ESP32. Ale to się po prostu nie łączyło. Następnie sprawdziłem zasilanie, okablowanie i wymieniłem płytkę. Zrobiłem wszystko, ale nic tego nie naprawiło. Postanowiłem włożyć analizę logiczną: odkryłem, że sygnał ESP na UART 115200 zaczął się nie zgadzać. Oznacza to, że ESP32 grał to, co powinno być 115, 200 z inną prędkością niż ta.
Ten błąd, który został zidentyfikowany przez parser, był wyświetlany z X na czerwono. W moim rozumieniu program mówi, że punkt, który ma taki bit jest przesunięty w czasie do połowy. Wraz ze wzrostem tej zmiany może nadejść czas, kiedy wszystko jest niedopasowane, tak że informacje nie docierają na drugą stronę. Zwykle przychodzi, ale SIM800 jest wrażliwy i jeśli nie jest dokładny, informacja nie dociera na drugi koniec.
Nie wiem, czy zdarza się to często, czy nie, ale mi się to przydarzyło, więc postanowiłem poruszyć ten temat tutaj. Więc co zrobiłem? Zwolniłem. Jeśli umieścisz 9, 600, 19, 200, do 38, 400, to działa, co nie występuje przy 115, 200.
Krok 21: Pobierz pliki
JA NIE
Zalecana:
Analizator logiczny z interfejsem użytkownika Androida: 7 kroków
Logic Analyzer z interfejsem użytkownika Android: Świat jest już zalany tak wieloma analizatorami stanów logicznych. W moim hobby elektronicznym potrzebowałem go do rozwiązywania problemów i debugowania. Przeszukałem internet, ale nie mogę znaleźć tego, którego szukam. A więc oto jestem, przedstawiając… „JESZCZE inny Lo
Otwórz komputer nawigacji Apollo DSKY: 13 kroków (ze zdjęciami)
Open Apollo Guidance Computer DSKY: dumny z bycia wyróżnionym instruktorem od 1.10.18. Zagłosuj na nas i polub nas! Kampania na Kickstarterze była super sukcesem! Open DSKY KickstarterNasze Open DSKY jest obecnie dostępne na Backerkit (https://opendsky.backerkit.com/hosted_preorders) i
DIY Zabawny obwód logiczny sterowania dźwiękiem z tylko rezystorami Kondensatory Tranzystory: 6 kroków
DIY Zabawny obwód logiczny sterowania dźwiękiem z tylko rezystorami Kondensatory Tranzystory: W dzisiejszych czasach istnieje trend wzrostowy w projektowaniu obwodów z układem scalonym (układ scalony), wiele funkcji musiało być realizowanych przez obwody analogowe w dawnych czasach, ale teraz może być również spełniony przez układ scalony że jest bardziej stabilny, wygodny i łatwy do
HestiaPi Touch - Otwórz inteligentny termostat: 9 kroków (ze zdjęciami)
HestiaPi Touch - Otwórz inteligentny termostat: O HestiaPi TouchHestiaPi Touch to całkowicie otwarty inteligentny termostat do Twojego domu. Wszystkie pliki i informacje cyfrowe są dostępne poniżej oraz na naszej głównej stronie internetowej.Dzięki niemu możesz monitorować temperaturę w domu, wilgotność względną i atmos
Otwórz i wyczyść drukarkę Canon Pixma IX6550: 5 kroków
Otwórz i wyczyść drukarkę Canon Pixma IX6550: Kupiłem tę drukarkę A3 w 2011 roku i nawet poduszka pochłaniacza atramentu jest pełna, nie chcę jej zrzucać. Więc otwórzmy i wyczyśćmy