blogy logo
login PRIHLÁS SA
BLOG deadawp
ČLÁNKY
DISKUSIE
2
SLEDOVAŤ BLOG
Programátor
deadawp



Logický analyzátor 24 MHz / 8 kanálov
pridal deadawp 7.2. 2025 o 14:53 (naposledy upravené 8.2. 2025 o 1:21)

Logický analyzátor je prístroj podobný osciloskopu s tým rozdielom, že neskúma analógové signály, ale tie digitálne. Napäťový rozsah 2V až 5V určuje logickú úroveň 1 a -0.5V až 0.8V určuje logickú 0. Toto platí pre konkrétny hardvér, ktorý som použil a to klon Saleae analyzéra, ktorý však funguje so Saleae oficiálnym softvérom Logic 2 aj bez potreby prehrávania EEPROM pamäte.

Logický analyzátor nájde využitie predovšetkým pri vývoji elektronických digitálnych systémov. Jedným z dôležitých využití je aj možnosť používania pre reverzné inžinierstvo a reverznú analýzu už jestvujúcich systémov. Predstavme si to bližšie na príklade zariadenia, ktoré komunikuje cez AT príkazy. Toto zariadenie komunikuje s určitým baudratom a môže využívať aj paritné bity či rôzny počet stop bitov pri komunikácii. Práve na toto je logický analyzátor vhodný, keďže ho dokáže vyčítať.

Podobný projekt som už na blogu opisoval, ktorý sa zaujímal o hacking kozmetického prístroja, ktorý komunikoval po RS232 a bolo nutné overiť, aký príkaz posiela pripojená hlava (aplikátor) pre spustenie programu, ktorý bol však časovo limitovaný. Vďaka tomu bolo možné vytvoriť si medzikus, ktorý umožnil prístroj používať neobmedzene bez potreby. Skrz logický analyzátor sa zistilo, že prístroj s hlavou komunikuje s rýchlosťou 28800 baud/s a aplikátor sa identifikuje svojim 12-znakovým číselným kódom, ktorý spustí logiku, ktorú obsluhoval procesor na strane prístroja.Komunikácia používala 8 dátových bitov, bez paritných bitov, 1 stop bit - 8-N-1 (klasický UART prenos). Vtedy som ale analyzátor nepoužíval priamo ja, ale zákazník, ktorý chcel na základe týchto dát vytvoriť program pre medzikus, čo sa aj podarilo a spokojne ho používal.


Dnes som sa dostal do situácie, že som nevedel, s akým baudratom komunikuje modul cez UART s AT príkazmi. Vyskúšal som teda logický analyzátor sám a na 2 kanály som si pripojil UART linku. Vedel som, že po spustení modul vypíše ATREADY. Zapojil som napájanie modulu a čakal, čo mi v Logicu 2 vypíše monitor príslušného kanála na TX porte. Našiel som sekciu, kde nastala zmena signálu

Priblížil som si sekciu s najkratšie trvajúcim vrcholom (logickou 1), čo som prepokladal, že bude zrejme 1 bit. Ako je v detaile viditeľné, trvanie tohto signálu predstavuje po zaohrúhlení softvérom 8,667 us (mikrosekúnd). Ak si túto hodnotu prerátame na baudrate, získame B = 1/8,667x10-6 Tento výpočet odpovedá 115384 baud/s, ak to zaokrúhlime na štandardné rýchlosti, tak je to najbližšie k 115200 baud/s, zaokrúhlenie na strane Logicu 2 trochu meranie skreslilo, ale je to dostatočné pre odhad rýchlosti. Môžeme tak prepokladať, že sme touto analýzou dospeli k záveru, že baudrate je 115200 baud/s.

Skúsime ešte inú metódu, aby sme si to definitívne potvrdili. V softvéri Logic 2 nastavíme Analyzátor zbernice skrz "Add Analyzer", vyberieme zbernicu Async Serial. Vyberieme si kanál a požadovaný baudrate a štandardné nastavenia ako bez paritného bitu, 1 stop bit a 8 dátových bitov. Pre ukážku som dal 1 analyzátor s baudrate 115200 (zelenkastá farba) a druhý s 38400 baud/s (červená farba).

Pri prezeraní signálu môžeme vidieť, že prvý prepokladaný baudrate nám zobrazuje text, ktorý predstavuje signál (výpis AT príkazu potvrdzujúceho zapnutie + signály nového riadka a pod.) a v prípade baudratu 38400 môžeme pozorovať výpisy framing error, čo predstavuje nesprávnu štruktúru prijatého rámca, inými slovami, baudrate nesedí a ak by sme si poreli serial monitor, videli by sme tam s najväčšou pravedpodobnosťou "rozsypaný čaj".


Podobne je viditeľný aj výpis po pokuse o inicializáciu SIM karty s rozdielnými buadrate rýchlosťami:
 

Je vzorkovacia frekvencia 24 MHz dostatočná?
Pre drtivú väčšinu vývojárov určite. Bežne sa stretávame napríklad s I2C zbernicami, ktoré pracujú s hodinovým signálom 100 kHz (Standard speed), alebo 400 kHz (Fast speed). U Arduina sa stretávame s maximálnou rýchlosťou SPI zbernice 8 MHz, čo stále stačí pokrývať aj tento klon Saleae analyzátora. ESP32 dokáže SPI zbernicu prevádzkovať až na 80 MHz, čo by už tento konkrétny logický analyzátor nestíhal vzorkovať, určite by bolo otázne aj to, ako spoľahlivo by fungoval pri signáli 24 MHz, netestoval som, možno do budúcna pri riešení SPI zberníc s viacerými Chip select pinmi.



Prístupov 583
Kvalita článku
hlasov 0

PRÍSPEVKY
SLEDOVAŤ
Prosím prihláste sa pre možnosť pridania komentáru.
Prihláste sa, alebo použite facebook login facebook login
ĎALŠIE ČLÁNKY V BLOGU
EBYTE E32-433T20D s dosahom až 3 km?
[ 19.2.2025] (príspevkov 0)
HTTP POST request - SIMCom A7670E
[ 9.2.2025] (príspevkov 0)
Logický analyzátor 24 MHz / 8 kanálov
[ 7.2.2025] (príspevkov 0)
Google Spreadsheet ako databáza
[ 6.2.2025] (príspevkov 0)
NFC hudobný systém pre Escape room
[ 31.1.2025] (príspevkov 0)
Metódy nastavenia času pre RTC
[ 27.1.2025] (príspevkov 0)
Kamencové jazero - monitorovanie hladiny...
[ 19.1.2025] (príspevkov 0)
Úpravy QR skenera - Instascan HTML5
[ 14.1.2025] (príspevkov 0)
Tester vstrekovačov s IRF520
[ 9.1.2025] (príspevkov 0)
ESPlan - PHY Ethernet termostat
[ 31.12.2024] (príspevkov 0)