Zaawansowane pomiary magistral szeregowych
Magistralą szeregową zwykle są przesyłane duże ilości danych. Nie zawsze jednak muszą być one poddawane analizie w całości. Dysponując dużym rekordem można w nim zapisywać długie bloki transmitowanych danych, a następnie za pomocą funkcji wyszukiwania odnajdywać nawet pojedyncze bajty (słowa) danych. Komplementarną metodą jest ustawienie warunku wyzwolenia tak, żeby żądany fragment od razu znajdował się w okolicy punktu wyzwolenia. W opcjach wyzwalania należy wówczas wybrać tryb A Event, a następnie zdefiniować zdarzenie wyzwalające. Może nim być: bit startu, koniec pakietu, dana o wprowadzonej przez użytkownika wartości lub błąd parzystości. Przykład takiego wyzwolenia przedstawiono na rys. 6. Warunkiem wyzwolenia było w tym przypadku przesłanie magistralą szeregową bajtu o wartości 54H, odpowiadającego znakowi „T”. Zaawansowane techniki dekodowania, a także wyzwalania i wyszukiwania są dostępne po zainstalowaniu opcji SR-COMP.
Rys. 6. Okno definiowania warunku wyzwolenia
Często zdarza się, że analizie należy poddać kilka punktów, rozrzuconych w wielu miejscach bloku danych. W takim przypadku najlepszym rozwiązaniem jest zastosowanie jednorazowego wyzwolenia, a następnie przechodzenie do kolejnych punktów z użyciem funkcji wyszukiwania. Obsługa menu wyszukiwania po wybraniu opcji Bus jest bardzo podobna do menu wyzwalania. Wyszukiwanie jest dodatkowo wspomagane przyciskami znajdującymi się na płycie czołowej oscyloskopu.
Pomiary interfejsu I2C i SPI
Opisana wcześniej filozofia badania magistrali szeregowej UART, RS-232/422/485 ma zastosowanie również w przypadku innych interfejsów szeregowych. Drobne różnice wynikają z odmiennych rozwiązań układowych i różnych protokołów. W magistralach takich jak I2C czy SPI występują inne linie sterujące, w protokole uwzględniane jest adresowanie urządzeń. W magistrali I2C dane są transmitowane w obie strony tylko jedną linią, stąd konieczne jest rozróżnienie urządzeń master i slave. Magistralą zarządza tylko master, który może komunikować się z wieloma urządzeniami slave. W ramce transmisyjnej pojawia się więc kilka dodatkowych bitów sygnalizacyjnych, takich jak: bit kierunku transmisji (RW), bit potwierdzenia odebrania danej (ACK). Bezpośrednio po bicie startu jest przesyłany adres urządzenia, do którego są kierowane dane. Przykładową ramkę transmisyjną magistrali I2C przedstawiono na rys. 7. W każdym z interfejsów UART, RS-232/422/485 oraz I2C i SPI zastosowano różne rozwiązania układowe. Dokładne badanie magistral I2C i SPI oscyloskopem MSO5204 jest możliwe po zainstalowaniu w nim opcji SR-EMBD. W pomiarach będą wykorzystywane, co najmniej dwa kanały, co wynika z istnienia w magistralach I2C i SPI linii danych i zegarowej.
Rys. 7. Przykładowa ramka transmisyjna magistrali I2C
Włączenie opcji Bus powoduje wyświetlenie pod przebiegiem magistrali dodatkowego wykresu czasowego przedstawiającego interpretację zarejestrowanych zdarzeń. Każdy rodzaj zdarzenia jest zaznaczany na ekranie innym kolorem. Uwzględniana jest także wartość liczbowa odebranej danej (rys. 8).
Rys. 8. Kodowanie kolorami zdarzeń wykrytych na magistrali I2C
Zdarzeniami wyzwalającymi oraz objętymi funkcją wyszukiwania dla magistrali I2C są: Start, Stop, Repeat Start, Missing Ack, Address (7 lub 10 bitowy), Data (1…5 bajtów), Address&Data i Special Address.
Do badania interfejsu SPI zalecane jest stosowanie 3 kanałów pomiarowych dołączanych do linii: SCLK, SS i Data. Ze względu na różne wersje interfejsu SPI należy odpowiednio określać polaryzację każdego sygnału, a także wskazać rodzaju aktywnych zboczy (rys. 9). Do debugowania magistrali SPI są wykorzystywane dowolne sygnały interfejsu, a także zdefiniowana przez użytkownika dana przesyłana linią Data. Domyślnym zdarzeniem wyzwalającym jest pojawienie się aktywnego stanu na linii SS.
Rys. 9. Okno definiowania parametrów magistrali I2C