Если кто не в курсе — логический анализатор это как очень многоканальный осциллограф с очень большой памятью и очень маленькой чувствительностью (прошу тех кто понимает не пинаться). Служит для съема цифрового сигнала в лог для последующего его анализа.
Ссылка в обзоре на аналогичный анализатор у другого прода, я брал
тут, но сейчас у прода этого товара нет. Выбирал прода по картинкам с внутренностями, это важно.
Итак — китайский клон
Saleae16 16 канального логического анализатора на 100МГц. Версия 2 поддерживает оригинальный софт Saleae Logic последней версии 1.1.15.
В комплекте идет длиннющий юсб шнур, 4 щупа-прищепки и пачка проводов на 16 сигналов и 4 массы (провода отдельные, каждый со своей клеммой, я сразу с одного конца клеммы поснимал и заделал в общую колодку для удобства). Софта в комплекте нет, нужно скачать
оригинальный.
Анализатор построен на МК Cypress CY7C68013A (юсб драйвер, на нем строят 10МГц анализаторы на 8 каналов), плис Xilinx Spartan3 (им видимо буферизируют на 100МГц) и логическом конвертере ALVC164245. Тут очень важно наличие последней МС, поскольку на али
встречаются анализаторы со входом подключенным к Плиске через простой делитель, что при превышении допустимого напряжения наверняка ее убьет.
Я не очень хочу морочиться с проверкой всех каналов, ограничимся тремя, тем более, что больше щупов у меня нет :)
Первый тестовый стенд — моушн контроллер на 100кГц, анализируем сигналы enable\step\dir на частоте 500кГц и длинне 10млрд семплов.
В лог влезло включение контроллера, подача enable, переключение dir и импульсы step, всего около 20 секунд и еще куча времени оставалось (я даже затрудняюсь сказать сколько точно, полоска прогресса не заполнилась не на деление). Софт анализатора позволяет писать неограниченное кол-во времени, сколько хватит ОЗУ.
Отрезок ускорения.
Ход на полной скорости. Видно, что контроллер генерирует сигнал недостаточно качественно.
Второй стенд собран на ардуине дуе. К сожалению мне никак не удалось выжать с нее больше 10МГц, скетч получился вот такой:
void setup() {
pinMode(23, OUTPUT);
digitalWrite(23, LOW);
}
void loop() {
/* 300kHz */
//digitalWrite(23, HIGH);
//digitalWrite(23, LOW);
/* 10MHz */
noInterrupts();
tst:
REG_PIOA_ODSR = 0xFFFF;
__asm__("nop\n\t");
REG_PIOA_ODSR = 0x0000;
goto tst;
}
И сразу затык — анализатор отказался работать на скорости выше 40МГц, сообщая что сигнал на заданной скорости получит не удалось. Владельцы пишут что проблемы скорее всего в юсб кабеле, однако я перепробовал все имеющиеся и не один не подошел. Т.е. скорее всего на скорости >40МГц лучше не рассчитывать.
Выводов делать не буду, покупка для меня не однозначная. С одной стороны получить 100МГц мне не удалось, с другой такая частота мне и не нужна вовсе. Учитывая стоимость анализатора думаю ему это можно простить.
UPD1!
Удалось захватить 2 канала на 50МГц и 1 на 100МГц
UPD2!
3 канала по 100МГц в линуксе
Интересный девайс. Пару лет тому назад покупал на деалэкстриме такой.
Продал через пару месяцев без сожаления, практически не использовал.
А тут как раз 1-битный АЦП с низкой чувствительностью: 0В = 0, от 2В (или сколько там?) — 1. И всё.
Кстати софтом можно и прохождение команд отсматривать, даже последовательных протоколов типа i2c
(проснифил протокол)
Если в друг разберетесь как запустить на 100мгц отпишите в личку…
последовательные порты и того меньше
Вот думаю, в чём отличия? Какого-то 8-ногого SOIC-а на нижней стороны платы нет. Он там зачем был, и почему убрали?
И выводы программирования Spartan-а также убрали. Видать, в колодке программируют, а не в плате, как у Вас.
Кстати, не знаете, где таких «наконечников», коих здесь всего 4 штуки, заказать можно?
У меня картинка с 472 выглядела так:
а после замены на 101 — вот так:
для референса — скрин осциллоскопа
Частоту надо повышать плавно и смотреть на какой начнёт фигню казать.