Я учусь анализировать частоту и данные шины SPI с помощью цифрового запоминающего осциллографа начального уровня. Я использую BK Precision 2542B для измерения выхода тактовых импульсов и линий MOSI от Netduino, который использует микроконтроллер ARM.
На этом изображении у меня есть часы на канале 1 (желтый) и MOSI на канале 2 (синий). Триггер настроен на использование канала 1, используя триггер с нарастающим фронтом 1.44V. Амплитуда тактовой волны составляет около 3,3 В.
Триггерный индикатор находится в центре дисплея по горизонтали, но у меня есть импульс слева от него. Я ожидал, что первый импульс часов начнется в месте запуска. Я знаю, что цифровой запоминающий осциллограф позволяет вам видеть события до и после запуска, но я запутался, почему первый импульс не там, где я думал.
Мое понимание запуска неверно, или я просто использую странную область?
Редактировать: ширина импульса составляет 300 мкс, повторяется с интервалом в 2 мс, и у меня есть значение удержания триггера 500 мкс. Регулировка удержания не изменила тот факт, что один импульс предшествует триггеру.
Изменить 2:
После дополнительного анализа сигнала, в том числе с использованием аналогового осциллографа, я думаю, что я определил, что иногда длительность импульса составляет около 350 мкс вместо 300 мкс. Это может быть сбой в коде, генерирующем кадры.
Я обнаружил, что время задержки 352 мксек даст ожидаемый результат, но время от времени дополнительный импульс предшествует триггеру.
Я записал несколько кадров, чтобы показать, что импульс отсутствует и присутствует:
Если я установлю горизонтальную временную базу достаточно долго, чтобы увидеть длительность импульсов, между ними всегда будет не менее 1,7 мс:
Поэтому, хотя я думаю, что ведущий импульс является результатом «сбоя» источника, я все еще не уверен, как удержание триггера> 360 мкс все же дает неожиданный ведущий импульс.
источник
Ответы:
Возможно, у вас включена какая-то фильтрация триггера или задержка. В противном случае обычный триггер с нарастающим фронтом должен был поймать первый импульс, а не ждать до второго. Внимательно просмотрите триггерное меню и отключите все, что называется «фильтр», «задержка», «задержка» и тому подобное.
источник
Этот же сигнал срабатывает очень хорошо, используя Tektronix TDS3014, со значениями задержки срабатывания в диапазоне от 350 мкс до 1,5 мс или более.
Поэтому я думаю, что ответ заключается в перекрестной проверке сигналов с несколькими областями, когда что-то выглядит неправильно.
Я так и не смог заставить BK 2542B правильно показывать часы, не пропустив ни первый импульс, ни показав случайные «сбои» или «мусор», делающие тактовые импульсы несчетными.
источник
Чувак, шина SPI синхронизируется при падении тактовой частоты, а не при подъеме, поэтому все выглядит неуместно!
С уважением, Макс
источник
Ну, технически ваша сфера не сделала ничего плохого: вы хотели синхронизироваться по нарастающей частоте, и все ваши скриншоты есть. Никто не говорил вам, что это будет первый пульс . Если прицел начинает запись достаточно рано, триггер должен нажать на самый первый импульс, если нет - повезло, вы получите изображение # 2.
Я не могу понять, почему вы хотите, чтобы ваш триггер был на CLK, а не на сигнале SS. Падение фронта SS гарантирует, что вы находитесь в начале транзакции, а повышение CLK - нет.
РЕДАКТИРОВАТЬ: учитывая, что вы, кажется, всегда пропускаете ровно один импульс, в конце концов, это похоже на ошибку в области видимости. Тем не менее, посмотрите, помогает ли запуск по SS.
источник