Агуулгын хүснэгт:

Нүдээ нээ! Логик анализатор: 21 алхам
Нүдээ нээ! Логик анализатор: 21 алхам

Видео: Нүдээ нээ! Логик анализатор: 21 алхам

Видео: Нүдээ нээ! Логик анализатор: 21 алхам
Видео: Хүн чинь хаана байна?/Hun chin haana baina?/ Нүдээ нээ /Nudee nee/ MV 2024, Арваннэгдүгээр
Anonim
Image
Image
Чуулган
Чуулган

Логик анализатор нь харилцаа холбооны шугамаар явж буй импульсийн галт тэрэгний дүрслэлийг хөнгөвчилдөг. Тиймээс энэ нь болзошгүй асуудлыг тодорхойлоход таны нүдийг нээж өгдөг. Энэ яагаад чухал вэ? Энэ бол цаг хэмнэх маш үр дүнтэй хөгжил, алдаа илрүүлэх хэрэгсэл юм. Өнөөдрийн энэ видеон дээр бид логик анализаторын ач холбогдлыг үнэлж, энэ төхөөрөмжийг ашиглахдаа нийтлэг практикийн зарим протоколыг ажиглаж, логик анализаторын тусламжгүйгээр илрүүлэх эвдрэлийг жишээ болгон харуулах болно.

Энэ видеонд би график интерфэйс, үнэгүй програм хангамжтай харьцангуй хямд (ойролцоогоор 35 доллар), үр ашигтай загварыг ашигласан.

Алхам 1: угсрах

Алхам 2: Ашигласан онцлогууд - Сервер

Ашигласан онцлогууд - Сервер
Ашигласан онцлогууд - Сервер

• Холболтын зориулалттай холбогч

• 2 Arduino (бид 2 Mega Arduinos 2560 ашигласан)

• Логик анализатор (бид Saleae ашигладаг)

• Arduino болон анализаторын USB холболтын кабель.

• Осциллограф (заавал биш)

• Protoboard

Алхам 3: Ашигласан хэлхээ

Ашигласан хэлхээ
Ашигласан хэлхээ

Энд бид TX0, SDA, SCL гэсэн гурван тээглүүрийн хяналтыг харуулсан схемийг үзүүлэв. Бидэнд эзэн, боол гэсэн хоёр Ардуино бий.

Алхам 4: Эх код: Мастер

Тохиргоонд бид i2c холбооны номын санг оруулах болно. Бид сүлжээнд Мастераар орж 0 цувралыг эхлүүлсэн. Loop дээр бид жишээн дээр тодорхойлсон Arduino 8 дугаартайгаа холбогдохын тулд боолын өгөгдлийн байтыг хүссэн. Бид хүлээн авсан байтыг логик анализатороор үнэлэх цувралаар хэвлэнэ.

#include // inclui a biblioteca para comunicação I2C void setup () {Wire.begin (); // Нэмэлт шинэчлэлтүүд Mestre (endereço é opcional para o mestre) Serial.begin (115200); // inicia нь цуврал 0} void loop () {Wire.requestFrom (8, 6); // 6 байт de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bytes para хүлээн авагч… char c = Wire.read (); // recebe cada byte e armazena como caracter Serial.print (c); // envia o caracter pela serial (na verdade vai para o ofer)} саатал (500); // aguarda meio segundo}

Алхам 5: Эх код: Боол

Энэхүү боолын кодонд би i2c холбооны номын санг дахин орууллаа. Би сүлжээнд 8. хаягтай боолоор ордог. Бид хүсэлтийн үйл явдлыг бүртгэж, "хүсэлт" функцтэй холбодог. Та давталт дээр юу ч хийх шаардлагагүй, 0.1 секундын саатал өгөхөд л хангалттай.

Эцэст нь хэлэхэд, Setup -д бүртгэгдсэн Master -ийн хүсэлтийн үйл явдал тохиолдоход гүйцэтгэх хүсэлтийн функц бидэнд байна. Бид эцэст нь 6 байт мессежээр хариулдаг.

#include // inclui a biblioteca para comunicação I2C void setup () {Wire.begin (8); // reca 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á performada quando ocorrer o evento de recisisão pelo mestre // foi registrada como evento no setup void requestEvent () {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: Барих: Протоколын дүн шинжилгээний үр дүн

Барих: Протоколын дүн шинжилгээний үр дүн
Барих: Протоколын дүн шинжилгээний үр дүн

Энд бид булаан авалтын үр дүнг харж байна. "Шифрлэгдсэн протоколууд" таб дээр бид дараахь зүйлийг олж болно.

• Сервер ID 8 -тэй боол авах хүсэлт.

• Боолын хариу, "t", "e", "s", "t", "e" гэсэн зургаан тэмдэгт ба зай.

• Тус бүрийн ард NACK (Not Acknowledge) зайны тэмдэгтээс бусад тохиолдолд байтын зөв хүлээн авалтыг харуулсан ACK бит (Acknowledge) бичигдсэн болно.

• Дараа нь бид TX0 цувралын код тайлах үр дүнг харж, Arduino IDE цуваа терминал руу илгээсэн тэмдэгтүүдийг харуулна.

Алхам 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 шугамын импульсийн галт тэрэгний хувьд бид Start бит болон бит бүрийн хүрээ тогтоох цэгүүдийг харж болно. Бидэнд "e" тэмдэгтийг дүрсэлсэн байт бий.

Алхам 18: Бидний туршилтын орчинг тохируулах

Бидний туршилтын орчинг тохируулах
Бидний туршилтын орчинг тохируулах

Энд бидэнд өгөгдлийг унших хэд хэдэн сонголт байна.

Алхам 19: Барих: Осциллограф ба анализатор

Барих: Осциллограф ба анализатор
Барих: Осциллограф ба анализатор

Осциллограф ашиглан авсан дэлгэцээ эндээс хараарай. Логик анализаторын дохио нь зөвхөн өндөр ба бага илрүүлэлтийг илэрхийлдэг боловч дохионы чанарыг илэрхийлдэггүй. Үүнийг осциллограф дээр хамгийн сайн ажиглаж болно.

Алхам 20: Барих: Алдааг ажиглах (Цуваа бүтэлгүйтлийн жишээ)

Барих: Алдаа дутагдлыг ажиглах (Цуврал бүтэлгүйтлийн жишээ)
Барих: Алдаа дутагдлыг ажиглах (Цуврал бүтэлгүйтлийн жишээ)

Одоо би надад тохиолдсон цуврал бүтэлгүйтлийн жишээг үзүүлэх болно. Би GSPS модемтой байсан бөгөөд гар утас, SIM карт дээр ESP32 -тэй холбогдохыг оролдож байсан. Гэхдээ зүгээр л холбогдоогүй. Дараа нь би цахилгаан хангамж, утас холболтыг шалгаж, самбарыг сольсон. Би бүх зүйлийг хийсэн, гэхдээ юу ч зассангүй. Би логик дүн шинжилгээ хийхээр шийдсэн: UART 115200 дээрх ESP дохио таарахгүй байгааг олж мэдэв. Өөрөөр хэлбэл ESP32 нь 115, 200 байх ёстой хэмжээнээсээ өөр хурдтай тоглож байсан.

Энэхүү алдааг задлан шинжээч X -ээр улаан өнгөөр харуулав. Миний ойлгосноор ийм жаахан цэг нь цаг хугацааны хувьд хагасаар нүүлгэн шилждэг гэж програмд хэлдэг. Энэ шилжилт нэмэгдэхийн хэрээр бүх зүйл таарахгүй байх үе ирж магадгүй, ингэснээр мэдээлэл нөгөө талд хүрэхгүй болно. Энэ нь ихэвчлэн ирдэг, гэхдээ SIM800 нь эмзэг бөгөөд хэрэв үнэн зөв биш бол мэдээлэл нөгөө талд нь хүрдэггүй.

Энэ нь ихэвчлэн тохиолддог зүйл биш үү, мэдэхгүй ч надад тохиолдсон тул энэ сэдвийг энд хөндөхөөр шийдлээ. Тэгэхээр би юу хийсэн юм бэ? Би удаашрууллаа. Хэрэв та 9, 600, 19, 200, 38, 400 хүртэл байрлуулсан бол энэ нь ажилладаг бөгөөд энэ нь 115, 200 -т тохиолддоггүй.

Алхам 21: Файлуудыг татаж авах

PDF

INO

Зөвлөмж болгож буй: