Оглавление:
- Шаг 1: Сборка
- Шаг 2: Используемые функции - Сервер
- Шаг 3: Используемая схема
- Шаг 4: Исходный код: Мастер
- Шаг 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 11:53
Логический анализатор упрощает визуализацию последовательности импульсов, то есть битов, перемещающихся по линии связи. Таким образом, это открывает вам глаза на выявление возможной проблемы. Почему это важно? Это очень эффективный инструмент для разработки и обнаружения неисправностей, который поможет вам сэкономить время. В этом видео сегодня мы оценим важность логического анализатора, рассмотрим некоторые протоколы общепринятой практики при использовании этого устройства и продемонстрируем сбой обнаружения без помощи логического анализатора.
В этом видео я использовал относительно недорогую (около 35 долларов) и эффективную модель с графическим интерфейсом и бесплатным программным обеспечением.
Шаг 1: Сборка
Шаг 2: Используемые функции - Сервер
• Перемычки для соединений
• 2 Arduinos (мы использовали 2 Mega Arduinos 2560)
• Логический анализатор (мы используем Saleae)
• Соединительные кабели USB для Arduino и анализатора.
• Осциллограф (опционально)
• Протоборд
Шаг 3: Используемая схема
Здесь у нас есть схема, на которой показан мониторинг трех контактов: TX0, SDA и SCL. У нас есть два Arduinos: ведущий и ведомый.
Шаг 4: Исходный код: Мастер
В Setup мы включим библиотеку для связи 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); // инициализация последовательного порта 0} void loop () {Wire.requestFrom (8, 6); // требуется 6 байтов для перехода к 8-му циклу while (Wire.available ()) {// enquanto houver bytes para Receber… char c = Wire.read (); // получить байт и арматуру с символом Serial.print (c); // envia o caracter pela serial (na verdade vai para o buffer)} delay (500); // aguarda meio segundo}
Шаг 5: Исходный код: Slave
В этот подчиненный код я снова включаю библиотеку для связи i2c. Вхожу в сеть как раб с адресом 8. Регистрируем событие запроса и связываем его с функцией "запрос". Вам не нужно ничего делать в цикле, просто укажите задержку в 0,1 секунды.
Наконец, у нас есть функция запроса, которая будет выполняться при возникновении события запроса от Мастера, которое было зарегистрировано в Setup. Наконец, мы отвечаем сообщением размером 6 байт.
#include // включает библиотеку для связи I2C void setup () {Wire.begin (8); // введите запрос 8 Wire.onRequest (requestEvent); // регистрация события по требованию // и ассоциация с функцией requestEvent} void loop () {delay (100); // não faz nada no loop, apenas aguarda 0, 1 segundo} // função que será execada quando ocorrer o evento de Requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste"); // отвечаем com uma mensagem de 6 bytes}
Шаг 6: Анализатор: оборудование
Частота дискретизации до: 24 МГц
Логика: от 5 В до 5,25 В
Порог низкого уровня 0,8 В
Порог высокого уровня 2,0 В
Входное сопротивление около 1 МОм или более
Шаг 7: Установка программного обеспечения Saleae
Программу, которая принимает данные, захваченные логическим анализатором, и декодирует биты, можно скачать по следующей ссылке:
Шаг 8: Настройка среды для наших тестов
Я показываю здесь интерфейс, который мне особенно понравился, потому что он был чистым.
Шаг 9: Настройка среды для наших тестов
Вот несколько вариантов конфигурации:
• Нажав на название канала, мы можем его изменить.
• Мы можем определить, будет ли один из каналов служить триггером для захвата, и определить форму обнаружения.
• Щелкнув и удерживая номер канала, вы можете изменить свое положение в списке.
• Нажав на шестеренку, мы можем настроить визуализацию канала, расширяя…
•… или скрытие канала. Мы скроем все каналы, которые не будем использовать.
Шаг 10: Настройка среды для наших тестов
Нажав на стрелки кнопки «Старт», можно выбрать частоту дискретизации и продолжительность записи.
По какой-то причине, если программное обеспечение обнаруживает, что скорость не может поддерживаться, отобразится сообщение и автоматически скорость будет снижена до тех пор, пока не будет достигнуто функциональное значение.
Шаг 11: Настройка среды для наших тестов
Мы также включим анализаторы протоколов. Во-первых, это I2C, следуя определениям библиотеки WIRE и правильно связывая каналы. Наконец, мы познакомим анализатор с асинхронным последовательным интерфейсом. Нам нужно быть внимательными, чтобы правильно настроить параметры согласно сборке.
Шаг 12: Настройка среды для наших тестов
Во вкладке «Decoded Protocols» мы должны проверить, какие анализаторы протоколов включены. Там данные появятся. Во вкладке «Аннотации» мы можем добавить некоторые результаты для лучшей визуализации. Просто щелкните значок «добавить измерение».
Шаг 13: Захват: обзор
На экране захвата программа отображает последовательность импульсов данных SDA, SCL и TX0.
Шаг 14: Захват: результат анализа протокола
Здесь мы видим результат захвата. На вкладке «Декодированные протоколы» у нас есть:
• Запрос сервера на подчиненное устройство с идентификатором 8.
• Ответ ведомого, шесть символов: «t», «e», «s», «t», «e» и пробел.
• За каждым следует бит ACK (подтверждение), указывающий на правильный прием байта, за исключением символа пробела NACK (не подтверждения).
• Затем мы видим результат декодирования последовательного порта TX0 с указанием символов, полученных и отправленных на последовательный терминал Arduino IDE.
Шаг 15: Захват: канал 0 и данные (SDA)
На этом изображении у нас есть последовательность импульсов линии SDA. Обратите внимание, что можно просмотреть каждый переданный байт.
Шаг 16: Захват: канал 1 и часы (SCL)
Теперь у нас есть последовательность импульсов линии SCL. Вы можете проверить более подробную информацию, просто наведя указатель мыши на сигнал, как вы видите на изображении. Мы видим, что тактовая частота составляла 100 кГц.
Шаг 17: Захват: канал 2 и последовательный (TX0)
Что касается последовательности импульсов линии TX0, мы можем видеть стартовый бит и точки кадрирования каждого бита. У нас есть байт, представляющий символ «е».
Шаг 18: Настройка среды для наших тестов
Здесь у нас есть несколько вариантов чтения данных.
Шаг 19: Захват: осциллограф и анализатор
Посмотрите на экран, который я снял с помощью осциллографа. Сигнал логического анализатора представляет только обнаружение высокого и низкого уровня, но не отражает качество сигнала. Лучше всего это можно наблюдать на осциллографе.
Шаг 20: Захват: наблюдение за отказом (пример последовательного отказа)
Теперь я покажу пример серийного сбоя, который на самом деле случился со мной. Я пытался подключиться к ESP32 с помощью модема GPRS, который используется в сотовом телефоне, с SIM-картой. Но он просто не подключился. Затем я проверил блок питания, проводку и заменил плату. Все сделал, но ничего не исправил. Я решил провести логический анализ: обнаружил, что сигнал ESP на UART 115200 начал рассогласовываться. То есть ESP32 воспроизводил то, что должно быть 115, 200, с другой скоростью, чем эта.
Эта ошибка, обнаруженная анализатором, была отмечена красным значком X. В моем понимании программа говорит, что точка, у которой есть такой бит, наполовину смещена во времени. По мере увеличения этого сдвига может наступить время, когда все будет несовместимо, так что информация не достигнет другой стороны. Обычно он приходит, но SIM800 чувствителен, и если он неточный, информация не доходит до другого конца.
Я не знаю, часто ли это происходит или нет, но это случилось со мной, и поэтому я решил затронуть эту тему здесь. Так что же я сделал? Я притормозил. Если вы поставите 9, 600, 19, 200, до 38, 400, это сработает, чего не происходит с 115, 200.
Шаг 21: Загрузите файлы
Я НЕТ
Рекомендуемые:
Анимированные глаза TFT: 3 шага
TFT Animated Eyes: в этом проекте используются недорогие детали для создания пары анимированных глаз на TFT-экранах. Проект основан на Adafruit "Uncanny Eyes" Два дисплея ST7735 128x128 пикселей и плату ESP32 обычно можно купить в Интернете примерно за
EZProbe, логический пробник на базе EZ430: 4 шага
EZProbe, логический пробник на базе EZ430: это простой проект логического пробника на основе электронного ключа TI EZ430. Я воспользовался бесплатным предложением на пару ez430 от TI в сентябре 2010 года. Они очень удобны и забавны, пробуя небольшие фрагменты кода и наблюдая за миганием светодиода. они с тех пор
Логический анализатор с пользовательским интерфейсом Android: 7 шагов
Логический анализатор с пользовательским интерфейсом Android: мир уже наводнен большим количеством логических анализаторов. В моем хобби электроники мне нужен был один для устранения неполадок и отладки. Я искал в Интернете, но не могу найти то, что ищу. Итак, я здесь, представляю … - ЕЩЕ ОДИН ЛО
Логический пробник с обнаружением импульсов: 8 шагов
Логический зонд с обнаружением импульсов: ДВУХТРАНЗИСТОРНЫЙ ДАТЧИК LOGC, представленный jazzzzzhttps: //www.instructables.com/id/Two-Transistor-Logic-Probe/, прост, но не глуп - он очень хорошо работает, определяя логический уровень TTL. и CMOS. Основная проблема при тестировании цифровых схем
Домашняя автоматизация с Android и Arduino: открой ворота, когда вернешься домой: 5 шагов
Домашняя автоматизация с Android и Arduino: откройте ворота, когда вы вернетесь домой: это руководство посвящено настройке системы домашней автоматизации для управления через смартфон, используя подключение к Интернету, чтобы к ней можно было получить доступ отовсюду, где вам это нужно. Более того, он будет выполнять определенные действия всякий раз, когда критерием является m