Saleae logic своими руками

Позанимаемся анализом

Как раз разбирался с подключением ультразвуковых датчиков DYP-ME007Y, на вид абсолютно одинаковыми, но работающими совершенно по разному.

Если один работает точно по даташиту: короткий импульс на «триггер» запускает ультразвуковой импульс и по длительности эхо измеряется расстояние. То второй и третий (с мигающим светодиодом) примерно раз в 100мс без каких либо внешних пинков сам мерит расстояние и посылает его на скорости 9600 в виде четырех байт (включая контрольную сумму). Программа Saleae Logic позволяет включить декодирование сигнала последовательной шины в последовательность байт. Датчики второго типа отлично работают с отключенным выводом «TRIG», хотя может и ждут какой нибудь команды на этом входе, но сие даже волшебный приборчик не покажет.

Далее захотелось посмотреть ШИМ сигнал Aтмеги 168? Включил все шесть каналов поддерживающих PWM на разный уровень и с удивлением обнаружил, что частота двух каналов ШИМ отличается от 4-х других. Задействованы разные таймеры?

А что там на шине данных у моих любимых WS2812?

Волшебный приборчик и программа нормально декодировали последовательность, выдаваемую на светодиоды. Даже цвета светодиодов нарисовались.

С анализом шины I2C тоже никаких проблем. Софт нормально справился с декодированием.Можно видеть пакеты записи в регистры при работе драйвера дисплея TM1637

RF-приемник на 315МГц, подключенный напрямую к анализатору, получил сигнал с радиовыключателей, и выдал манчестреский код. После подбора скорости манчестреский код превращается умной программкой в последовательность байт.

Интересно, а как с точностью измерения временных интервалов? Точного генератора импульсов у меня под рукой не оказалось, но Ардуиновская tone(1000) на 1000Гц

и tone(20000) на 20КГц дают довольно точный результат.

Для проверке высокой частоты на скорую руку собрал генератор на NE555. Удалось выжать из него 8МГц. Анализатор проглотил эту частоту нормально. На 20МГц проверить не удалось, но 8 для такой дешевой железки тоже очень хороший результат.

Читайте также:  Как сделать грузовой прицеп своими руками

Небольшой итог

Логический анализатор очень нужная и полезная вещь для тех, кто занимается раскапыванием китайской периферии к микроконтроллерам (Назовем красиво — реверс инжинирингом)
Из достоинств данной железки хочу отметить:

  • Привлекательную цену
  • Совместимость с довольно удобным софтом Saleae Logic
  • Защита на входе в виде шинного формирователя LVC245A
  • Малые габариты

Явных недостатков у этой железки для себя не нашел. Жаль, что я не приобрел логический анализатор раньше — сколько времени бы я сэкономил во многих проектах. Несомненно, кому то возможностей данной железки окажется мало. Есть масса более навороченных моделей, но по цена $100-200 делает эти приборы гораздо менее доступными для радиолюбителей.

Источник

Логический анализатор CY7C68013A

Тому, кто ищет недорогой вариант 16-канального логического анализатора уровней, возможно будет полезна эта статья. Речь пойдет об устройстве на китайской отладочной плате EZ-USB FX2LP CY7C68013A за 300 рублей (на апрель 2018) с контроллером CY7C68013A от CYPRESS. Работает он без доработок с отличной бесплатной программой PulseView (16 каналов) это полностью легальный вариант и с небольшими доработками с Saleae Logic (8 каналов). Также используют с USBee Suite, но я не пробовал. В последних двух случаях это уже вроде как мелкое мошенничество.

ОС у нас будет Windows (проверено в 7,10). Просидел 3 часа с Linux Debian – продвинулся где-то до середины, потихоньку получается, думаю, собрать можно, если очень захотеть, но я пока отложу это «увлекательное» занятие. Для тех кому интересно: https://hackaday.io/project/21056-building-sigrok-on-linux-mint

Микросхема CY7C68013A и железо

Начнем с небольшого обзора. CY7C68013A довольно слабенький, по сегодняшним меркам, 8-битный микроконтроллер с ядром 8051 и без встроенной энергонезависимой памяти. Поэтому программа должна либо каждый раз загружаться извне, либо через тот же USB, либо надо использовать внешнюю EEPROM, что мы и наблюдаем. В целом контроллер заточен на работу с USB. Важным аспектом является то, что при питании 3.3В все входы у нас «5V tolerant», то есть можно смело подавать сигналы 5В.

Читайте также:  Замена переднего моста уаз 469 своими руками

Теперь о плате: тут имеется выключатель питания платы, кнопка reset и две перемычки J1 и J2 (есть также более старый вариант платы с одной перемычкой, о нем ничего сказать не могу). Перемычка J1 подает питание на пользовательские диоды D1 и D2, которые подключены к контроллеру. Перемычка J2 вероятнее всего меняет адрес микросхемы, что делает ее пригодной (перемычка снята) или непригодной (установлена) к записи через Cypress USB Console.

Работа с PulseView

Для того чтобы устройство заработало с PulseView нам понадобится проделать следующее:

  1. Установить PulseView https://sigrok.org/wiki/Downloads
  2. Установить драйвер https://community.cypress.com/docs/DOC-12366
  3. Устройство будет распознано как Cypress FX2LP No EEPROM Device, но работать как мы хотим оно пока не будет
  4. Теперь нам надо с помощью программы Zadig http://zadig.akeo.ie/ подменить наш драйвер
  5. Запустите Zadig, в Options установите «List all drivers»
  6. Выберите Cypress FX2LP No EEPROM Device, после зеленой стрелки WinUSB (по умолчанию) и нажмите Replace Driver (материал частично взят отсюда: http://www.instructables.com/id/FX2LP-CY7C68013A-USB-Dev-Board-Logic-Analyzer/ )
  7. Установка может занять 5-10 мин., в конце может появиться сообщение о провале, но драйвер заменится

  1. Далее открываем PulseView. Устройство должно определиться автоматически, если этого не произошло, переподключаем плату, жмем на выпадающее меню и выбираем наше устройство (step1; как на скриншоте), жмем Scan…(step3), выбирает найденное (step4) и жмем «ок».

Здесь для нас не имеет значения установлены или сняты джамперы.

Выборка 23MSps до 8 каналов и 11.5MSps до 16 каналов.

Переделка под Saleae Logic

А теперь для тех, кто хочет потратить время и нервы непонятно зачем. Переделка под Saleae Logic. Сама программа мне понравилась меньше, чем PulseView, но если ви таки хочите немного охотиться до впечатлений, то вот они: для истользования с Saleae Logic нам понадобится прошить в EEPROM PID/VID, чтобы ПО распознало устройство как нативное. Но!, микросхема памяти EEPROM 24C128, установленная на плате не годится для тех прошивок, которые нам предлагают повсеместно. Годные микросхемы 24с02..24с16 (я поставил аналог с алиэкспресса — 24LC16). Но и это еще не всё, прошив память вы потеряете возможность использовать 16 каналов. PulseView тоже сможет работать с устройством, но уже увидит его как Saleae Logic с 8 каналами. Чтобы иметь возможность использовать оба варианта, нам понадобятся небольшие доработочки.

  1. Отпаять R8 и D2
  2. Отогнуть 8-ю ножку 24LC16, чтобы она не касалась дорожки (делать это надо перед пайкой микросхемы, иначе велик риск отломать ножку)
  3. Припаять перемычку (любой проводок или лучше кусочек ножки выводного резистора. Сначала припаять, потом отрезать остаток ножки) между отогнутой ножкой и посадочными местами резистора R8, как на фото
Читайте также:  Как сделать опалубку для фундамента своими руками

Такая доработка даст возможность отключать питание микросхемы памяти перемычкой J1, когда надо будет использовать 16 каналов и включать для использования Saleae Logic.

Аппаратные доработки закончены, перейдем к программным. Чтобы прошить память потребуется:

  1. Скачать и установить ПО: CySuiteUSB_3_4_7_B204 http://www.cypress.com/documentation/software-and-drivers/suiteusb-34-usb-development-tools-visual-studio (кстати вместе с ним ставится и драйвер)))
  2. Снять перемычку J2, установить J1, включить устройство
  3. В программе CyConsole идем в Options, выбираем EZ-USB Interface

  1. Если вы ранее уже подменили драйвер через Zadig, то ничего у вас не выйдет! Надо откатиться обратно. Для этого надо в диспетчере устройств удалить драйвер (свойства, драйвер, удалить устройство), обязательно поставив чекбокс «Удалить программы драйверов для этого устройства». Если что читать здесь: https://github.com/pbatard/libwdi/issues/8
  2. Жмем «S EEPROM» и прошиваем прошивкой Saleae.iic (материал частично взят отсюда: http://myfreescalewebpage.free.fr/toolbox/logic/logic.htm ) прошивка прилагается
  3. Если всё хорошо, то видим следующее:

Рис.7. Успешная прошивка.

  1. Не забудьте снова подложить драйвер через Zadig (снять J1, переподключить, подменить драйвер)

Если вдруг понадобится перепрошить память, надо снять J1, переподключиться, «S EEPROM» выбрать прошивку но не открывать (прошивать) ее, установить J1, открыть (прошить).

Теперь мы имеем 2 устройства. Снятая перемычка J1 – 16 каналов PulseView, установленная — 8 каналов Saleae Logic.
Ярослав Власов

Источник

Оцените статью