Turinys:
- 1 žingsnis: Surinkimas
- 2 veiksmas: naudojamos funkcijos - serveris
- 3 žingsnis: naudojama grandinė
- 4 žingsnis: šaltinio kodas: pagrindinis
- 5 žingsnis: šaltinio kodas: vergas
- 6 žingsnis: analizatorius: aparatinė įranga
- 7 žingsnis: „Saleae“programinės įrangos diegimas
- 8 žingsnis: Aplinkos konfigūravimas mūsų bandymams
- 9 žingsnis: Aplinkos konfigūravimas mūsų bandymams
- 10 žingsnis: Aplinkos konfigūravimas mūsų bandymams
- 11 žingsnis: Aplinkos konfigūravimas mūsų bandymams
- 12 žingsnis: Aplinkos konfigūravimas mūsų bandymams
- 13 veiksmas: fiksavimas: apžvalga
- 14 žingsnis: fiksavimas: protokolo analizės rezultatas
- 15 veiksmas: fiksavimas: 0 kanalas ir duomenys (SDA)
- 16 veiksmas: užfiksuokite: 1 kanalas ir laikrodis (SCL)
- 17 veiksmas: fiksavimas: 2 kanalas ir serijinis (TX0)
- 18 žingsnis: Aplinkos konfigūravimas mūsų bandymams
- 19 veiksmas: užfiksuokite: osciloskopas ir analizatorius
- 20 veiksmas: fiksavimas: gedimo stebėjimas (serijos gedimo pavyzdys)
- 21 veiksmas: atsisiųskite failus
Video: Atmerk akis! Loginis analizatorius: 21 žingsnis
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Loginis analizatorius leidžia jums vizualizuoti pulso traukinį, kuris yra bitai, keliaujantys ryšio linija. Taigi jis atveria akis, kad nustatytumėte galimą problemą. Kodėl tai svarbu? Tai labai efektyvus kūrimo ir gedimų aptikimo įrankis, kuris gali sutaupyti jūsų laiko. Šiandien šiame vaizdo įraše įvertinsime loginio analizatoriaus svarbą, stebėsime kai kuriuos įprastos praktikos protokolus, kai naudosime šį įrenginį, ir parodysime aptikimo gedimą be loginio analizatoriaus pagalbos.
Šiame vaizdo įraše naudojau palyginti nebrangų (apie 35 USD) ir efektyvų modelį su grafine sąsaja ir nemokama programine įranga.
1 žingsnis: Surinkimas
2 veiksmas: naudojamos funkcijos - serveris
• Džemperiai jungtims
• 2 „Arduinos“(mes naudojome 2 „Mega Arduinos 2560“)
• Loginis analizatorius (mes naudojame „Saleae“)
• USB jungties kabeliai „Arduino“ir analizatoriui.
• Osciloskopas (neprivaloma)
• Protoboard
3 žingsnis: naudojama grandinė
Čia yra schema, kurioje parodytas trijų kaiščių stebėjimas: TX0, SDA ir SCL. Turime du „Arduinos“: šeimininką ir vergą.
4 žingsnis: šaltinio kodas: pagrindinis
Į sąranką įtrauksime i2c ryšio biblioteką. Mes įėjome į tinklą kaip pagrindinis ir inicijavome serijinį 0. „Loop“mes paprašėme vergų duomenų baitų, kad galėtume bendrauti su mūsų „Arduino“numeriu 8, kaip apibrėžta pavyzdyje. Spausdiname serijoje, kuri bus įvertinta naudojant loginį analizatorių, gautus baitus.
#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); // inicijuoti serijinį 0} void loop () {Wire.requestFrom (8, 6); // requisita 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bytes para receber… char c = Wire.read (); // recebe 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}
5 žingsnis: šaltinio kodas: vergas
Į šį vergo kodą aš vėl įtraukiu i2c ryšio biblioteką. Aš įeinu į tinklą kaip vergas su adresu 8. Mes užregistruojame užklausos įvykį ir susiejame jį su „užklausos“funkcija. Jums nieko nereikia daryti, tiesiog atidėkite 0,1 sekundės vėlavimą.
Galiausiai turime užklausos funkciją, kuri bus vykdoma, kai įvyks pagrindinio užklausos įvykis, kuris buvo užregistruotas sąrankoje. Galiausiai atsakome 6 baitų žinute.
#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); // registracija arba įvykio reikalavimas // e associa à função requestEvent} void loop () {delay (100); // não 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"); // atsakyti com uma mensagem de 6 bytes}
6 žingsnis: analizatorius: aparatinė įranga
Mėginių dažnis iki: 24 MHz
Logika: nuo 5 V iki 5,25 V
Žemo lygio slenkstis 0,8 V
Aukšto lygio slenkstis 2,0 V
Įėjimo varža apie 1 Mohm ar daugiau
7 žingsnis: „Saleae“programinės įrangos diegimas
Programą, kuri priima logikos analizatoriaus užfiksuotus duomenis ir iššifruoja bitus, galima atsisiųsti iš šios nuorodos:
8 žingsnis: Aplinkos konfigūravimas mūsų bandymams
Čia parodau sąsają, kuri man ypač patiko, nes ji buvo švari.
9 žingsnis: Aplinkos konfigūravimas mūsų bandymams
Štai keletas konfigūracijos parinkčių:
• Spustelėję kanalo pavadinimą galime jį pakeisti.
• Galime nustatyti, ar vienas iš kanalų veiks kaip fiksavimo priemonė ir aptikimo forma.
• Spustelėję ir laikydami kanalo numerį, galite pakeisti savo poziciją sąraše.
• Spustelėję krumpliaratį galime sukonfigūruoti kanalo vizualizaciją, išplėsti…
•… arba paslėpti kanalą. Mes paslėpsime visus kanalus, kurių nenaudosime.
10 žingsnis: Aplinkos konfigūravimas mūsų bandymams
Spustelėjus mygtukus „Pradėti“rodykles, yra parinktys Atrankos dažnis ir įrašymo trukmė.
Dėl tam tikrų priežasčių, jei programinė įranga nustato, kad norma negali būti išlaikyta, bus rodomas pranešimas ir automatiškai norma bus sumažinta, kol bus pasiekta funkcinė vertė.
11 žingsnis: Aplinkos konfigūravimas mūsų bandymams
Taip pat įtraukiame protokolo analizatorius. Pirmiausia tai I2C, laikantis WIRE bibliotekos apibrėžimų ir teisingai susiejant kanalus. Galiausiai mes pristatysime analizatorių asinchroninei serijai. Turime būti atsargūs, kad teisingai sukonfigūruotumėte parametrus pagal surinkimą.
12 žingsnis: Aplinkos konfigūravimas mūsų bandymams
Skirtuke „Iššifruoti protokolai“turėtume patikrinti, kurie protokolų analizatoriai įjungti. Ten pasirodys duomenys. Skirtuke „Anotacijos“galime pridėti keletą rezultatų, kad būtų geriau vizualizuojama. Tiesiog spustelėkite piktogramą „pridėti matavimą“.
13 veiksmas: fiksavimas: apžvalga
Fiksavimo ekrane programa rodo SDA, SCL ir TX0 duomenų impulsų srautą.
14 žingsnis: fiksavimas: protokolo analizės rezultatas
Čia matome užfiksavimo rezultatą. Skirtuke „Iššifruoti protokolai“turime:
• Serverio užklausa vergui, kurio ID yra 8.
• Vergo atsakymas, šeši simboliai: „t“, „e“, „s“, „t“, „e“ir tarpas.
• Po kiekvieno yra ACK bitas (Acknowledge), nurodantis teisingą baitų priėmimą, išskyrus NACK (Not Acknowledge) tarpo simbolį.
• Toliau matome TX0 serijos dekodavimo rezultatą, nurodantį gautus ir į „Arduino IDE“serijos terminalą siunčiamus simbolius.
15 veiksmas: fiksavimas: 0 kanalas ir duomenys (SDA)
Šiame paveikslėlyje mes turime SDA linijos impulsų traukinį. Atminkite, kad galima peržiūrėti kiekvieną perduotą baitą.
16 veiksmas: užfiksuokite: 1 kanalas ir laikrodis (SCL)
Dabar mes turime SCL linijos impulsinį traukinį. Daugiau informacijos galite patikrinti tiesiog užvedę pelę ant signalo, kaip matote paveikslėlyje. Matome, kad laikrodžio dažnis buvo 100 kHz.
17 veiksmas: fiksavimas: 2 kanalas ir serijinis (TX0)
Kalbant apie TX0 linijos impulsinį traukinį, matome pradžios bitą ir kiekvieno bito kadravimo taškus. Turime baitą, simbolizuojantį simbolį „e“.
18 žingsnis: Aplinkos konfigūravimas mūsų bandymams
Čia yra keletas duomenų skaitymo variantų.
19 veiksmas: užfiksuokite: osciloskopas ir analizatorius
Pažiūrėkite čia į ekraną, kurį užfiksavau iš savo osciloskopo. Loginio analizatoriaus signalas atspindi tik didžiausius ir žemiausius aptikimus, tačiau jis neatspindi signalo kokybės. Tai geriausiai galima pastebėti naudojant osciloskopą.
20 veiksmas: fiksavimas: gedimo stebėjimas (serijos gedimo pavyzdys)
Dabar parodysiu serijos gedimo pavyzdį, kuris iš tikrųjų atsitiko man. Bandžiau prisijungti prie ESP32 su GPRS modemu, naudojamu mobiliajame telefone, SIM kortelėje. Bet tiesiog neprisijungė. Tada patikrinau maitinimo šaltinį, laidus ir pakeičiau plokštę. Aš padariau viską, bet niekas to neištaisė. Aš nusprendžiau atlikti loginę analizę: sužinojau, kad ESP signalas UART 115200 pradėjo nesutapti. Tai yra, ESP32 grojo 115, 200 kitu greičiu nei šis.
Ši klaida, kurią nustatė analizatorius, buvo rodoma raudonai X. Mano supratimu, programoje sakoma, kad taškas, turintis tokį bitą, laikui bėgant yra pusiau išstumtas. Kai šis poslinkis didėja, gali ateiti laikas, kai viskas nesutampa, kad informacija nepasiektų kitos pusės. Paprastai jis atvyksta, tačiau SIM800 yra jautrus ir jei jis nėra tikslus, informacija nepasiekia kito galo.
Nežinau, ar tai nutinka dažnai, ar ne, bet taip atsitiko man, todėl nusprendžiau šią temą nagrinėti čia. Taigi ką aš padariau? Sulėtinau greitį. Jei įdėsite 9, 600, 19, 200, iki 38, 400, tai veiks, o tai neįvyksta naudojant 115, 200.
21 veiksmas: atsisiųskite failus
AŠ NE
Rekomenduojamas:
„EZProbe“, EZ430 pagrįstas loginis zondas: 4 žingsniai
EZProbe, EZ430 pagrįstas loginis zondas: tai paprastas loginio zondo projektas, pagrįstas TI EZ430 raktu. 2010 m. rugsėjo mėn. pasinaudojau nemokamu pasiūlymu dėl kelių ez430 iš TI. Jie yra labai patogūs ir įdomūs išbandant mažus kodo fragmentus ir žiūrint, kaip mirksi lemputė. jie turėjo nuo b
Paprastas „pasidaryk pats“loginis keitiklis 3,3 V įrenginiams: 4 žingsniai
Paprastas „pasidaryk pats“loginis keitiklis 3,3 V įrenginiams: šiame įraše aš jums parodysiu, kaip galite sukurti savo 5V į 3,3V loginį keitiklį, kad prijungtumėte 5V jutiklius prie naujų „Arduino“plokščių ir „Raspberry Pi“. Kodėl mums reikia loginio lygio keitiklio IC ? Dauguma iš jūsų mėgsta žaisti su „Arduino“ir „Raspberry Pi duri“
Loginis žaidimas „Stulpeliai“: 5 žingsniai
Loginis žaidimas „Stulpeliai“: Sveiki! Šiandien norėčiau pasidalinti projektu, skirtu sukurti paprastą loginį žaidimą " Stulpeliai ". Tam mums reikia: vieno iš labiausiai prieinamų ir prieinamų SPI ekranų, „Arduino Nano“, TFT skydo, skirto „Arduino Nano“(su kuriuo sujungsime atskirus
„Pasidaryk pats“loginis lygio perjungiklis nuo 5v iki 3,3v: 3 žingsniai
Pasidaryk pats 5v-3.3v loginio lygio perjungiklis: loginis lygio perjungiklis naudojamas perkelti vieną įtampos lygį į kitą, kuris yra būtinas kai kuriems skaitmeniniams lustams veikti. Paimkime pavyzdį, kai norime įkelti eskizą į esp8266-01 naudodami arduino, turime perkelti „arduino“tx logiką į 3.3v
PUZZLE - Arduino loginis žaidimas: 3 žingsniai
PUZZLE - Arduino loginis žaidimas: Sveiki. Norėčiau papasakoti apie paprasto dėlionės " Dėlionės " kūrimo istoriją naudojant „Arduino UNO“ir „TFT-Shield“. Norėdami sukurti žaidimą, man reikėjo šių komponentų: „Arduino UNO“maitinimo adapteris (AC-DC) 6–12 V, skirtas „Arduino UNO Micro“