Բովանդակություն:
- Քայլ 1: Հավաքում
- Քայլ 2: Օգտագործված հնարավորություններ - սերվեր
- Քայլ 3: Օգտագործված միացում
- Քայլ 4: Աղբյուրի կոդը ՝ Վարպետ
- Քայլ 5: Աղբյուրի կոդը ՝ ստրուկ
- Քայլ 6: Վերլուծիչ. Սարքավորումներ
- Քայլ 7: Saleae ծրագրաշարի տեղադրում
- Քայլ 8. Մեր թեստերի համար միջավայրի կազմաձևում
- Քայլ 9. Մեր թեստերի համար միջավայրի կազմաձևում
- Քայլ 10. Մեր թեստերի համար միջավայրի կազմաձևում
- Քայլ 11. Մեր թեստերի համար միջավայրի կազմաձևում
- Քայլ 12. Մեր թեստերի համար միջավայրի կազմաձևում
- Քայլ 13: Նկարահանում. Ակնարկ
- Քայլ 14. Սևեռում. Արձանագրության վերլուծության արդյունք
- Քայլ 15: Նկարահանում. 0 ալիք և տվյալներ (SDA)
- Քայլ 16: Նկարահանում. 1 -ին ալիք և ժամացույց (SCL)
- Քայլ 17: Նկարահանում. 2 -րդ ալիք և սերիալ (TX0)
- Քայլ 18. Մեր փորձարկումների համար միջավայրի կազմաձևում
- Քայլ 19: Նկարահանում. Օսլիոսկոպ և անալիզատոր
- Քայլ 20: Սևեռում. Անհաջողության դիտում (սերիական ձախողման օրինակ)
- Քայլ 21: Ներբեռնեք ֆայլերը
Video: Բացիր աչքերդ! Տրամաբանական անալիզատոր `21 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Տրամաբանական անալիզատորը հեշտացնում է զարկերակային գնացքի ձեր պատկերացումը, որոնք բիթերն են, որոնք շարժվում են կապի գծում: Այսպիսով, այն բացում է ձեր աչքերը `հնարավոր խնդիրը բացահայտելու համար: Ինչու՞ է սա կարևոր: Դա զարգացման և անսարքությունների հայտնաբերման շատ արդյունավետ գործիք է, որը կարող է խնայել ձեր ժամանակը: Այս տեսանյութում մենք այսօր կգնահատենք տրամաբանական անալիզատորի կարևորությունը, կդիտարկենք այս սարքը օգտագործելիս սովորական պրակտիկայի որոշ արձանագրություններ և կնախատեսենք հայտնաբերման ձախողումը ՝ առանց տրամաբանական անալիզատորի օգնության:
Այս տեսանյութում ես օգտագործեցի համեմատաբար էժան (մոտ $ 35) և արդյունավետ մոդել ՝ գրաֆիկական ինտերֆեյսով և անվճար ծրագրակազմով:
Քայլ 1: Հավաքում
Քայլ 2: Օգտագործված հնարավորություններ - սերվեր
• Թռիչքներ միացումների համար
• 2 Arduinos (մենք օգտագործել ենք 2 Mega Arduinos 2560)
• Տրամաբանական անալիզատոր (մենք օգտագործում ենք Saleae)
• USB միացման մալուխներ Arduino- ի և անալիզատորի համար:
• Օսլիլոսկոպ (ըստ ցանկության)
• Protoboard
Քայլ 3: Օգտագործված միացում
Այստեղ մենք ունենք սխեմատիկ, որը ցույց է տալիս երեք կապի մոնիտորինգը `TX0, SDA և SCL: Մենք ունենք երկու Արդուինոս ՝ տեր և ստրուկ:
Քայլ 4: Աղբյուրի կոդը ՝ Վարպետ
Setup- ում մենք կներառենք գրադարանը i2c հաղորդակցության համար: Մենք մուտք գործեցինք ցանց որպես Master և նախաստորագրեցինք սերիան 0. Loop- ում մենք պահանջեցինք ստրուկ տվյալների բայթեր մեր Arduino 8 համարի հետ հաղորդակցության համար, ինչպես դա սահմանել ենք օրինակում: Մենք տպում ենք սերիալում, որը կգնահատվի տրամաբանական անալիզատորով, ստացված բայթերը:
#ներառել // ներառել biblioteca para comunicação I2C void setup () {Wire.begin (); // Entra na redde como Mestre (endereço é opcional para o mestre) Serial.begin (115200); // inicia մի սերիական 0} void loop () {Wire.requestFrom (8, 6); // requisita 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto hourver bytes para receber… char c = Wire.read (); // Recebe cada byte e armazena como caracter Serial.print (c); // envia o caracter pela սերիալ (na verdade vai para o buffer)} ուշացում (500); // ագուարդա մեյո սեգունդո}
Քայլ 5: Աղբյուրի կոդը ՝ ստրուկ
Այս ստրուկի ծածկագրում ես կրկին ընդգրկում եմ i2c հաղորդակցության գրադարանը: Ես մտնում եմ ցանց ՝ որպես ստրուկ ՝ հասցեով 8. Մենք գրանցում ենք հարցման իրադարձությունը և այն կապում «խնդրանք» գործառույթի հետ: Անհրաժեշտ չէ որևէ բան անել հանգույցի վրա, պարզապես տվեք 0.1 վայրկյան ուշացում:
Վերջապես, մենք ունենք հարցման գործառույթ, որը կկատարվի, երբ տեղի ունենա Master- ի կողմից հարցման իրադարձությունը, որը գրանցված է Setup- ում: Ի վերջո, մենք պատասխանում ենք 6 բայթ հաղորդագրությամբ:
#ներառել // ներառել biblioteca para comunicação 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); // não faz nada no loop, apenas aguarda 0, 1 segundo} // função que será exeada quando ocorrer o evento de requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste"); // responde com uma mensagem de 6 բայթ}
Քայլ 6: Վերլուծիչ. Սարքավորումներ
Նմուշի արագություն `մինչև 24 ՄՀց
Տրամաբանություն ՝ 5 Վ -ից 5.25 Վ
Lowածր մակարդակի շեմ 0,8 Վ
Բարձր մակարդակի շեմ 2.0 Վ
Մուտքի դիմադրողականությունը ՝ մոտ 1 Մոհմ կամ ավելի
Քայլ 7: Saleae ծրագրաշարի տեղադրում
Theրագիրը, որը ստանում է տրամաբանական անալիզատորի կողմից գրավված տվյալները և վերծանում է բիթերը, կարելի է ներբեռնել հետևյալ հղումով ՝
Քայլ 8. Մեր թեստերի համար միջավայրի կազմաձևում
Ես այստեղ ցույց եմ տալիս ինտերֆեյսը, որն ինձ հատկապես դուր եկավ, քանի որ այն մաքուր էր:
Քայլ 9. Մեր թեստերի համար միջավայրի կազմաձևում
Ահա կազմաձևման մի քանի տարբերակ.
• Սեղմելով ալիքի անվան վրա ՝ մենք կարող ենք փոխել այն:
• Մենք կարող ենք որոշել, թե արդյոք ալիքներից մեկը կծառայի որպես գրավման և հայտնաբերման ձև:
• Սեղմելով և պահելով ալիքի համարը, կարող եք փոխել ձեր դիրքը ցուցակում:
• Սեղմելով հանդերձի վրա, մենք կարող ենք կարգավորել ալիքի վիզուալիզացիան ՝ ընդլայնելով…
•… կամ ալիքը թաքցնելը: Մենք թաքցնելու ենք բոլոր այն ալիքները, որոնք չենք օգտագործելու:
Քայլ 10. Մեր թեստերի համար միջավայրի կազմաձևում
Սեղմելով «Սկսել» կոճակի սլաքների վրա ՝ կան ընտրանքային տոկոսադրույքի և ձայնագրման տևողությունը:
Ինչ -ինչ պատճառներով, եթե ծրագրաշարը հայտնաբերում է, որ դրույքաչափը չի կարող պահպանվել, հաղորդագրություն կցուցադրվի և ինքնաբերաբար տոկոսադրույքը կկրճատվի մինչև ֆունկցիոնալ արժեքի հասնելը:
Քայլ 11. Մեր թեստերի համար միջավայրի կազմաձևում
Մենք նաև կներառենք արձանագրության անալիզատորներ: Նախ դա I2C- ն է ՝ հետևելով WIRE գրադարանի սահմանումներին և ճիշտ կապելով ալիքները: Վերջապես, մենք անալիզատորին կներկայացնենք ասինխրոն սերիալ: Մենք պետք է զգույշ լինենք պարամետրերը ճիշտ կազմաձևել ըստ հավաքման:
Քայլ 12. Մեր թեստերի համար միջավայրի կազմաձևում
«Վերծանված արձանագրություններ» ներդիրում մենք պետք է ստուգենք, թե որ արձանագրության անալիզատորներն են միացված: Այնտեղ տվյալները կհայտնվեն: «Անոտացիաներ» ներդիրում մենք կարող ենք ավելացնել որոշ արդյունքներ `ավելի լավ պատկերացման համար: Պարզապես կտտացրեք «ավելացնել չափում» պատկերակին:
Քայլ 13: Նկարահանում. Ակնարկ
Գրավման էկրանին ծրագիրը ցուցադրում է SDA, SCL և TX0 տվյալների զարկերակային գնացքը:
Քայլ 14. Սևեռում. Արձանագրության վերլուծության արդյունք
Այստեղ մենք տեսնում ենք գրավման արդյունքը: «Վերծանված արձանագրություններ» ներդիրում մենք ունենք.
• Սերվերի խնդրանքը id 8 -ով ստրուկի համար:
• Ստրուկի պատասխանը ՝ վեց նիշ ՝ «t», «e», «s», «t», «e» և բացատ:
• Յուրաքանչյուրին հաջորդում է ACK բիթ (cknowանաչում), որը ցույց է տալիս բայթերի ճիշտ ընդունումը, բացառությամբ NACK (Չընդունել) տիեզերական բնույթի:
• Հաջորդը, մենք տեսնում ենք TX0 սերիալի վերծանման արդյունքը ՝ նշելով ստացված և ուղարկված Arduino IDE սերիալային տերմինալ նշանները:
Քայլ 15: Նկարահանում. 0 ալիք և տվյալներ (SDA)
Այս պատկերում մենք ունենք SDA գծի զարկերակային գնացք: Նշենք, որ յուրաքանչյուր փոխանցված բայթ կարելի է դիտել:
Քայլ 16: Նկարահանում. 1 -ին ալիք և ժամացույց (SCL)
Այժմ մենք այստեղ ունենք SCL գծի զարկերակային գնացք: Դուք կարող եք ավելի շատ մանրամասներ ստուգել ՝ պարզապես տեղադրելով մկնիկը ազդանշանի վրա, ինչպես տեսնում եք նկարում: Մենք տեսնում ենք, որ ժամացույցի հաճախականությունը 100 կՀց էր:
Քայլ 17: Նկարահանում. 2 -րդ ալիք և սերիալ (TX0)
Ինչ վերաբերում է TX0 գծի զարկերակային գնացքին, մենք կարող ենք տեսնել Start բիթը և յուրաքանչյուր բիտի շրջանակման կետերը: Մենք ունենք «ե» բնույթը ներկայացնող բայթ:
Քայլ 18. Մեր փորձարկումների համար միջավայրի կազմաձևում
Այստեղ մենք ունենք տվյալների ընթերցման մի քանի տարբերակ:
Քայլ 19: Նկարահանում. Օսլիոսկոպ և անալիզատոր
Նայեք այստեղ այն էկրանին, որը ես վերցրել եմ իմ տատանումներից: Տրամաբանական անալիզատորի ազդանշանը ներկայացնում է միայն բարձր և ցածր հայտնաբերումները, բայց դա չի ներկայացնում ազդանշանի որակը: Սա լավագույնս կարելի է դիտել տատանումների վրա:
Քայլ 20: Սևեռում. Անհաջողության դիտում (սերիական ձախողման օրինակ)
Այժմ ես ցույց կտամ սերիական ձախողման օրինակ, որն իրականում պատահեց ինձ հետ: Ես GPRS մոդեմով էի, այնպիսին, ինչպիսին օգտագործվում էր բջջային հեռախոսում, SIM քարտում, փորձում էի միանալ ESP32- ին: Բայց դա պարզապես չի կապվել: Այնուհետև ես ստուգեցի էլեկտրամատակարարումը, լարերը և փոխեցի տախտակը: Ես ամեն ինչ արեցի, բայց ոչինչ չշտկեց: Ես որոշեցի տրամաբանական վերլուծություն կատարել. Ես հայտնաբերեցի, որ UART 115200- ի ESP ազդանշանը սկսեց անհամապատասխանել: Այսինքն, ESP32- ը նվագում էր այն, ինչ պետք է լինի 115, 200, այլ արագությունից, քան սա էր:
Այս սխալը, որը նույնացվել է վերլուծիչի կողմից, կարմիր գույնով ցուցադրվել է X- ով: Իմ ընկալմամբ, ծրագիրը ասում է, որ այն կետը, որն ունի այդպիսի քիչ ժամանակ, կիսով չափ տեղաշարժված է: Երբ այս տեղաշարժն ավելանում է, կարող է գալ մի պահ, երբ ամեն ինչ անհամապատասխան է, որպեսզի տեղեկատվությունը չհասնի մյուս կողմին: Այն սովորաբար գալիս է, բայց SIM800- ը զգայուն է, և եթե դա ճշգրիտ չէ, տեղեկատվությունը չի հասնում մյուս ծայրին:
Չգիտեմ, սա հաճախ պատահող բան է, թե ոչ, բայց դա պատահեց ինձ հետ, և ես որոշեցի այս թեմային անդրադառնալ այստեղ: Ուրեմն ինչ արեցի: Ես դանդաղեցրեցի արագությունը: Եթե դուք դնում եք 9, 600, 19, 200, մինչև 38, 400, այն աշխատում է, ինչը չի պատահում 115, 200 -ի հետ:
Քայլ 21: Ներբեռնեք ֆայլերը
ԻՆՈ
Խորհուրդ ենք տալիս:
Տրամաբանական դարպասներ ՝ օգտագործելով տրանզիստոր. 3 քայլ
Տրամաբանական դարպասներ ՝ օգտագործելով տրանզիստոր. Տրամաբանական դարպասները ցանկացած թվային համակարգի հիմնական շինանյութն են
Ապրանքների հանրագումարը, օգտագործելով տրամաբանական դարպասները. 4 քայլ
Ապրանքների հանրագումարը, որն օգտագործում է տրամաբանական դարպասները. Այս ուսանելի ծրագրում ես ձեզ ցույց կտամ, թե ինչպես ստեղծել ձեր սեփական համակարգը `օգտագործելով արտադրանքի գումարը, մի փոքր բուլյան հանրահաշվի և որոշ տրամաբանական դարպասներ: Պետք չէ ստեղծել նույն ճշգրիտ համակարգը, ինչ այս ձեռնարկում, բայց կարող եք օգտագործել
EZProbe, EZ430 հիմնված տրամաբանական զոնդ. 4 քայլ
EZProbe, EZ430- ի վրա հիմնված տրամաբանական զոնդ. Սա պարզ տրամաբանական զոնդի նախագիծ է ՝ հիմնված TI EZ430 դոնգլի վրա: Ես օգտվեցի անվճար առաջարկից 2010 -ի սեպտեմբերին TI- ից մի քանի ez430s- ով: նրանք շատ հարմար և զվարճալի են ՝ փորձարկելով կոդի փոքր հատվածներ և հետևում են, թե ինչպես է LED- ը թարթում: նրանք ունեին բ
Պարզ DIY տրամաբանական փոխարկիչ 3.3V սարքերի համար. 4 քայլ
Պարզ DIY տրամաբանական փոխարկիչ 3.3V սարքերի համար. Այս գրառման մեջ ես ձեզ ցույց կտամ, թե ինչպես կարող եք պատրաստել ձեր սեփական 5V- ից մինչև 3.3V տրամաբանական փոխարկիչը `5V սենսորները նոր Arduino տախտակներին և ազնվամորու Pi- ին միացնելու համար: Ինչու՞ մեզ պետք է տրամաբանական մակարդակի փոխարկիչ IC: Ձեզանից շատերը սիրում են խաղալ Arduino- ի և Raspberry Pi duri- ի հետ
Տրամաբանական անալիզատոր Android- ի ինտերֆեյսով `7 քայլ
Android- ի օգտագործողի միջերեսով տրամաբանական անալիզատոր. Աշխարհն արդեն ողողված է այդքան տրամաբանական անալիզատորներով: Էլեկտրոնիկայի իմ հոբբիում ինձ պետք էր մեկը ՝ անսարքությունների վերացման և կարգաբերման համար: Ես փնտրեցի ինտերնետը, բայց չեմ գտնում այն, ինչ փնտրում եմ: Այսպիսով, ահա ես ներկայացնում եմ … " ԴԵՌ Մեկ այլ Lo