Na debugování datových sběrnic, Arduina a celkově elektroniky je dobrý mít kromě obyčejného multimetru, nějakého osciloskopu i logický analyzátor. Další užitečné „nástroje“ mohou být převodník RS232-USB a RS485-USB v kombinaci s terminálem.
Pokud je potřeba změřit jedno stabilní napětí je možné použít obyčejný multimetr. Pro měření proměnné úrovně napětí (analog) a rychlých dějů je možné použít osciloskop, např. jednoduchý Osciloskop DSO138 z Číny. Pokud ale potřebujeme odposlechnout komunikaci na nějaké sběrnici, kde se logická hodnota mění pouze mezi dvěma napěťovými úrovněmi (většinou 0 a 3,3, nebo 5 V), je možné s výhodou použít logický analyzátor.
V Číně je možné zakoupit levný osmikanálový logický analyzátor za nějakých 150 Kč. Většinou nemá konkrétní jméno, ale jde najít ve vyhledávání při zadání Logic-Analyzer. Údajně jde o kopii logického analyzátoru firmy Saleae. Je tedy možné stáhnout program od téže firmy na jejich stránce. Analyzátor má osm digitálních vstupů, které lze připojit k libovolným 3,3/5V signálům, sběrnicím a podobně.
Výhoda je možnost záznamu až osmi linek zároveň, měření přesných časových rozestupů a délek signálů, frekvenci, dekódování známých datových sběrnic a podobně. Analyzátor má vnitřní paměť do které nahraje určitý počet samplů (vzorků). Počet vzorků a maximální frekvence se liší v závislosti na použitém analyzátoru a počtu použitých vstupů. Samozřejmě i na nastavení. Po dokončení záznamu se data přehrají do počítače, kde lze signály analyzovat softwarem.
Na vstupu analyzátoru je bus transiever 74HC245. Signály jsou poté přivedeny na vstupy mikrokontroléru CY7C68013A který signály dále zpracovává.
Software Saleae Logic je uživatelsky jednoduchý program. V levé části programu jsou jednotlivé kanály záznamu, uprostřed je vizualizace zaznamenaných dat a v pravé části nástroje pro analýzu zaznamenaných dat. Kliknutím na šipky vedle tlačítka „Start“ (případně „Start Simulation“, pokud není připojen analyzátor) se nastaví typ analyzátoru, potřebná rychlost záznamu, délka záznamu a počet použitých kanálů. Každý z kanálů lze zvolit jako trigger (náběžná hrana, sestupná hrana, impuls), analyzátor potom čeká na potřebný signál a teprve poté začne zaznamenávat. Zaznamenaný signál se poté přenese do počítače, kde je možné ho prozkoumat. Najetím na signál se zobrazí délka a vypočítaná frekvence.
Asi nejzajímavější funkcí je dekódování sběrnice. V záložce Analyzers se tlačítkem (+) přidá potřebný typ sběrnice. Dále je potřeba zvolit vstupy ze kterých bude sběrnice načítána. Po načtení dat jsou v záložce Decoded Protocols zobrazena dekódovaná data. Samozřejmě záleží na aplikaci, co se se zjištěnými daty bude dále dít. Pokud např. čidlo posílá data zakódované, je stejně nutné nějaké jejích následné zpracování. Ale určitě je dobré vidět „co je pod pokličkou“.
Na obrázku výše lze vidět načtená data (ze simulace). Kanál 0 slouží jako trigger na náběžnou hranu. Na kanálu 0 a 1 je „připojena“ sběrnice I2C (včetně jejího dekódování). Na kanály 2, 3, 4 a 5 je „připojena“ sběrnice SPI. Jednotlivá data jsou téže dekódována (je možné signál přiblížit). Na kanálu 5 je vidět délka logických stavu 0 a 1 a vypočítané frekvence. Kanály 6 a 7 jsou další digitální signály bez dalšího přiřazení. Program samotný je docela intuitivní, případně lze na stránkách výrobce nalézt podrobnou nápovědu.
- Napájecí napětí: 5 V (napájeno přes USB)
- Počet kanálů: 8 (digitální TTL)
- Vzorkovací frekvence: max. 24 HMz
Přesně ten mam taky 🙂 paráda za pár korun.
Jinak do novýho roku taky ať se daří a tak 😉
Peťan: Jo, jo, párkrát jsem ho už použil. Dobrá hračka. Taky vše nej 😉