Логический анализатор своими руками на cy7c68013a

Добавил пользователь Владимир З.
Обновлено: 31.08.2024

Хочу поведать вам о простом приборе с отличными функциями. Куплено в Китае за 10 уе. К прибору прилагается шнур USB и соединительные перемычки. Построено данное устройство на процессоре с архитектурой 8051 от Cypress CY7C68013A.

Содержит восемь независимых каналов, отображаемых на экране ПК.

В корпусе содержатся два светодиода один из которых индицирует питание, а второй импульсы на первом входе CH1. Анализатор работает по принципу самописца. В верхнем левом углу окна программы необходимо задать частоту и время записи файла.

i0047rp 5222903

Для установки устройства скачайте программу с офсайта установите её на ПК.

Далее подключите устройство к порту USB и при запросе драйвера укажите на на папку с драйверами которая лежит в папке с установленной программой. При установке драйвера устройство определится в диспетчере как анализатор saleae logic.

i0049rp 4220511

В программе слева в окне возле каждого канала мы видим четыре кнопки, которые переключают запуск по фронтам или по срезу импульса. Колесом мыши удобно изменят масштаб просмотра, стрелками двигать запись в право и в лево.

Справа в окне программы автоматом выдаёт параметры импульсов частота, скважность, период и прочее. Для простых измерений удобно пользоваться как обычным частотомером.

Далее данное устройство можно перепрограммировать для работы с программой от USBee. Устройство распознаётся ПК по нескольким байтам которыё зашиты в еепром 24С02 (24С64 для USBee) . Это PID и VID меняя которые мы сможем выдавать данную коробку за разные устройства. Что бы увидеть PID и VID в диспетчере устройств щелкните на свойства saleae logic.

i0051rp 6381535

Самое простое, как сделать два устройства в одном, это добавить дополнительно микросхему еепром 24С64 и переключателем коммутировать ноги с 24С02 на 24С64. По этому вопросу есть много информации на радиофорумах.

Есть такой замечательный USB осциллограф китайской фирмы Instrustar с маркировкой ISDS205A. Он привлекателен в первую очередь своим софтом, он очень удобен и функционален как для USB осциллографа, ну и конечно же характеристиками, которые очень даже не плохие учитывая цену осциллографа. На Aliexpress она составляет около 55$ за весь комплект. Поэтому если не уверены в своих силах повторить прибор, то целесообразнее будет приобрести готовый прибор. Тем более разница в цене не такая и большая. Вообще вся эта затея по повторению, исключительно из спортивного интереса. Одно из отличий это то что в авторском варианте питание реле осуществляется от +5В, которые выходят из преобразователя, тем самым нагружая последний и перекашивает напряжения. В нашем случае питание реле будет осуществляться от отдельного стабилизатора, и преобразователь также будет другой. Ниже приведена схема Instrustar ISDS 205A (модифицированная).

Схема электрическая осциллографа.

Особенности сборки

Печатная плата прикреплена внизу в архиве. Плата на которой я изготавливал осциллограф содержит небольшую ошибку в разводке, поэтому некорректно управляет реле. Пришлось применить инвертор (на фото видно микросхема расположена выводами вверх и распаяна на проводках).

Осциллограф ISDS205 плата верх

Осциллограф ISDS205 плата низ
Осциллограф ISDS205 Плата общий вид

Осциллограф ISDS205 DC преобразователь в сборе

Это нужно для контроля работоспособности ОУ. После установки первого, подаем питание и контролируем напряжение на входе и выходе. У нормального ОУ должно быть 0 вольт на входе и выходе. Ну и теперь про сам DC — DC. Он делает из 5 вольт +5 и -5 Вольт. Его схема и плата также есть в архиве. Там самое сложное — намотать транс. Нужно обязательно соблюдать полярность намотки и ничего не напутать.

Осциллограф ISDS205 DC преобразователь

Можно также приобрести готовый DC-DC, при этом немного возрастает уровень шумов осциллографа. После сборки нужно прошить микросхему Eeprom. Для этого устанавливаем перемычку на плате, подключаем по USB к компьютеру, запускаем программу Cypress Suite, заходим в EZ Console, нажимаем кнопку LGeeprom, выбираем файл прошивки из архива (расширение .iic), и прошивка загружается. Подробнее о прошивке можно почитать в статье о логическом анализаторе. Корпус применен стандартный с маркировкой BIS-M1-BOX-100-01BL. Размер корпуса — 100*78*27 мм. Идеально подходит для платы с архива. Ниже фото самого корпуса и процесса сборки.

Осциллограф ISDS205 корпус в упаковке
Осциллограф ISDS205 корпус вид с боку
Осциллограф ISDS205 корпус вид сверху
Осциллограф ISDS205 корпус вся комплектация
Осциллограф ISDS205 корпус вся комплектация
Осциллограф ISDS205 примерка платы
Осциллограф ISDS205 примерка платы
Осциллограф ISDS205 окончательный вариант

Осциллограф ISDS205 окончательный вариант

Это основные моменты при повторении этого прибора. Еще раз напомню что он делался в целях ознакомления. Если не уверены в своих силах — лучше купить готовый.

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

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

Применение логического анализатора

Анализ COM-протокола

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

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

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

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

Логический анализ WS2812

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

Логический анализ WS2812

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

Логический анализ I2C

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

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

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

Логический анализ прямоугольных импульсов

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

Логический анализ прямоугольных импульсов

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

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

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

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

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

Логический анализатор в цифровой электронике может оказаться незаменимым помощником наравне с осциллографом. Часто при анализе цифровых сигналов не нужна большая разрядность АЦП, а достаточно наблюдения всего 2-х состояний входных сигналов – 1 или 0. При этом логический анализатор обладает большим числом входов, в то время как большинство осциллографов имеют только 2 канала.

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

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

Давно обратил внимание на различные логические анализаторы на основе микросхемы CY7C68013. Поглядывал на них и недавно, наконец, решился купить один из клонов Saleae Logic / USBee.

Проверка логического анализатора

Проверка логического анализатора

Анализ протоколов UART и WS2811

Анализ протоколов UART и WS2811

Анализ протокола UART

Анализ протокола UART

Анализ протокола WS2811

Анализ протокола WS2811

Так же есть возможность использования флагов, для подсчёта длины посылок.

Всё работает и всё что можно декодируется. В UART пакетах над каждой посылках подписан переданный байт, жалко только, что программа не распознаёт кириллицу, а отображает только ASCII код незнакомого ей символа.

Данный логический анализатор позволяет, как не странно, анализировать цифровые сигналы от 0 до 5,5В, пороговое напряжение 1,5В. Для большинства цифровых сигналов этого достаточно. Ни какой защиты по входам у него нет, ещё бы за такие деньги, так что во время его использования нужно быть аккуратным и не подключать его туда, куда не следует.

Заглянем во внутрь.

Плата анализатора, вид сверху

Плата анализатора, вид сверху

Первым делом в глаза бросается контроллер – CY7C68013A, рядом с ним находится ЕЕПРОМ, с настройками контроллера. Чем интересна эта микросхема – тем, что при каждом включении она загружает программу с компьютера по USB в свою RAM. И, по сути, из этого контроллер можно делать всё, что угодно, не прошивая в привычном понимании этого слова, когда другим микроконтроллерам необходим программатор или специальный надстройки. Ещё заметны 24МГц кварц и буферный элемент с обвязкой.

Плата анализатора, вид снизу

Плата анализатора, вид снизу

На обратной стороне расположился стабилизатор.

Качество сборки нормально, только плату не отмыли.

Повторюсь, логический анализатор и его программное обеспечение порадовали. Из недостатков – во время работы немного нагревается.

Тоже месяцев 5 назад прикупил девайс.Дешево и приятно.Хороший прибор

У меня их ПО регулярно падает при малейшем сдвиге проводов. Не хочется грешить на ПО, но можно было бы как-то обрабатывать подобные случаи, а так приходится вынимать его из юсб, запускать ПО, вставлять в юсб, ждать, когда ПО обнаружит анализатор

можно ссылку на магазин где покупали?

Возможны 2 причины данной проблемы: или приставка попалась плохая, или, что более вероятно, у компьютера USB работают на низкой скорости. Причины: устаревшее оборудование, сильно нагружены порты и/или компьютер, конфлик драйверов. Решения — разгрузить компьютер и/или подключить приставку на прямую, подключиться к другому порту на ПК, желательно к тем, что на материнки, поставить PCI- USB контроллер или попробовать на другом компьютере.

у меня ноутбук, пробовал менять подключать в разные порты — безрезультатно

Значит Вам не повезло. На моём старом нетбуке то же не всё идёт.

У меня на нотбуке тоже выше 1МГц не работал. На нормальном ПК всё отлично работает на 24МГц

Главное на плате написали Green а установили красный светодиод! ?

Китайцы. Главное, что работает и работает нормально

Хороший недорогой аналог, для стабильной работы лучше подключать без всяких хабов и переходников, напрямую в порт.

Недавно пришел клон за 500р, тоже была проблема, выше 2 Мгц we’re sorry but logic was not able to keep up at this data rate.
Может кому поможет, проверял на arduino nano, подцепил щупы к rx и tx, и заливал blink через FT323.
Но если подключить щуп к 13 ноге (мигающий светодиод), все нормально, пришел к выводу, что передача данных через FT забивает USB…
так же могут быть проблемы с usb wifi, работой с флешкой и возможно игровыми мышами с высокой частотой обновления
пробовал подключать анализатор и FT к USB 2.0 и 3.0 в различных комбинациях, результат одинаковый.

У меня saleae logic 16 не работает с USB шнурами…
Дома нашел несколько.
Один топовый был за прям деньги брал, у меня с ним работает абсолютно все, что подключал…
Другой брал от принтера… Он кстати девайс определил и драйвер поставил, но работать отказался.
А вот родной китайский шнурок, с ним все хОкей!
С пол пинка завелся и заработал.
На устаревшее железо грешить грех, все же Core i7 с 16Гб ОЗУ, и несколькими SSD накопителями… Да и видео хотя на сегодня и не супер но 660Ti JetStream…
Так вот случись чего с китайским шнурком, и где искать новый? ?

И заметил еще одну мелочь, на частотах выше 12MS/s канал CH0 врет. В то время как другие корректно работают вплоть до 100MS/s.
Подключал сразу несколько каналов к одному источнику сигналов.
На картинке, все сигналы имеют одну и ту же последовательность, но CH0 импульсы еще и заполняет, а по замерам частоту показывает в разы выше.
Но возможно просто пока не разобрался. Нужно какой нить протокол посмотреть ?
Сейчас пойду заценю USART… ?

Шнуры длинные или короткие, насколько качественные? Возможно ему не хватает питания.

Изучив вопрос в сети, было найдено бюджетное решение для создания аналога USB-интерфейса USBi от Analog Devices на базе микроконтроллера Cypress CY7C68013A . Кстати интерфейсная плата от AD построена тоже на чипе от Cypress, но немного на другом CY7C68053. Готовые платы с микроконтроллером CY7C68013A в виде модулей продаются на всем известном китайском сайте примерно по 200+ рублей, искать по фразе EZ-USB FX2LP CY7C68013A , выглядит она так:


Плата EZ-USB FX2LP на микроконтроллере CY7C68013A

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

Первый способ. Ручной запуск скрипта ADI_USBi.

Это самый распространенный способ в сети который предлагают все кто не смог разобраться с данным USB устройством.

Для начала нам нужно установить программное обеспечение CySuiteUSB, которое доступно для скачивания на сайте производителя чипа Cypress по этой ссылке. После установки подключаем наш USB модуль к компьютеру, в диспетчере устройств он определился как Cypress FX2LP No EEPROM Device


USB устройство Cypress FX2LP No EEPROM Device

В SigmaStudio USB устройство пока что не распознается, о чем нам сигнализирует надпись USB на оранжевом фоне.


Идем на компьютере в Пуск — Программы — и в папке Cypress запускаем утилиту CyConsole. В интерфейсе программы должно отображаться наше устройство Cypress FX2LP No EEPROM Device .




После переподключения оно уже определится как Analog Devices USBi (programmed), это как раз то устройство которое нам нужно, чтобы его увидела SigmaStudio.



SigmaStudio сигнализирует надписью USB на зеленом фоне что USB подключен, можно программировать и управлять нашим DSP аудиопроцессором.


Второй способ. Автоматический запуск скрипта
ADI_USBi.

Второй способ должен был работать как говорится из коробки при установке драйвера, который находится в каталоге установки SigmaStudio …\Analog Devices\SigmaStudio 4.2\USB drivers\x64\, но почему то не работает видимо из-за устаревшей версии драйвера, не стал с ним разбираться, а полез в документацию по чипу CY7C68013A, а именно документ описывающий загрузочные опции чипа.

Как оказалось есть возможность автоматически выполнять скрипт при подключении USB устройства к компьютеру, нужно только правильно приготовить драйвер, а именно файл *.inf. Микроконтроллер
CY7C68013A из памяти имеет только ОЗУ и загруженная в него программа сбрасывается каждый раз при отключении питания. В первом способе мы загружали программу в ручном режиме, но можно прописать в inf файле идентификаторы VID/PID чтобы USB устройство определялось как
Cypress USB BootLoader и файл inf связывает этот VID/PID для загрузки прошивки из файла скрипта автоматически. Как подготовить inf файл описано в документации Cypress CyUsb3.sys Programmer’s Reference.

В нем есть подробное описание с примерами как нужно подготавливать inf файл. Я исправил inf файл согласно документации и теперь после установки этого драйвера, USB устройство определяется как Cypress USB BootLoader, и как только модуль подключается к компьютеру, в него автоматически загружается скрипт и наше устройство уже определится как Analog Devices USBi (programmed).






Если винда попросит перезагрузки, можно отложить. Переподключаем наш USB модуль и вуаля, теперь он определяется сразу как Analog Devices USBi (programmed) без запуска утилиты CyConsole и ручного запуска скрипта.


SigmaStudio сразу же определяет USB устройство корректно.


Третий способ. Специальная прошивка для микроконтроллера.

Если вы заметили то на плате имеется небольшая микросхема в корпусе SOIC-8, это ни что иное как микросхема памяти EEPROM.


Она подключена к микроконтроллеру CY7C68013A по шине I2C. И если посмотреть документацию EZ-USB FX1/FX2LP Boot Options , то там описано что микроконтроллер умеет загружать программу не только по USB но из внешней EEPROM. В эту память можно записать программу которую микроконтроллер загрузит в свою память RAM и начнет сразу же работать согласно инструкций этой программы.

Тут стоит немного вернуться ко второму способу, я в файле inf указал в качестве устройства Cypress USB BootLoader VID и PID которые у платы установлены по-умолчанию, это не страшно если вы больше не будете подключать аналогичные USB устройства на чипе CY7C68013A , в противном случае у вас все аналогичные устройства будут определяться как Analog Devices USBi (programmed). Для решения этой проблемы можно записать во внешнюю EEPROM небольшую программу, а точнее даже не программу, а просто нужные значения VID/PID в конкретные ячейки памяти, к которым в файле inf будет сопоставлено устройство Cypress USB BootLoader. Описание находится в разделе 2.1 C0 Load: Loading USB IDs from I2C Device.


Таблица значений ячеек памяти EEPROM для режима загрузки C0

Обратите внимание, что в ячейке по адресу 0 должно находится значение 0xC0. А что будет делать микроконтроллер если в нулевом адресе будет значение C2? Об этом режиме можно прочитать в разделе 2.2 C2 Load: Loading Firmware from I2C Device. Кратко — при сбросе или при включении питания, если микроконтроллер обнаруживает внешнюю память EEPROM, подключенный к его I2C шине со значением 0xC2 в ячейке памяти по адресу 0, то он загружает прошивку из EEPROM.

Таким образом мы можем записать в EEPROM прошивку и она будет выполняться каждый раз когда мы подключаем USB устройство к компьютеру.


Читайте также: