Съдържание:
- Стъпка 1: Монтаж
- Стъпка 2: Използвани функции - Сървър
- Стъпка 3: Използвана верига
- Стъпка 4: Изходен код: Master
- Стъпка 5: Изходен код: Slave
- Стъпка 6: Анализатор: Хардуер
- Стъпка 7: Инсталиране на софтуер Saleae
- Стъпка 8: Конфигуриране на околната среда за нашите тестове
- Стъпка 9: Конфигуриране на околната среда за нашите тестове
- Стъпка 10: Конфигуриране на околната среда за нашите тестове
- Стъпка 11: Конфигуриране на околната среда за нашите тестове
- Стъпка 12: Конфигуриране на околната среда за нашите тестове
- Стъпка 13: Заснемане: Общ преглед
- Стъпка 14: Заснемане: Резултат от анализ на протокола
- Стъпка 15: Заснемане: канал 0 и данни (SDA)
- Стъпка 16: Заснемане: Канал 1 и часовник (SCL)
- Стъпка 17: Заснемане: Канал 2 и сериен (TX0)
- Стъпка 18: Конфигуриране на околната среда за нашите тестове
- Стъпка 19: Заснемане: осцилоскоп и анализатор
- Стъпка 20: Заснемане: Наблюдение на повреда (пример за серийна грешка)
- Стъпка 21: Изтеглете файловете
Видео: Отвори си очите! Логически анализатор: 21 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Логическият анализатор улеснява вашата визуализация на импулсния ход, които са битовете, пътуващи по линия на комуникация. По този начин ви отваря очите, за да идентифицирате възможен проблем. Защо това е важно? Това е много ефективен инструмент за разработка и откриване на грешки, който може да ви спести време. В това видео днес ще оценим важността на логическия анализатор, ще наблюдаваме някои протоколи от обичайни практики, докато използваме това устройство, и ще илюстрираме провал при откриване без помощта на логически анализатор.
В това видео използвах сравнително евтин (около 35 долара) и ефективен модел, с графичен интерфейс и безплатен софтуер.
Стъпка 1: Монтаж
Стъпка 2: Използвани функции - Сървър
• Джъмпери за връзки
• 2 Arduinos (използвахме 2 Mega Arduinos 2560)
• Логически анализатор (използваме Saleae)
• USB свързващи кабели за Arduino и анализатор.
• Осцилоскоп (по избор)
• Protoboard
Стъпка 3: Използвана верига
Тук имаме схемата, която показва мониторинга на три пина: TX0, SDA и SCL. Имаме два Arduino: господар и роб.
Стъпка 4: Изходен код: Master
В настройката ще включим библиотеката за i2c комуникация. Влязохме в мрежата като Master и инициализирахме сериен 0. В цикъла поискахме байтове за подчинени данни за комуникация с нашия Arduino номер 8, както дефинирахме в примера. Отпечатваме в поредицата, която ще бъде оценена с логическия анализатор, получените байтове.
#include // включва библиотека за комуникация I2C void setup () {Wire.begin (); // Entra na rede como Mestre (endereço é opcional para o mestre) Serial.begin (115200); // inicia a serial 0} void loop () {Wire.requestFrom (8, 6); // изисквам 6 байта да добавям до endcraço 8 while (Wire.available ()) {// enquanto houver bytes para Receber… char c = Wire.read (); // получавам cada байт e armazena como caracter Serial.print (c); // envia o caracter pela serial (na verdade vai para o buffer)} забавяне (500); // aguarda meio segundo}
Стъпка 5: Изходен код: Slave
В този подчинен код отново включвам библиотеката за i2c комуникация. Влизам в мрежата като подчинен с адрес 8. Регистрираме събитието на заявката и го свързваме с функцията "заявка". Не е нужно да правите нищо по веригата, просто дайте 0,1 секундно забавяне.
И накрая, имаме функция за заявка, която ще бъде изпълнена, когато се случи събитието на заявката от Master, което е регистрирано в Setup. Накрая отговаряме със съобщение от 6 байта.
#include // включва библиотека за комуникация I2C void setup () {Wire.begin (8); // entra na rede como escravo com endereço 8 Wire.onRequest (requestEvent); // регистрация за 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á executada quando ocorrer o evento de requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste"); // отговори на ума за мен от 6 байта}
Стъпка 6: Анализатор: Хардуер
Честота на дискретизация до: 24 MHz
Логика: 5 V до 5,25 V
Праг на ниско ниво 0,8 V
Праг на високо ниво 2.0 V
Входен импеданс от около 1 Mohm или повече
Стъпка 7: Инсталиране на софтуер Saleae
Програмата, която получава данните, уловени от логическия анализатор и декодира битовете, може да бъде изтеглена на следната връзка:
Стъпка 8: Конфигуриране на околната среда за нашите тестове
Тук показвам интерфейса, който особено ми хареса, защото беше чист.
Стъпка 9: Конфигуриране на околната среда за нашите тестове
Ето някои опции за конфигуриране:
• Като кликнете върху името на канала, можем да го променим.
• Можем да определим дали един от каналите ще служи като спусък за улавяне и формата на откриване.
• Като щракнете и задържите номера на канала, можете да промените позицията си в списъка.
• Чрез щракване върху зъбното колело можем да конфигурираме визуализацията на канала, разширявайки …
• … или скриване на канала. Ще скрием всички канали, които няма да използваме.
Стъпка 10: Конфигуриране на околната среда за нашите тестове
Щраквайки върху стрелките на бутона "Старт", има опции за Sampling Rate и продължителност на записа.
По някаква причина, ако софтуерът установи, че скоростта не може да се поддържа, ще се появи съобщение и автоматично скоростта ще бъде намалена, докато се достигне функционална стойност.
Стъпка 11: Конфигуриране на околната среда за нашите тестове
Ще включим и анализаторите на протоколи. Първо това е I2C, следвайки дефинициите на библиотеката WIRE и свързвайки правилно каналите. Накрая ще въведем анализатора в асинхронен сериал. Трябва да внимаваме, за да конфигурираме правилно параметрите според сглобяването.
Стъпка 12: Конфигуриране на околната среда за нашите тестове
В раздела „Декодирани протоколи“трябва да проверим кои анализатори на протоколи са активирани. Там ще се покажат данните. В раздела „Анотации“можем да добавим някои от резултатите за по -добра визуализация. Просто кликнете върху иконата „добавяне на измерване“.
Стъпка 13: Заснемане: Общ преглед
В екрана за заснемане програмата показва импулс от данни на SDA, SCL и TX0.
Стъпка 14: Заснемане: Резултат от анализ на протокола
Тук виждаме резултата от улавянето. В раздела „Декодирани протоколи“имаме:
• Искането на сървъра за подчинения с идентификатор 8.
• Подчиненият отговор, шест знака: "t", "e", "s", "t", "e" и интервал.
• Всеки от тях е последван от бит ACK (Acknowledge), показващ правилното приемане на байта, с изключение на символа за интервал NACK (Not Acknowledge).
• След това виждаме резултата от декодирането на сериала TX0, показващ получените и изпратени символи на серийния терминал на Arduino IDE.
Стъпка 15: Заснемане: канал 0 и данни (SDA)
На това изображение имаме импулсния ход на линията SDA. Имайте предвид, че всеки предаден байт може да бъде прегледан.
Стъпка 16: Заснемане: Канал 1 и часовник (SCL)
Тук имаме импулсния влак на SCL линията. Можете да проверите повече подробности, просто като поставите мишката върху сигнала, както виждате на изображението. Можем да видим, че тактовата честота е била 100 kHz.
Стъпка 17: Заснемане: Канал 2 и сериен (TX0)
Що се отнася до импулсния ход на линията TX0, можем да видим началния бит и точките на рамкиране на всеки бит. Имаме байт, представляващ знака "e".
Стъпка 18: Конфигуриране на околната среда за нашите тестове
Тук имаме няколко опции за четене на данните.
Стъпка 19: Заснемане: осцилоскоп и анализатор
Погледнете тук екрана, който заснех от осцилоскопа си. Сигналът на логическия анализатор представлява само високото и ниското откриване, но не представя качеството на сигнала. Това най -добре може да се наблюдава на осцилоскоп.
Стъпка 20: Заснемане: Наблюдение на повреда (пример за серийна грешка)
Сега ще покажа пример за сериен провал, който всъщност ми се случи. Бях с GPRS модем, вида, използван на мобилен телефон, SIM картата, опитвах се да се свържа с ESP32. Но просто не се свърза. След това проверих захранването, окабеляването и смених платката. Направих всичко, но нищо не го оправи. Реших да сложа логически анализ: открих, че ESP сигналът на UART 115200 започна да се разминава. Тоест, ESP32 играеше това, което трябва да бъде 115, 200 с различна скорост от тази.
Тази грешка, идентифицирана от анализатора, се показва с X в червено. Доколкото разбирам, програмата казва, че точката, която има такова малко, е наполовина изместена във времето. С увеличаването на тази промяна може да дойде момент, в който всичко да е несъответстващо, така че информацията да не достигне до другата страна. Обикновено пристига, но SIM800 е чувствителен и ако не е точен, информацията не достига до другия край.
Не знам дали това е нещо, което се случва често или не, но това се случи с мен и затова реших да обърна внимание на тази тема тук. И така, какво направих? Забавих темпото. Ако сложите 9, 600, 19, 200, до 38, 400, тя работи, което не се случва при 115, 200.
Стъпка 21: Изтеглете файловете
АЗ НЕ
Препоръчано:
Запояване чрез компоненти на отвори - Основи на запояване: 8 стъпки (със снимки)
Запояване чрез компоненти на отвори | Основи на запояване: В тази инструкция ще обсъдя някои основи за запояване на компоненти през отвори към платки. Предполагам, че вече сте проверили първите 2 инструкции за моята серия Основи на запояване. Ако не сте проверили моя In
Направете цифров логически анализатор за по -малко от $ 1: 5 стъпки
Направете цифров логически анализатор за по -малко от $ 1: Логичен сензор за ниво е устройство, което усеща дали изходът на компонент е 1 или 0 (положителен или отрицателен). Знаете ли онези хубави сензори за ниво с LCD екрани, които струват около 25 долара? Този е смешно по -евтин и прави същото нещо (Това аз
Логически анализатор с потребителски интерфейс за Android: 7 стъпки
Логически анализатор с потребителски интерфейс на Android: Светът вече е наводнен с толкова много логически анализатори. В моето хоби по електроника имах нужда от такъв за отстраняване на неизправности и отстраняване на грешки. Търсих в интернет, но не мога да намеря този, който търся. Ето ме, представям … " ОЩЕ още един
ESP32 капацитивен сензорен вход, използващ „Метални щепсели за отвори“за бутони: 5 стъпки (със снимки)
ESP32 капацитивен сензорен вход с помощта на „метални щепсели“за бутони: Докато завършвах дизайнерските решения за предстоящ проект, базиран на ESP32 WiFi Kit 32, изискващ вход с три бутона, един забележим проблем беше, че WiFi Kit 32 не притежава нито един механичен бутон, все пак сам три механични бутона, е
Как да запояваме части през отвори: 7 стъпки (със снимки)
Как да запоявате части през отвори: В тази инструкция ще ви покажа как да запоявате части от отвори. Ще ви преведа стъпка по стъпка през процедурата, както и ще ви дам няколко съвета & трикове, които трябва да изведат вашите умения за запояване на ново ниво. Този урок е