Логический анализатор из компьютера своими руками. Основные характеристики прибора. Скачать инструкцию по работе с программой для логического анализатора Saleae

В данной статье представлен простой логический анализатор работающий с оболочками USBee v1.1.57 и Logic v1.1.15. Собран на микросхеме распространенной микросхеме CY7C68013A фирмы Cypress. У меня имелась готовая плата с этой микросхемой заказанная с сайта Aliexpress. Вот такой у нее вид:

Хотел на ней сделать LPT порт, но потом надобность в нем пропала и так она валялась не востребованная. Понадобился мне простой логический анализатор. Решено было сделать на этой плате. На просторах интернета много схем на этой микросхеме. Требовалось добавить буфер для передачи данных, сделать защиту по входу и возможность выбора с какой оболочкой работать. Плата расширения одевается сверху основной платы. Скажу сразу, что схема, плата, прошивки и все необходимое для работы с данным логическим анализатором находится внизу статьи. В качестве буфера использовалась микросхема 74LVC4245 , можно применить 74LVC8T245A они полностью идентичны. Защитную функцию по входу выполняют диодные сборки BAV99. И так родилась такая схема:


Джампером J1 выбираем направление передачи данных. В замкнутом состоянии на прием данных, в разомкнутом на передачу. Есть такая оболочка как USBee AX Test Pod . Она содержит много тестовых утилит при помощи нее можно протестировать работу собранного устройства. Одна из возможностей это генерировать на выводах XP3 разные частоты. Правда самому задавать их нельзя. Выводится сразу 8 разных частот. Также можно устанавливать в 0 или 1 выходы и много других тестов. Джампером XP5 выбираем с какой оболочкой будем работать USBee v1.1.57 или Logic v1.1.15 . В U2 и U3 соответственно загружается прошивка для разных оболочек. Джампер XP4 это защита от записи. Нужен будет при старте оболочки от Logic. Джампером J2 задаем напряжение входных уровней. Если он замкнут то входной уровень сигнала должен быть 3.3 V. Так же предусмотрена возможность установить уровень сигнала такой каким напряжение питается диагностируемое устройство но не больше 5V. Для этого размыкаем J2 и напряжение питания диагностируемой платы подаем на 10 вывод XP3. Так же не забываем соединить между собой общий провод анализатора с диагностируемой платой. Для начала нам нужно доработать основную плату т.е удалить микросхему памяти 24C128.

У моей платы также не было соединения GND USB разъема и GND CY7C68013A пришлось соединить проводком.


Больше никаких изменений делать не нужно.

Теперь изготавливаем нашу платку размером 41мм х 58мм. В итоге получаем такой результат:



Соединяем две платы:



Для начала работы нам нужно прошить микросхемы памяти. Для этого устанавливаем утилиту от Cypress CySuiteUSB_3_4_7_B204 . Убираем с платы джампер XP5 и подключаем плату к ПК, в диспетчере устройств появится неизвестное устройство.


Устанавливаем драйвера из файла Driver_Cypress_win7 win8. Указываем диспетчеру, что искать драйвера в этой папке. Система сама установит необходимый драйвер. Появится новое устройство в контроллерах USB:


Запускаем установленную программку Control Center . Перед нами откроется окно, где в верху должно быть наше устройство.

Выбираем вкладку Option затем EZ-USB Interface:

Откроется следующее окно:


Ничего здесь не меняем. Нам нужна только кнопка S EEPROM. Джампером XP5 выбираем одну их микросхем памяти. Нажимаем S EEPROM и указываем где хранится наша прошивка. Выбираем прошивку в зависимости от типа памяти и нажимаем "Открыть". Цифры в конце названия прошивки указывают для какого типа памяти прошивка. Для 24C01 нужно выбирать USBeeAX_01, а для 24C02 USBeeAX_01.


Пойдет процесс заливки информации. При удачной прошивке должно быть сообщение как на скриншоте. Кол-во байт может отличаться в зависимости от выбранной прошивке.


Нажимаем кнопку сброс на плате и видим в диспетчере устройств новое неопознанное устройство. Устанавливаем драйвера. В автоматическом режиме драйвера не установятся. В ручном режиме указываем, что установить с диска и выбираем драйвер из папки Driver Cypress win7_win8. У меня на Windows 8.1 заработало с драйвером EZ-USB FX1 No EEPROM (3.4.5.000).

Здравствуйте, уважаемые радиолюбители. В этой публикации рассмотрим анализатор, который, как известно, один из самых необходимых инструментов в арсенале радиолюбителя. Это видео снято на канале Паяльник TV. Автор ролика расскажет о маленьком, но незаменимом во многих случаях приборчике – логическом анализаторе. Он по своим функциям является клоном известного логического анализатора Saleae Logic, который можно приобрести в интернет-магазинах. В своё время он был купен примерно за 5-6 долларов. Это миниатюрный 8-канальный логический анализатор с максимальной частотой сэмплирования 24 Мгц.

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

Также возможность появилась захвата аналогового сигнала, правда, с невысокой частотой дискретизации. На момент приобретения этого клона в линейке Saleae было всего, если я не ошибаюсь, 2 логических анализатора это 8-канальный и 16-канальный. И вот у меня в руках 8-канальный анализатор, то есть, его клон. В комплекте было 10 таких проводков длиной где-то 25 см, с такими разъёмами, которые на IDC и PLS контакты. И сразу я заказал такой наборчик небольших щупов, чтобы было удобно сразу подцепиться либо к ножкам компонентов, либо в других случаях, когда такие контакты невозможно использовать.

И большим, конечно, стимулом, можно сказать, к созданию этого обзора стала новая версия программного обеспечения от компании Saleae, которое обладает заметно большими возможностями перед старыми версиями. И большая часть этого обзора будет посвящена именно обзору программного обеспечения, так как, собственно, здесь особо нечего рассказывать. Так как этот логический анализатор на основе ПК, и схема его достаточно проста. Здесь лишь один контроллер, задача которого – в реальном времени передавать данные на USB. И обвязка минимальна. Сейчас я покажу поближе. Корпус разбирается довольно просто, и перед нами теперь лежит такая платка. Как я говорил, ничего особенного здесь нет. Разъём mini-USB, кварц 24 МГц, сам контроллер с минимумом обвязки. Здесь подтягивающие резисторы, и резисторы последовательно стоят, защитные.


С обратной стороны так же микросхемка EPROM, развязка по питанию, и стабилизатор 3,3 В, и IDC разъём припаян для подключения. В отличие от оригинальной версии, китайцы, конечно, на аппаратной части значительно сэкономили. Во-первых, это отсутствие защитных диодов по входам. В оригинальной версии это есть. Также там присутствует предохранитель, SMDшный стоит, по питанию. И самое большое отличие – это применение многослойной печатной платы. Здесь же плата двухслойная. Соберём прибор и приступим к обзору программной части. Итак, это старая версия программы, 1.1.15. Анализатор у нас не подключён, и сейчас мы можем воспользоваться программой в режиме симуляции. Но об этом попозже. Начнём с настроек, их не так много. Первое это размер буфера, то есть, то количество сэмплов, которое мы можем увидеть левее первого срабатывания триггера. По умолчанию 10 миллионов, но можем изменить от 1 до 1000. И активировать длинную запись, до 1 триллиона сэмплов. Но здесь предупреждение, что это займёт много памяти. Далее, настройки интерфейса и проверки обновлений, настройки для 16-канального анализа. И здесь мы можем указать папку с дополнительными плагинами, анализаторами протоколов. Настройки захвата, количества сэмплов, от 1 миллиона до 10 миллиардов, и частота сэмплирования, от 25 кГц до 24 МГц.

Первое неудобство – это то, что нельзя просто взять мышкой и перетащить канал на нужное место. Даже щелчок правой кнопкой не открывает никаких свойств. Меню свойств канала находится левее. Если подвести мышку левее триггера, появляется маленькая кнопочка. И здесь у нас параметры канала скрыть канал, скрыть все каналы ниже, показать, передвинуть вниз. Весьма неблагодарное занятие, особенно если необходимо передвинуть несколько каналов. Так что тут проще подключить сразу в нужном порядке, чем потом через менюшку, это очень долго, передвигать.

Настройки триггера весьма скромные это у нас либо восходящий фронт, либо спадающий фронт. И для остальных каналов мы можем задать дополнительные условия. Сейчас синхронизация запустится в момент, когда на нулевом канале будет спадающий фронт, на первом канале в этот момент будет высокий логический уровень, на втором низкий, и на третьем высокий. Теперь поддерживаемые протоколы. Их не очень много, но зато есть SPI Ии V2C, самые популярные в микроконтроллерах интерфейсы. Добавляем SPI – и попадаем в настройки. Здесь указываем, к какому каналу подключён какой сигнал. И настраиваем свойства протокола какой бит первый, количество бит на посылку, до 64, 8 стандартно, полярность, фаза тактового сигнала, и какое активное состояние Enable, низкое или высокое. Сохраняем, и программа предлагает нам переименовать каналы. Соглашаемся. И воспользуемся симуляцией. На остальных каналах хаотичная последовательность символов, так как никаких протоколов на них не назначено. Увеличиваем масштаб, Enable, тактовый сигнал, выходящие данные, входящие данные. Последний байт не докодируется, так как в этот момент Enable высокий, то есть, не активна у нас передача. И над каждым байтом его значение. Можем изменить настройки, в какой системе лучше отображать. Мне удобнее в двоичной, вот наши байты в двоичной системе. Справа окно измерений, то есть, наводя курсор, мы видим ширину импульса, период и частоту. Можем добавить скважность, и показывать байт.

Также есть возможность установить курсоры, но работают они весьма странно. То есть, для быстрой навигации это не годится. Мы поставили два курсора, хотим другой байт какой-то посмотреть, и никак быстро перейти к нему не можем. Если нажмём опять на Т1, то заново программа предложит установить курсор. Не очень это удобно, но как есть. Новая версия программы 1.1.34 бета. Этот интерфейс мне нравится гораздо больше. Всё более однородно, лучше отрисовано, и наконец-то можно просто взять – и мышкой перетащить канал в нужное место. Или даже несколько каналов. А не лазить через меню, как в предыдущей версии, которая в этой версии также на виду. Можно изменить также вертикальный масштаб канала. И по правому щелчку тоже появляется меню. Продолжительность захвата теперь устанавливается не только в сэмплах, но и по времени, в миллисекундах или в секундах. Поставим 10 секунд, 4 МГц, частота сэмплирования. Как видите, в новой версии наш китайский анализатор определился без проблем. Добавилось довольно много новых протоколов, как вы видите. Не буду все перечислять, но вот даже USB 1.1, PS/2, JTAG, и даже HD44780. Теперь можно отлаживать дисплей. Дальнейшую работу я покажу на реальном устройстве. добавим протокол SPI, входящих данных у нас нет. И протокол, по умолчанию все настройки. Скроем пустые каналы, и сделаем побольше оставшиеся. Скрыть каналы, выделим все, увеличиваем масштаб…
Настройки синхронизации в этой версии расширились. Хотя по-прежнему им далеко до профессиональных логических анализаторов, но всё равно, это уже какой-то шаг вперёд. Помимо синхронизации по восходящему и спадающему фронту, есть возможность синхронизации по ширине импульса, как положительного, так и отрицательного. Сейчас нам это не понадобится. Установим синхронизацию по восходящему фронту. Проверим настройки, 10 с, частота 4 МГц. Нажимаем старт, и ждём события от триггера. Событие произошло, сделаем несколько посылок… Думаю, хватит. Вот наша первая посылка. Почему-то здесь не произошло распознавание отправляемых данных. Очень странно… Надо будет проверить в ранней версии программы. Возможно, это связано с бета версией. Вот они, наши тактовые импульсы. И в конце защёлкивающие импульс, который выводит данные на выходы регистра. Проверим остальные посылки… Да, в остальных всё в порядке. Настроим на двоичное отображение… Давайте посмотрим, что с первой посылкой в старой версии программы. Нажимаем Старт и ждём события от триггера. Так, первая посылка… Тоже не докодировалась. Очень жаль. Остальные проверим. Уже вижу… Да, всё в порядке.

Теперь о новых плюшках. Появилась вкладка аннотаций. Здесь мы можем добавить закладку, пару маркеров, так же, как в предыдущей версии, или измерение. Добавляя закладку, мы просто сохраняем текущую позицию экрана и при навигации можем легко вернуться. Пара маркеров, так же, как и в предыдущей версии, но работает, конечно, намного лучше. Во-первых, мы можем поставить несколько пар. И во-вторых, опять же, есть возможность навигации по ним, довольно удобно. Первая пара, вторая… Мы можем неограниченное количество их использовать. Также можно добавить измерения. Что это такое? Штука довольно полезная. Похожее на пару маркеров, но более функциональное. Так же устанавливаем начальную и конечную точку, и теперь это измерение у нас всегда отображается.
В настройках можем указать необходимые отображаемые величины средняя частота, средняя скважность, количество фронтов, восходящих и нисходящих, количество положительных и отрицательных импульсов, максимально узкий положительный, максимально широкий положительный импульс. Также отрицательный, период, средний период и количество периодов. При наведении курсора теперь сверху сигнала отображается измерения. Хотя мы можем настроить отображение как и в предыдущей версии в боковой панели, этот режим мне не очень нравится. Гораздо удобнее сразу все измерения при наведении курсора. Из новых плюшек – это список декодированных данных. Можем использовать его для быстрой навигации. Также доступен поиск по этому списку, но пока работает он весьма странно. То ли количество символов в строке ограничено, то ли эту функцию пока ещё не доделали. То есть, попробуем найти, допустим, 01 00 1111. Ничего. А если без пробелов… Тоже ничего. И попробуем полностью ввести строку… Всё, опять ничего. Надеюсь, в следующих версиях программы они эту штуку профиксят, так как это довольно полезно.

Небольшое неудобство – то, что при установке продолжительности захвата в сэмплах нельзя ввести 10 и поставить букву М, чтобы установить 10 миллионов сэмплов. Обязательно надо ввести именно цифрами, 10 000 000. Попробуем посмотреть какой-нибудь более скоростной интерфейс, например, I2S. Анализатор сейчас подключён к ЦАПу, и я подключу по порядку все каналы. CLOCK – это BIT CLOCK, FRAME – WORD CLOCK, и DATA – объяснять не нужно. Здесь нет сигнала, только MASTER CLOCK. Все остальные параметры оставляем по умолчанию, так как формат передачи I2S. Сохраняем. Скроем ненужные каналы опять. Сейчас у меня воспроизводится файл с частотой дискретизации 44,1 кГц и разрядностью 16 бит. Итак, вот они, наши 44 кГц на WORD CLOCK. BIT CLOCK, как мы видим, не очень симметричные импульсы. Но нам важно только моменты спадающих фронтов. И время между ними всегда одинаковое. Так что никаких проблем. И поочерёдно первый и второй каналы. Так как в настройках у меня установлено 24 бита на слово, а проигрывается 16, то, естественно, последние биты заполнены нулями. Я переключился на другой файл, 96 кГц с разрядностью 24 бита. Итак, 96, BIT CLOCK… Опять немножко несимметричные импульсы, но расстояние между ними всегда одинаковое, так что никаких проблем. И уже в каждом слове реальных 24 бита.

Покупая всякую китайскую электронику для своих «поделок» часто сталкиваюсь с проблемой плохого описания работы,

Тема сегодняшней статьи — использование дешевого китайского логического анализатора купленного на Алиэкспресс .

Что такое логический анализатор? Это такой прибор… для логического анализа))) Сразу приходит на ум фильм с Робертом Де Ниро

Зачем он нужен? Ну конечно же занимать логическим анализом))). А точнее анализом логических уровней разных микроконтроллеров и периферии к ним. То что принято называть реверс инжинирингом.

Характеристики

  • Совместимость по софту с Saleae Logic 8
  • Число цифровых входов - 8
  • Два индикатора - питания и состояние логических входов
  • Входное сопротивление 100КОм, входная емкость 5пФ
  • Питание через USB
  • Поддерживаемые частоты дискретизации:
  • 24МГц,16МГц, 12МГц, 8МГц, 4МГц, 2МГц, 1МГц, 500КГц, 250КГц, 200КГц, 100КГц, 50КГц, 25КГц;
  • Количество сохраняемых значений одного измерения - 10000

С одной стороны разъем на 10 штырьков и распиновкой на корпусе

С другой Mini USB для питания и подключения к компьютеру

Внутренности

Внутри корпуса плата, на ней микропроцессор с высокоскоростным USB интерфейсом CY7C68013A от компании CYPRESS , EEPROM ATMLH432 и шинный формирователь LVC245A от NXP .

На входе анализатора стоят токоограничивающие резисторы 100 Ом, подтягивающие к земле резисторы 100 КОм и конденсаторы 5 пФ. Все честно, как в описании.

Подключение

Для подключения анализатора в комплекте идут 10 соединительных проводков на штырьковые контакты. Сразу прикупил таких вот клипс-зажимов .

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

Софт

Это, пожалуй, самое интересное в данном анализаторе. К нему подходит родной софт от Saleae Logic .

Доступны версии для OSX, Linux и Windows на 32 и 64 бита.
Saleae Logic 1.2.3 под Windows 7 заработал с пол пинка, софт запустился, железо опозналось, не смотря на надпись версии «Beta».

Интересные плюшки в софте от Saleae Logic

Триггер срабатывания записи логической последовательности на каждый канал

  • На изменения логического уровня в «0»
  • На изменение логического уровня в «1»
  • На положительный импульс заданной длительности
  • На отрицательный импульс заданной длительности

Подсчет статистических показаний по текущему измерению

Декодирования протоколов: Async Serial, I2C, SPI, Hide, 1-Wire, Atmel SWI, BISS C, CAN, DMX-512, HD44780, HDLC, HGMI CEC, I2S/ PCM, JTAC, LIN, MDIO, Manchester, Midi, Modbus, PS/2 Keyboard/Mouse, SMBus, SWD, Simple Parallel, UNI/O, USB LS и FS

Ведение журнала по декодируемому протоколу

Кроме того, данный анализатор можно прошить под софт от USBee

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

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

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

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

А что там на шине данных у моих ?

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

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

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

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

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

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

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

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

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

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

Поанализируем что-нибудь еще?

1. Введение:

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

2. Краткое описание

Анализатор имеет 7 каналов ввода/вывода, которые подключаются к различным исследуемым устройствам по усмотрению пользователя.

Каналы 1-5 отвечают вход/выход. Эти каналы могут выходными или входными в зависимости от настройки канала. Канал 5 не разведён ни на один разъём, но имеет контактную площадку на плате.

Канал 6 – только вход. Этот канал используется совместно с каналом 1 и служит для имитации двунаправленного входа/выхода, например, как в шине I2C, то есть направление передачи канала меняется походу работы протокола. Выходные данные подаются на выход 3, а входные данные идут по каналу 6. Более подробно смотрите «реализация протокола I2C».

Канал 7 – только выход. Этот канал на программаторе реализован как мощный выход 12В. Например, он был использован в качестве питания подсветки при работе с дисплеем от нокии 6100 (смотрите примеры использования)

В левой части рабочего окна программы находятся настройки портов анализатора – это:

  • скорость передачи (BoudRate)
  • инверсия каналов (галочка “ NEG ”)
  • направление порта (IN / OUT )
  • размер выдаваемого массива (допускается размер до 65кбит)

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

В правой части поля программы расположены элементы управления имитируемых протоколов. Имеется:

  • выпадающее меню выбора протокола
  • 7 выпадающих меню (на каждый канал): выбор назначения канала и сигнала протокола
  • инверсия данных протокола (не путать с инверсией порта )
  • окно для ввода данных (для задания числовой последовательности протокола)

3. Управление и ввод данных.

Нажатие левой кнопки мыши на панель осциллограммы устанавливает курсор в это место без изменения состояния данного бита.

Нажатие правой кнопки мыши на панель осциллограммы устанавливает курсор в это место и меняет состояние бита в этом месте.

Помимо ввода данных мышкой можно вводить их с клавиатуры . После нажатия клавиши «0» или «1» происходит ввод на место курсора соответственно 0 или 1. Также для удобства продублирована функция кнопки «0» на кнопку «2», то есть при нажатии на клавишу «2» происходит ввод 0.

Ввод данных массивом (только для протокола). Последовательность для протокола можно вводить в десятичной(1 34 987), двоичной (0b100 0b101010 0b1111111111111) и шестнадцатеричной форме (0xFA 0x 12C 0x 1a 2cb ). Данные водятся через пробел. Также допускаетсясмешивать форматы данных (123 0b1010 0x12aB).

Данные вводятся с последующим инкрементом адреса. При достижении границы массива его размер будет увеличиваться. Максимальный размер массива данных – 65 кбит

Ввод данных файлом. Для ввода данных файлом необходимо создать файл с любым расширением, например, txt. Формат свободный.

Разделять числа в файле можно точкой, запятой или пробелом. Пояснения в файле делаются через точку с запятой «;».

Пример содержимого файла:

123 343, 234 ;тут пояснения после точки с запятой

0x12F, 0b10101010 ; и т.п.

Драйвер для анализатора.

В анализаторе используются специальные функции FT232R, для использования которых необходимо установить специальный драйвер FTD 2XX . Установка обычного COM порта не подходит. Драйвер желательно брать у производителя – , например.

4. Подключение анализатора:

Внешний вид анализатора показан на рисунке 2.

J 1 – джампер питания (Vcc). Имеет 4 состояния: 1.8В, 3В, 5В и внешнее питание

XT1 – miniUSB. Подключение к ПК.

XT 2 – интерфейсный разъём для подключения анализатора к испытуемому. Имеет 10 контактов:

1 канал 1 (вход/выход)
2 питание выходных портов (Vcc) (в зависимости от состояния джампера питания будут входом или выходом)
3 Cbus 4 не используется. Но можно вывести частоту 6,12,24 или 48 МГц (более подробно смотри «использование Cbus»)
5 канал 2 (вход/выход)
7 канал 3 (вход/выход)
9 канал 4 (вход/выход)
4,6,8,10 общ.

ХТ3 – интерфейсный разъём для подключения анализатора к испытуемому. Имеет 10 контактов

1 питание выходных портов (Vcc ) (в зависимости от состояния джампера питания будут входом или выходом).
3 канал 3 (вход/выход)
5 канал 4 (вход/выход)
7 канал 6 (только вход)
9 канал 7 выход сигнал 12В!!!
2,4,6,8,10 общ.

J 2 – джампер на 2 положения. Меняет функцию канала 6.

положение 1-2 изменение канала 6 от Vcc до 12В
положение 2-3 изменение канала 6 от 0В до 12В
положение 1-2 используется в программаторе для формирования сигнала MCLR при прошивании PIC контроллеров.

Каналы 1-5 – по умолчанию являются входами и находятся в третьем состоянии (состояние Z). При установке канала в состояние выход, он будет выходом только в момент передачи.

Каждый канал имеет токоограничивающие резисторы 300ом.

Канал 6 является выходом всегда. По умолчанию имеет состояние «0».

5. Использование сигнала Cbus (разъём ХТ2 контакт 3)

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

На этот контакт можно вывести частоту 6,12,24 и 48 МГц. Это делается с помощью специальной утилиты MProg, взять можно

6. Краткое описание, что сделать, чтоб подать на Cbus частоту:

  1. устанавливаем утилиту Mprog.
  2. выбираем поиск устройств, нажав на лупу, или в меню Device->Scan, после чего утилита находит устройство и отображает его PID и т.п.
  3. выбираем в закладке Tool функцию Read and Parse, то есть считываем текущие установки и выводим это дело на дисплей.
  4. открываем закладку FT 232 R (если она сама не открылась), после чего открываются 2 поля. Invert rs 232 signzl (нас это не касается, т.к. программа анализатора управляет этими сигналами по-своему) и поле I / O Controls .
    Поле I/O Controls имеет 4 подменю C1-C4.
  5. выбираем меню C4. Это и есть дополнительные функции сигнала Cbus4. Из всех предложенных функций нас интересуют CLK6, CLK12, CLK24 и CLK48. По названию функций должно быть всё понятно J . Остальные функции не влияют (точнее, при их выборе предсказать состояние этого пина не представляется возможным), так как они предназначены для работы в режиме COM порта.
  6. для того, чтоб FT232R задействовала выбранную функцию, надо обязательно сохранить проект (без этого не получится), так уж написана эта утилита.
  7. после сохранения проекта на диске, можно перепрограммировать нашу FT232R. Активизируется кнопочка с молнией. После её нажатия M prog пропишет наши настройки в чип.

7. Как описать и использовать собственный протокол

Для создания описания протокола потребуется написать собственный INI файл. Рекомендую копировать какой-нибудь из имеющихся файлов и изменять его. В пример возьмём файл SPI_9BIT . Пояснения в этих файлах необходимо указывать в отдельных строчках!!!

;заголовок настройка в этом разделе файла указываются специфические настройки протокола:


;количество линий в протоколе. В этом их 4
num_lin = 4
;ниже расписаны линии по номерам и указаны их имена
lin1 = MOSI
lin2 = MISO
lin3 = SCK
lin4 = SS
;количество передаваемых бит
bits = 18
;доп. информация, она будет выводиться в окне дополнительной информации.
waring = канал 6 завязан с каналом 1 аппаратно. Бодрейт делится на 2, так как тактовая передаётся за 2 такта
;заголовок протокол. Ниже будет расписаны последовательности, используемые в протоколе.


SS = N N N N N N N N N N N N N N N N N N
SCK = N O N O N O N O N O N O N O N O N O
MOSI = 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8
MISO = N N N N N N N N N N N N N N N N N N

В этом разделе в качестве передаваемых бит указывается номер бита 0 1 2 14 34 и т.д. В качестве передаваемой 1 пишется O (от английского One), в качестве передаваемого 0 пишется N (т.е Null).

ВАЖНО: При описании протокола допускается расхождение в количестве бит, заданных в num _lin и описанных в разделе protocol .

После того как поправили или написали INI файл, необходимо добавить запись в файл protocol.lst. для того чтоб программа могла найти и использовать новый протокол.

8. Пример использования анализатора для анализа шины I2C

Для начала подключаем анализатор к шине I2C (испытуемое устройство – джойстик нунчак от приставки Wii), внешних элементов не требуется. Схема подключения приведена на рисунке 3.Описывать протокол не вижу смысла. Про это подробно написано в инете.

Как видно из схемы, для реализации используется 3 канала (каналы 1,4,5), а протокол I2C является двухпроводным. Суть в том, что анализатор не имеет возможности менять направление шины по ходу передачи сигналов, поэтому разделение входного сигнала и выходного происходит на транзисторе (см. схему). Таким образом, канал 1 является выходным: он выдаёт данные в I2C. А канал 5 является входным: он принимает данные по I2C.

Для настройки выбираем в меню выбора интерфейса «I2C» и устанавливаем следующие галочки и кнопочки:

Канал 1 NEG (инверсный выход) OUTSDA _OUT данные на выход

Канал 4 OUTSCL тактовый сигнал

Канал 5 IN SDA _IN входные данные

9. Пример использования анализатора для анализа шины SPI (9 bit )

В этом примере рассмотрена имитация последовательного протокола для управления дисплеем от nokia6100. Схема подключения дисплея к анализатору приведена на рисунке 4. Из внешних элементов необходим только токоограничивающий резистор для подсветки дисплея. Особенностью является передача по SPI не 8 бит, как обычно, а 9.

Для работы этого протокола в анализаторе создан отдельно 9битный SPI .

Настройка анализатора и сигналов протокола.

Для настройки выбираем в меню выбора интерфейса «SPI _9BIT » и устанавливаем следующие галочки и кнопочки:

Канал 1 OUT ;этот сигнал пропишем вручную. Его нет в протоколе

Канал 2 OUT SS ;сигнал выбора чипа

Канал 3 OUT SCK ;тактовый сигнал протокола

Канал 4 OUT MOSI ;сигнал данных

Поскольку у нас нет принимаемых данных, все сигналы настроены как выход и не используется сигнал протокола MISO.

Также необходимо установить джампер питания в положение 3.3В, так как питание устройства пойдёт от анализатора.


Логический анализатор приставка к ПК.

Поздравляю уважаемого Кота с днём рождения ещё раз и в качестве подарка представляю на ваш суд свою конструкцию, а именно программно-аппаратный комплекс тридцати двух канальный логический анализатор с максимальной частотой дискретизации 100 мГц и объёмом памяти записи 128 килобайт. Связь с ПК осуществляется через SPP LPT порт, так что подойдут и старые ПК на базе Р-1 и PCMCI - LPT карты обычно работающие только SPP режиме, и имеющие не стандартные адреса. Всем известно, что при разработке, налаживании или ремонте цифровой электроники этот прибор порой очень необходим. В Интернете есть много материала на эту тему, много конструкций достойных повторения, но исполненных на элементах каких в Российской глубинке не найти. Решено было попробовать стряпать самому, благо перепала Альтеровская ПЛИСина ЕРМ3064АТС100-10, быструю память KM736V789T-60 выдрал из материнки ноутбука APPLE (кэш процессора, процессор IBM что-то типа пентиум-2). Поскольку количества выводов ПЛИС для проекта явно не достаточно пришлось усложнять схему ключами и мультиплексором.

Входные ключи выполнены на двух шинных формирователях 74FCT164245, по сути, эта микросхема - две 74245 в одном корпусе, но имеет функцию преобразования уровней 5 вольт в 3, что не мало важно. Входные формирователи так же полезны в деле защиты дорогих и дефицитных деталей от аварийного попадания на их выводы высокого напряжения. На двух микросхемах IDTQS32X245 (тоже 2 * 74245) собран мультиплексор, сужающий 32-ух разрядную шину ОЗУ в восьми разрядную для последующей передачи в ПК. Все эти микросхемы были сняты с материнских плат отслуживших ноутбуков с 486-ым процессором. Генератор на 100 мГц достать не удалось, пришлось собирать на микросхеме ICD2028 (снята с материнки 486-го ПК), на отдельной плате в виде стандартного узла. В ходе разработки и модернизации выяснилось, что ресурсов ПЛИС не достаточно для воплощения задуманного, а результаты изысканий внушали оптимизма, через посылторг была приобретена микросхема ЕРМ3128АТС100-7, что позволило комфортно приблизить проект к логическому завершению и оставить ресурсы для модернизации. Проект для ПЛИС разработан на MAX+plus II, для тех кто не знаком с азами разработки и программирования ПЛИС фирмы Altera, рекомендую прочитать статью Абрамова Сергея, ссылка на неё https://electronix.ru в разделе "статьи". Плата устройства разработана в P-CAD 2001 и довольно сложна для "утюжной" технологии, но как видите, нет ни чего не возможного.

Устройство пока находится в "без оболочном" исполнении и предусматривает подключение плат входных, и выходных разъёмов, на которых будут находиться подтягивающие к GND, и помехозащитные элементы. В перспективе, раздобыв приличные АЦП и ОУ анализатор можно превратить в четырёх канальный запоминающий осциллограф. Устройство потребляет от источника питания 5 вольт (с подключенным к этой линии 3-х вольтовым стабилизатором) порядка 130 мА из них 50 мА приходится на генератор, так что запитав его от USB ноутбука работающего на батарее получаем гальванически развязанный с сетью прибор. На принципиальной схеме не изображены блокировочные конденсаторы ёмкостью 0,1 мкФ которые необходимо устанавливать возле каждого вывода Vcc питания микросхем. Разъём Х1 предназначен для программирования ПЛИС, разъём Х2 и выводы 1, 2 разъёма Х3 для подключения к LPT порту, при чём разводка Х2 соответствует нумерации разъёма DB-25 LPT порта, выводы 1 и 2 разъёма Х3 соединяют с выводами 17, 18-25 LPT порта соответственно. На выводе 7 разъёма Х3 присутствуют импульсы с частотой дискретизации (для тактирования АЦП, на случай его подключения), выводы 3-6 зарезервированы, их необходимо оставить не подключенными к чему либо. Х4 предназначен для подключения питания, разъёмы Х5, Х6 для исследуемых сигналов. При повторении конструкции в качестве ОЗУ можно использовать микросхемы кэш памяти процессоров Пентиум-II и с натяжкой Пентиум-I (у них максимальная частота "клока" 79 мГц), главное, ширина шины данных должна быть 32 - 36 бит и ёмкость 128 кбайт. Лучше использовать микросхемы взятые из ноутбуков, в противном случае потребляемый устройством ток может возрасти в несколько раз. В качестве ключей можно использовать 74НС244 - 245 или другие с Z-состоянием на выходах, при этом придётся разводить плату и позаботится о согласовании уровней исследуемых сигналов.
Теперь не много о программе со стороны ПК. Она написана на Delphi 7, крайне проста, но основную функцию отображения сигналов выполняет. Из всех "удобств" только курсорные измерения, запуск синхронизации по фронту или спаду одного из каналов, сохранение изображения в файл ВМР, возможность выбора длинны записи в ОЗУ 1 кбайт или 128 кбайт (на малой частоте дискретизации при 128 кбайтной длине время записи достигает 3 минут). А так же временная лупа, возможность выбора длинны просматриваемой на экране страницы памяти 1 кбайт или 8 кбайт, возможность выбрать количество просматриваемых каналов 8, 16, 32. От длинны страницы, количества используемых каналов, мощности процессора ПК, частоты дискретизации зависит время записи, передачи и прорисовки изображения, и как следствие максимальная частота обновления экрана при автоматическом запуске. Так что при больших значениях каналов, килобайт, микросекунд просмотр в реальном времени не возможен. Максимальная частота обновления экрана 100 мСек. Размер окна программы ограничен для возможности использования комплекса на старом ноутбуке с размером дисплея 800*600 пикселей.
В заключение хотелось попросить профессиональных "ПЛИСоводов" и программистов не судить строго, ведь это первый мой опыт в построении устройства на программируемой логике, да и вообще мы от сохи т.е. любители.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: