Хабрахабр

Присосаться к I2C. Сделай простой логический анализатор

Здравствуйте. Хочу показать простой USB-логический анализатор, который можно собрать на любой отладочной плате с микроконтроллером STM32F042 например NUCLEO-F042K6 от ST. А впрочем, по ссылкам найдёте исходники и легко переделаете на любой другой из этого семейства. В этой конструкции 8 каналов. Под них в микроконтроллере задействованы порты PA0-PA7. Максимальная частота выборки – 8 МГц. Максимальная частота входного сигнала – 2 МГц. Максимальное количество выборок на канал – 4096.

Вот здесь нужно отметить, что логический анализатор это железо & ПО для захвата сигнала и его последующего исследования, измерения, анализа интерфейсов.

Подсчитать количество фронтов в выделенном участке, длительность этого участка.
Оболочка для ПК позволяет после захвата проанализировать сигналы на всех 8 каналах, а также
измерить частоту сигналов, период и длительность импульсов.

А если присосаться к последовательному I2C интерфейсу и активировать анализатор, то будут автоматически расшифрованы все компоненты I2C подкрашены и обозначены в удобном для анализа виде.

Дальше происходит следующее: Работа логического анализатора начинается с нажатия на кнопку «Начать захват».

Захват сигнала начинается после обнаружения условий, заданных установленным триггером.
3) Буфер захвата заполняется в соответствии с заданным количеством выборок.
4) Устройство передает данные на ПК.
5) ПО обрабатывает и отображает полученные данные. 1) Устройству передаются параметры захвата.
2.а) Если триггер не задан, захват сигнала начинается сразу после получения параметров захвата.
2.б) Если триггер задан, устройство анализирует входной сигнал, не выполняя захват.

Если триггеры заданы для нескольких каналов, захват сигнала начинается при одновременном наступлении всех условий, заданных установленными триггерами, т.е. Триггер может быть установлен на один или несколько каналов. Область отображения сигналов можно прокрутить или масштабировать. между триггерами действует логическая связь «И».
Можно изменить имя и цвет каждого канала.

С помощью инструмента «Измерение» можно измерить продолжительность выбранного участка, период, частоту, длительность импульса, посчитать количество фронтов.

«Линейка» удобна при оценке расположения фронтов разных каналов относительно друг друга и относительно нулевой отметки времени. Инструмент «Линейка» проводит вертикальную линию, охватывающую сигналы всех каналов, в указанном месте с указанием времени.

В этом ролике на простом примере можно посмотреть, как это всё работает:

В ближайшее время подарю 16+ канальный логический анализатор с I2C, SPI, UART, I2S. В заключении хочу добавить, что оболочка написана в Visual Studio, ПО для микроконтроллера в IAR. Для построения рассматриваются два микроконтроллера: stm32f730, stm32f446.

Спасибо всем, пользуйтесь на здоровье!

→ Скачать инструкцию, прошивку и скетч.
→ Скачать IAR проект
→ Скачать Visual Studio проект

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть