Мазмұны:

Көзіңді аш! Логикалық анализатор: 21 қадам
Көзіңді аш! Логикалық анализатор: 21 қадам

Бейне: Көзіңді аш! Логикалық анализатор: 21 қадам

Бейне: Көзіңді аш! Логикалық анализатор: 21 қадам
Бейне: Өлді деп жерлемек болған еді. Бірақ Алланың қалауымен тірілген Бала 2024, Қараша
Anonim
Image
Image
Ассамблея
Ассамблея

Логикалық анализатор байланыс желісінде өтетін импульстік пойыздың визуализациясын жеңілдетеді. Осылайша, бұл мүмкін болатын мәселені анықтау үшін сіздің көзіңізді ашады. Бұл неге маңызды? Бұл сіздің уақытыңызды үнемдей алатын өте тиімді әзірлеу және ақауларды анықтау құралы. Бұл бейнеде біз логикалық анализатордың маңыздылығын бағалаймыз, осы құрылғыны қолданған кездегі жалпы тәжірибенің кейбір протоколдарын сақтаймыз және логикалық анализатордың көмегінсіз анықтаудың сәтсіздігіне мысал келтіреміз.

Бұл видеода мен салыстырмалы түрде арзан (шамамен 35 доллар) және тиімді модельді қолдандым, графикалық интерфейсі мен ақысыз бағдарламалық қамтамасыз етуі бар.

1 -қадам: құрастыру

2 -қадам: Қолданылатын мүмкіндіктер - Сервер

Қолданылатын мүмкіндіктер - Сервер
Қолданылатын мүмкіндіктер - Сервер

• Қосылымдарға арналған секіргіштер

• 2 Arduino (біз 2 Mega Arduinos 2560 қолдандық)

• Логикалық анализатор (біз Saleae қолданамыз)

• Arduino мен анализаторға арналған USB қосылым кабельдері.

• Осциллограф (міндетті емес)

• Протобон тақтасы

3 -қадам: Қолданылған схема

Қолданылған схема
Қолданылған схема

Мұнда бізде үш түйреуіштің мониторингі көрсетілген схема бар: TX0, SDA және SCL. Бізде екі Ардуино бар: қожайын мен құл.

4 -қадам: Бастапқы код: Мастер

Орнатуда біз i2c байланысына арналған кітапхананы қосамыз. Біз желіге Мастер ретінде кірдік және 0 сериясын инициалдадық. Циклде біз мысалда анықталғандай Arduino 8 нөмірімізбен байланысу үшін қосалқы деректер байттарын сұрадық. Біз логикалық анализатормен, алынған байттармен бағаланатын серияға басып шығарамыз.

#include // inclui a biblioteca para comunicação I2C void setup () {Wire.begin (); // Mestre комментарийі (endereço é opcional para or mestre) Serial.begin (115200); // inicia сериялық 0} void loop () {Wire.requestFrom (8, 6); // 8 байт қажет, бірақ (Wire.available ()) {// enquanto houver bytes para reseptor… char c = Wire.read (); // recebe cada byte e armazena como caracter Serial.print (c); // envia o caracter pela serial (verferade vai para o ofer)} кешігу (500); // агуарда мейио сегундо}

5 -қадам: Бастапқы код: құл

Бұл құл кодында мен қайтадан i2c байланысына арналған кітапхананы қосамын. Мен желіге 8 адресімен құл ретінде кіремін. Біз сұраныс оқиғасын тіркейміз және оны «сұрау» функциясымен байланыстырамыз. Сізге циклде ештеңе істеудің қажеті жоқ, тек 0,1 секунд кідіріс беріңіз.

Ақырында, бізде сұрау оқиғасы орын алған кезде орындалатын сұрау функциясы бар, ол Орнатуда тіркелген. Біз 6 байт хабармен жауап береміз.

#include // inclui a biblioteca para comunicação I2C void setup () {Wire.begin (8); // 8 Wire.onRequest (requestEvent); // registra o evento de Requisiçao // e associa à função requestEvent} void loop () {delay (100); // бірде -бір цикл жоқ, 0 немесе 1 сегментте} // функционалдылықты жою қажет болған жағдайда, бұл оқиға жарамсыз болған жағдайдаEEE () {Wire.write («teste»); // жауап беру 6 байт}

6 -қадам: Анализатор: аппараттық құрал

Анализатор: аппараттық құрал
Анализатор: аппараттық құрал

Үлгі жиілігі: 24 МГц дейін

Логика: 5 В -тан 5.25 В -қа дейін

Төмен деңгейлік шекті 0,8 В.

Жоғары деңгейлі шекті мән 2,0 В.

Шамамен 1 Мм немесе одан көп кіріс кедергісі

7 -қадам: Saleae бағдарламалық жасақтамасын орнату

Saleae бағдарламалық жасақтамасын орнату
Saleae бағдарламалық жасақтамасын орнату

Логикалық анализатор түсіретін деректерді қабылдайтын және биттерді шешетін бағдарламаны келесі сілтеме бойынша жүктеуге болады:

8 -қадам: Біздің тесттер үшін ортаны конфигурациялау

Біздің тесттер үшін ортаны конфигурациялау
Біздің тесттер үшін ортаны конфигурациялау

Мен мұнда интерфейсті көрсетемін, ол маған ұнады, себебі ол таза болды.

9 -қадам: Біздің тесттер үшін ортаны конфигурациялау

Біздің тесттер үшін ортаны конфигурациялау
Біздің тесттер үшін ортаны конфигурациялау

Міне, конфигурацияның кейбір нұсқалары:

• Арна атауын басу арқылы біз оны өзгерте аламыз.

• Біз арналардың біреуі түсіру үшін триггер және анықтау формасы болып табылатынын анықтай аламыз.

• Арна нөмірін басып, ұстап тұру арқылы сіз тізімдегі орныңызды өзгерте аласыз.

• Берілісті басу арқылы біз арнаның визуализациясын конфигурациялай аламыз, кеңейте…

•… немесе арнаны жасыру. Біз қолданбайтын барлық арналарды жасырамыз.

10 -қадам: Біздің тесттер үшін ортаны конфигурациялау

Біздің тесттер үшін ортаны конфигурациялау
Біздің тесттер үшін ортаны конфигурациялау

«Бастау» батырмасының көрсеткілерін шертіп, іріктеу жылдамдығы мен жазудың ұзақтығы бар.

Белгілі бір себептермен, егер бағдарламалық қамтамасыз ету тарифті ұстап тұру мүмкін еместігін анықтаса, хабарлама көрсетіледі және функционалды мәнге жеткенше жылдамдық автоматты түрде төмендейді.

11 -қадам: Біздің тесттер үшін ортаны конфигурациялау

Біздің тесттер үшін ортаны конфигурациялау
Біздің тесттер үшін ортаны конфигурациялау

Біз протокол анализаторларын қосамыз. Біріншіден, бұл WIRE кітапханасының анықтамаларына сүйене отырып және арналарды дұрыс байланыстыратын I2C. Соңында біз анализаторды асинхронды серияға енгіземіз. Біз жинаққа сәйкес параметрлерді дұрыс конфигурациялау үшін абай болуымыз керек.

12 -қадам: Біздің тесттер үшін ортаны конфигурациялау

Біздің тесттер үшін ортаны конфигурациялау
Біздің тесттер үшін ортаны конфигурациялау

«Декодталған протоколдар» қойындысында қай протокол анализаторлары қосылғанын тексеру керек. Онда деректер пайда болады. «Аннотациялар» қойындысында визуалды жақсарту үшін кейбір нәтижелерді қосуға болады. «Өлшеуді қосу» белгішесін нұқыңыз.

13 -қадам: Түсіру: шолу

Түсіру: шолу
Түсіру: шолу

Түсіру экранында бағдарлама SDA, SCL және TX0 деректер импульсін көрсетеді.

14 -қадам: Түсіру: протоколдық талдаудың нәтижесі

Түсіру: протоколды талдау нәтижесі
Түсіру: протоколды талдау нәтижесі

Мұнда біз түсірілім нәтижесін көреміз. «Декодталған протоколдар» қойындысында бізде:

• Сервер идентификаторы 8 бар құлға сұраныс.

• Құлдық жауап, алты таңба: «t», «e», «s», «t», «e» және бос орын.

• Әрқайсысында NACK (Not Acknowledge) бос орын таңбасын қоспағанда, байттың дұрыс қабылдануын көрсететін ACK биті (Acknowledge) жүреді.

• Содан кейін біз Arduino IDE сериялық терминалына жіберілген және жіберілген таңбаларды көрсететін TX0 сериясының декодтау нәтижесін көреміз.

15 -қадам: Түсіру: 0 арна және деректер (SDA)

Түсіру: 0 арна және деректер (SDA)
Түсіру: 0 арна және деректер (SDA)

Бұл суретте бізде SDA желісінің импульстік пойызы бар. Әрбір жіберілген байтты қарауға болатынын ескеріңіз.

16 -қадам: Түсіру: 1 -арна және сағат (SCL)

Түсіру: 1 арна мен сағат (SCL)
Түсіру: 1 арна мен сағат (SCL)

Енді бізде SCL желісінің импульстік пойызы бар. Қосымша мәліметтерді суретте көрсетілгендей тышқанның үстіне қою арқылы тексеруге болады. Біз сағат жиілігі 100 кГц болғанын көре аламыз.

17 -қадам: Түсіру: 2 арна және сериялық (TX0)

Түсіру: 2 арна және сериялық (TX0)
Түсіру: 2 арна және сериялық (TX0)

TX0 желісінің импульстік пойызына келетін болсақ, біз Бастау битін және әр биттің жақтау нүктелерін көре аламыз. Бізде «е» таңбасын білдіретін байт бар.

18 -қадам: Біздің тесттер үшін ортаны конфигурациялау

Біздің тесттер үшін ортаны конфигурациялау
Біздің тесттер үшін ортаны конфигурациялау

Мұнда бізде деректерді оқудың бірнеше нұсқасы бар.

19 -қадам: түсіру: осциллограф және анализатор

Түсіру: осциллограф және анализатор
Түсіру: осциллограф және анализатор

Осциллографтан түсірген экранды қараңыз. Логикалық анализатор сигналы тек жоғары және төмен анықтауды көрсетеді, бірақ ол сигнал сапасын білдірмейді. Мұны осциллографта жақсы байқауға болады.

20 -қадам: Түсіру: сәтсіздікті байқау (сериялық сәтсіздік мысалы)

Түсіру: сәтсіздікті байқау (сериялық сәтсіздік мысалы)
Түсіру: сәтсіздікті байқау (сериялық сәтсіздік мысалы)

Енді мен өз басымнан өткен сериялық сәтсіздіктің мысалын көрсетемін. Мен ESP32 -ге қосылуға тырысатын ұялы телефонда, SIM -картада қолданылатын GPRS модемінде болдым. Бірақ ол жай ғана қосылмады. Содан кейін мен қуат көзін, сымдарды тексердім және тақтаны ауыстырдым. Мен бәрін жасадым, бірақ ештеңе шешкен жоқ. Мен логикалық талдау жасауды шештім: UART 115200 -де ESP сигналы сәйкес келмейтінін білдім. Яғни, ESP32 115, 200 болуы керек нәрсені басқа жылдамдықпен ойнады.

Бұл талдаушы анықтаған қате қызыл түспен X белгісімен көрсетілді. Менің түсінуімше, бағдарламада мұндай нүкте бар нүкте уақыт өте келе жылжиды дейді. Бұл ауысым күшейген сайын, ақпараттың басқа жаққа жетпеуі үшін бәрі сәйкес келмейтін уақыт келуі мүмкін. Ол әдетте келеді, бірақ SIM800 сезімтал, егер ол дәл болмаса, ақпарат екінші шетіне жетпейді.

Мен бұл жиі бола ма, жоқ па, білмеймін, бірақ менде болды, сондықтан мен бұл тақырыпты осында шешуді шештім. Сонымен мен не істедім? Мен баяуладым. Егер сіз 9, 600, 19, 200, 38, 400 дейін қойсаңыз, ол жұмыс істейді, бұл 115, 200 -де болмайды.

21 -қадам: файлдарды жүктеңіз

PDF

МЕН ЖОҚ

Ұсынылған: