Довольно часто в домашних электронных поделках возникает необходимость посмотреть тот или иной сигнал, причем достаточно его цифрового представления - что передает МК по I2C, правильно ли настроен ШИМ и т.п. Если на работе есть хороший осциллограф, то покупать его для дома - слишком дорогое удовольствие, особенно, когда необходимость возникает лишь от случая к случаю.
В последнее время появились недорогие (в пределах $50) логические анализаторы, однако меня от их покупки всегда останавливало одна мысль: штука то предельно простая, почему бы не сделать её своими руками из подручных материалов?
В данной статье я расскажу, как сделать простой логический анализатор с минимальными финансовыми затратами - все что нужно это отладочная плата Stm32F4Discovery .
Логический анализатор (далее ЛА)
– устройство предназначенное, для записи, просмотра и анализа сигналов в цифровых схемах. Подобно осциллографу, ЛА подключается одним или несколькими щупами к анализируемой схеме, но в отличие от осциллографа фиксирует только два состояния сигнала «0» и «1». Важной функцией ЛА является способность автоматически расшифровывать записанные сигналы, например, разобрать обмен данными по шине I2C или SPI. Также ЛА отличаются бОльшим, по сравнению с осциллографами, количеством анализируемых линий: от 8 в простых анализаторах до сотен в промышленных образцах.
Описываемый здесь проект - LogicDiscovery - это SUMP -совместимый логический анализатор, выполненный в формате USB-приставки к ПК. Он обладает довольно скромными характеристиками: 20MHz, 16 каналов, 24кБ памяти. Однако, этого достаточно для весьма большого круга задач: анализ линий UART, I2C, SPI (в пределах нескольких мегагерц), параллельных шин, измерение временных характеристик сигналов и т.п.
Приступим
Итак, все, что нам понадобится это:- Отладочная плата Stm32F4Discovery . От 500 рублей в московской рознице, а может она уже лежит в ваших закромах? Подойдет и любая другая плата на STM32F4 или STM32F2, но тогда придется подправить исходники.
- Несколько проводов, для подключения к анализируемой схеме.
- Прошивка, готовая к употреблению лежит на Google.Code . Там же находятся исходники.
- Кроме того нужен клиент для ПК, рекомендую OLS .
Stm32F4Discovery питается от порта mini-USB, через который она и прошивается. Для использования функций ЛА плата подключается к ПК через порт micro-USB. Чтобы запитать плату от этого же порта соединяем перемычкой пины PA9 и 5V . PA9 подключен напрямую к Vbus порта micro-USB, а 5V это вход стабилизатора формирующего питание для платы. Для проверки работы соедините порты PA2 и PD0 . На PA2 формируется тестовый сигнал, а PD0 это первый вход ЛА.
Плата опознается ПК как COM-порт, для Linux драйвера стандартные и должны уже быть в ядре, для Win драйвера скачиваются с сайта ST. После того как плата опозналась можно запускать клиент и приступать к работе.
Но сначала ложка дёгтя.
Ограничения
В проекте используется открытый протокол SUMP . Данный протокол изначально разрабатывался для ЛА на базе ПЛИС, и поскольку в части записи входных сигналов и анализа потока данных микроконтроллеры по-прежнему им уступают, нам будут доступны не все функции реализованные в клиенте:- Максимальная частота записи – 20МГц, в оригинале до 200МГц
- RLE-сжатие и фильтрация шумов не поддерживаются.
- Нельзя выбрать произвольные группы каналов, только первую (8 каналов), либо первую + вторую (16 каналов).
- Триггеры работают не по значению, а по фронту (впрочем, на мой взгляд, это уже достоинство).
- Нет поддержки расширенных (Complex) триггеров.
Пользуемся
Запускаем клиент через файл run.bat или run.sh, в зависимости от используемой ОС. О функциях клиента можно почитать на его страничке, здесь я опишу процесс получения первых сэмплов и те настройки, которые попадают под ограничения.В меню «Capture» , выбирая пункт «Begin capture» , открываем окно настроек записи. На первой странице в поле ««Analyzer port» выбираем порт, на котором сидит наш ЛА, больше ничего менять не нужно. Кнопкой ««Show device metadata» можно проверить наличие связи:
На второй странице указываем параметры захвата. Первые два пункта не трогаем,
«Sampling rate»
не выше 20МГц (если указать больше – плата все равно использует 20МГц, но клиент будет думать, что используется указанное значение, в общем, ерунда получится).
«Channel groups»
: 0 – используем одну группу каналов, это линии PD0-PD7, либо 0 и 1 – используем две группы каналов - линии PD0-PD15.
«Recording size»
: для одной группы каналов – любое значение, для двух групп – не более 12kB (клиент предупредит, если в данном поле выбрано неверное значение).
Чекбоксы на данной странице не трогаем, они не поддерживаются:
Страница «Triggers»
- самое интересное. Первый флажок ставим, чтобы просто включить триггеры.
«Before/After ratio»
позволяет указать, в процентном соотношении, сколько данных сохранить до срабатывания буфера. После нажатия «Capture»
ЛА сразу начинает запись данных, складывая их в циклический буфер, а по срабатыванию триггера отсчитывает указанный в поле After процент времени и отправляет данные на ПК.
«Type»
- только «Simple», «Complex» - не поддерживается.
«Mode»
- только «Parallel».
«Mask»
- это те линии, на которых триггер будет ожидать перепад сигнала, поставте флаг в нулевой позиции для срабатывания по линии PD0
«Value»
- фронт сигнала, по которому будет происходить срабатывание триггера. Флажок установлен – передний фронт. Флажок снят – задний:
Для проверки работы соедините порты PD0 и PA2 (на данном порту выводится тестовый сигнал UART) перемычкой.
Вот и все, нажимаем «Capture» и смотрим на полученный сигнал (Ctrl+F - обзорный масштаб):
Если ничего не происходит, значит, вы выставили срабатывание триггера на неправильные линии, или сигнала вовсе нет - проверьте настройки и подключение платы. Триггер можно запустить вручную, нажатием User button (синяя кнопка).
Техника безопасности
Помните: вы подключаетесь напрямую к портам микроконтроллера! Никакой защиты, кроме встроенных в МК диодов на плате нет. Поэтому сначала удостоверьтесь что, изучаемый сигнал имеет максимальное напряжение 3.3В, в крайнем случае 5В, но тогда желательно добавить между источником сигнала и ЛА защитный резистор.При подключении к анализируемой схеме не забывайте сначала соединять земли, и только уже потом сигнальные линии. Особенно, когда анализируемая схема питается от своего источника питания, а не от того же ПК, к которому подключен ЛА.
Для работы в сложных цифровых схемах китайский логический анализатор вещь крайне необходимая. Подкупает так же и его небольшая цена и удобное программное обеспечение. И он вполне меня устраивал пока не возникла необходимость одновременно просмотреть работу разных узлов схемы, питающихся от разных источников и не имеющих общей земли. Изначально анализатор имеет 8 не развязанных по питанию каналов с амплитудой импульсов на входе 5 вольт. Данная доработка позволяет сделать входы анализатора гальванически развязанными и работать с импульсами амплитудой от 3-х вольт до 25 вольт. Положение галетных переключателей выбирается в зависимости от размаха входных импульсов. Но расчетно схема сохранит работоспособность до 65 вольт.
В схеме используются высокоскоростные оптроны, рассчитанные для работы в оптоволоконных сетях. Частотные характеристики оптрона выше, чем может пропустить анализатор,так как минимальная длительность импульса которую может зарегистрировать анализатор составляет что то около 42 наносекунд. Ток светодиода оптрона выбран в районе 6-7,5mA. Оптрон допускает повышение тока до 15mA. А такой ток возникнет при входном напряжении 65 вольт при положении галетного переключателя "25v".
Конкретно моя плата содержит 4 гальванически развязанных канала и 4 не развязанных с 5-ти вольтовыми входами. Питание подается с платы анализатора. При этом надо провести некоторую доработку: достать из корпуса плату анализатора, перерезать дорожку идущую к выводу 9 разъема и подать на этот вывод через резистор 10 Ом напряжение с правого вывода LM1117.
Схема и конструкция получились достаточно простыми, а возможностей использования добавилось значительно.
При испытании гальванически развязанных входов, для чистоты эксперимента, входы подключались параллельно. Т.е взаимно соединялись 4 входа IN A,B,C,D и соответственно Gnd A,B,C,D . Переключатели устанавливались в одинаковое положение. Импульсы создавались искусственным дребезгом контактов и внешним источником питания на соответствующее напряжение.
При сборке использовались оптроны 6N137, переключатели МПН-1, в делителях стоят резисторы смд0805, но поместятся и 1206.При впаивании шлейфа для подключения к анализатору частично изменена последовательность, но на плате все подписано.
Вместо переключателей МПН-1 можно использовать любые другие, правда при этом придется корректировать печатную плату или использовать провода. Автор - Дубовицкий Николай.
Что такое логический анализатор? Это такой прибор… для логического анализа))) Сразу приходит на ум фильм с Робертом Де Ниро
Зачем я его купил? Ну конечно же занимать логическим анализом))). А точнее анализом логических уровней разных микроконтроллеров и периферии к ним. То что принято называть реверс инжинирингом.
Недавно разбирался с двумя ультразвуковыми датчиками DYP-ME007Y, . И, когда в очередной раз захотелось посмотреть, какие сигналы бегают от датчика к микроконтроллеру и обратно, вспомнил о таком чудном приборе. И тут подвернулся ОН по цене менее $6.
На входе анализатора стоят токоограничивающие резисторы 100 Ом, подтягивающие к земле резисторы 100 КОм и конденсаторы 5 пФ. Все честно, как в описании.
Самое вкусное в данном анализаторе это то, что подходит .
Доступны версии для 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
Ведение журнала по декодируемому протоколу
Позанимаемся логическим анализом.
Для начала разбираюсь с ультразвуковыми датчиками, о которых писал в начале обзора.
Если один работает точно по даташиту: короткий импульс на «триггер» запускает ультразвуковой импульс и по длительности эхо измеряется расстояние. То второй и третий (с мигающим светодиодом) примерно раз в 100мс без каких либо внешних пинков сам мерит расстояние и посылает его на скорости 9600 в виде четырех байт (включая контрольную сумму). Программа Saleae Logic позволяет включить декодирование сигнала последовательной шины в последовательность байт. Датчики второго типа отлично работают с отключенным выводом «TRIG», хотя может и ждут какой нибудь команды на этом входе, но сие даже волшебный приборчик не покажет.
Далее захотелось посмотреть ШИМ сигнал Aтмеги 168? Включил все шесть каналов поддерживающих PWM на разный уровень и с удивлением обнаружил, что частота двух каналов ШИМ отличается от 4-х других. Задействованы разные таймеры?
Далее посмотрел работу шины I2C. И опять софт нормально справился с декодированием.Можно видеть пакеты записи в регистры при работе
Подключил ленту с - анализатор нормально проглотил 800КГц и успешно расшифровал протокол DFX-512
RF-приемник на 315МГц, подключенный напрямую к анализатору, получил сигнал с , и выдал манчестреский код. После подбора скорости манчестреский код превращается умной программкой в последовательность байт.
Интересно, а как с точностью измерения временных интервалов? Точного генератора импульсов у меня под рукой не оказалось, но Ардуиновская tone(1000) на 1000Гц
и tone(20000) на 20КГц дают довольно точный результат.
Небольшой итог
Логический анализатор очень нужная и полезная вещь для тех, кто занимается раскапыванием китайской периферии к микроконтроллерам (Назовем красиво - реверс инжинирингом)Из достоинств данной железки хочу отметить:
- Привлекательную цену
- Совместимость с довольно удобным софтом Saleae Logic
- Защита на входе в виде шинного формирователя LVC245A
- Малые габариты
Сейчас стоит задача анализа логических уровней на 12В, давно хотел разобраться с датчиками ABS своего авто. Думаю, что резисторный делитель и 5-ти вольтовый стабилитрон на каждом входе будет в самый раз.
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 частоту:
- устанавливаем утилиту Mprog.
- выбираем поиск устройств, нажав на лупу, или в меню Device->Scan, после чего утилита находит устройство и отображает его PID и т.п.
- выбираем в закладке Tool функцию Read and Parse, то есть считываем текущие установки и выводим это дело на дисплей.
- открываем закладку
FT
232
R
(если она сама не открылась), после чего открываются 2 поля.
Invert
rs
232
signzl
(нас это не касается, т.к. программа анализатора управляет этими сигналами по-своему) и поле
I
/
O
Controls
.
Поле I/O Controls имеет 4 подменю C1-C4. - выбираем меню C4. Это и есть дополнительные функции сигнала Cbus4. Из всех предложенных функций нас интересуют CLK6, CLK12, CLK24 и CLK48. По названию функций должно быть всё понятно J . Остальные функции не влияют (точнее, при их выборе предсказать состояние этого пина не представляется возможным), так как они предназначены для работы в режиме COM порта.
- для того, чтоб FT232R задействовала выбранную функцию, надо обязательно сохранить проект (без этого не получится), так уж написана эта утилита.
- после сохранения проекта на диске, можно перепрограммировать нашу 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В, так как питание устройства пойдёт от анализатора.
В данной статье представлен простой логический анализатор работающий с оболочками 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).