Логический анализатор своими руками
1) Подключение через USB
Порт коммерческий, по умолчанию, я в свое время (года 3-4) так и не смог найти
готовых прошивок ни для каких чипов под этот порт, так и писали сами.
2) Крайне желательна гальваническая развязка
Преобразователь напряжение с полной развязкой по обоим проводам, фильтром и стабилизатором на выходе
не очень простая задача для измерительной техники, кстати, сам usb порт дает отвратительное питание, посмотрите его осциллографом (не школьным).
3) Как минимум 8 каналов
один логический порт, это имеется почти на всех чипах.
4) Частота порядка 10-16 МГц
это зависит только от используемого чипа
5) Софт, желательно open source и работающий под линухом ( ubuntu ), с функциями распознавания популярных протоколов ( uart, 1-wire, I²C ).
софт? с распознаванием UART и I2C? Это прогаммно аппаратные протоколы, софт не может их распознавать
Они должны быть заложены в чипе, который вы будете использовать. А их программную поддержку вам придется писать )
6) Различные режимы работы триггеров, желательна возможность работы одновременно нескольких триггеров для разных каналов.
Что есть триггеры? программные логические? Т.е. просто ловушка одиночного импульса?
можно написать на аппаратном уровне, если вам нужна автономная работа этого устройства, по намного проще реализовать это
так же как и множество других функций хранения/обработки/сравнения и т.д. данных - под OS.
7) Возможность сохранения.
Аналогично, можно на аппаратном уровне, благо большинство современных чипов имеют немного встроенной памяти,
но проще на программном под OS
8) Возможность работы как частотомера, счетчика импульсов.
т.с.
9) Было бы вообще прекрасно, если бы эта штука могла что-то и сама генерировать.
"что-то" ))
не очень точный критерий.
Если низкочастотные логические последовательности, то это просто.
если псевдоаналоговый сигнал то сложнее.
Чем выше требуется частота выходного сигнала и плавней форма, - тем сложнее.
Если нужен аналоговый сигнал то одним чипом не обойтись, нужны пара , скажем "операционников"
очень неточные требования, невозможно дать совет.
10) И желательно что бы она была легкодоступна ( в финансовом смысле)
мистика )
итого коммерческая разработка, приличной сложности, реально реализуемая скажем за пару недель при наличии
не занятого asm-профи чувака горящего идеей сделать доброе дело .
в противном случае - мистика.
(У меня счас аналогичный девайс выполнен на Pic18F4550)
Мысль о том чтобы разобраться в премудростях протокола управления многозоновым пейджером REEF RP-100 не покидала меня давно. Но для воплощения в жизнь этой идеи нужен был инструмент типа запоминающего осциллографа или, на худой конец, логического анализатора. Посмотрев цены на столь нужные инструменты, мысль об их приобретении сразу отпала до лучших времён. Взамен пришла мысль использовать компьютерные мощности в качестве либо запоминающего осциллографа, либо логического анализатора. В роли запоминающего осциллографа в интернете обсуждается использование звуковой карты компьютера, а роль логического анализатора отводится параллельному порту принтера (LPT). Но в любом случае необходимо собрать некий адаптер.
Следующим шагом была сборка адаптера, которым можно было подключиться к исследуемым линиям. Адаптер прост до безобразия и в оригинальной схеме использовалась микросхема 74HC14 – это 6 инверторов с триггерами Шмидта с КМОП уровнями. Подобной микросхемы я у себя не нашёл, зато откопал 555ТЛ2. Это тоже инверторы с триггерами Шмидта, но с ТТЛ выходами. Правильнее, конечно, было бы использовать в этом анализаторе буржуйскую 74HC14, ввиду её большого входного сопротивления и низких токов, но в магазин бежать было лень, поэтому, изменив номиналы резисторов, я запаял 555-ую в только что вытравленную плату. Для намечаемой цели и так сойдёт. Что собственно и подтвердилось.
Схема адаптера логического анализатора с микросхемой 555ТЛ2 представлена на рисунке 1.
Рисунок 1. Схема адаптера логического анализатора с микросхемой 555ТЛ2
Не совсем удачная разводка печатной платы представлена на рисунке 2.
Рисунок 2. Не совсем удачная разводка печатной платы
Фото готового устройства приведено на рисунке 3.
Рисунок 3. Фото готового устройства
Схема (spl7) и разводка печатной платы (lay) прилагаются в архиве .
Тому, кто ищет недорогой вариант 16-канального логического анализатора уровней, возможно будет полезна эта статья. Речь пойдет об устройстве на китайской отладочной плате EZ-USB FX2LP CY7C68013A за 300 рублей (на апрель 2018) с контроллером CY7C68013A от CYPRESS. Работает он без доработок с отличной бесплатной программой PulseView (16 каналов) это полностью легальный вариант и с небольшими доработками с Saleae Logic (8 каналов). Также используют с USBee Suite, но я не пробовал. В последних двух случаях это уже вроде как мелкое мошенничество.
Микросхема CY7C68013A и железо
Теперь о плате: тут имеется выключатель питания платы, кнопка reset и две перемычки J1 и J2 (есть также более старый вариант платы с одной перемычкой, о нем ничего сказать не могу). Перемычка J1 подает питание на пользовательские диоды D1 и D2, которые подключены к контроллеру. Перемычка J2 вероятнее всего меняет адрес микросхемы, что делает ее пригодной (перемычка снята) или непригодной (установлена) к записи через Cypress USB Console.
Работа с PulseView
Для того чтобы устройство заработало с PulseView нам понадобится проделать следующее:
Здесь для нас не имеет значения установлены или сняты джамперы.
Выборка 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 каналами. Чтобы иметь возможность использовать оба варианта, нам понадобятся небольшие доработочки.
Такая доработка даст возможность отключать питание микросхемы памяти перемычкой J1, когда надо будет использовать 16 каналов и включать для использования Saleae Logic.
Аппаратные доработки закончены, перейдем к программным. Чтобы прошить память потребуется:
Рис.7. Успешная прошивка.
- Не забудьте снова подложить драйвер через Zadig (снять J1, переподключить, подменить драйвер)
Теперь мы имеем 2 устройства. Снятая перемычка J1 – 16 каналов PulseView, установленная — 8 каналов Saleae Logic.
Ярослав Власов
Этот миниатюрный 4-канальный логический анализатор на микроконтроллере Atmega8 представляет собой инструмент для просмотра на ЖК-дисплее (LCD 5110) логических переходов 0 или 1 цифрового сигнала данных.
Характеристики логического анализатора
- Частота захвата: 400 кГц
- Напряжение логических входов: до + 5В
- Источник питания: максимум 4,8 В
- Жидкокристаллический дисплей: (LCD 5110) 84×48 пикселей
Введение
Цифровой сигнал данных можно найти на выходном контакте инфракрасного приемника TSOP-1730, на контактах передачи и приема микросхемы MAX-232 (RS-232), на контактах Clock и Data шины данных I2C и многих других электронных компонентах. Эта схема поддерживает захват цифровых сигналов до 400 кГц.
Описание
По всем 4 входам AVR имеются понижающие резисторы сопротивлением 33 кОм (R2-R5), позволяющие избежать ложного срабатывания из-за внешнего электромагнитного поля или случайного прикосновения руки к любому входному контакту.
ЖК-дисплей Nokia 3310/5110 работает от источника питания 3,3 — 5 В. Проблема в том, что подсветка ЖК-дисплея работает с максимальным напряжением 3,3 В постоянного тока. Поэтому я поставил диоды D1-D3, чтобы уменьшить напряжение с 4,8 В до 4,8 — (0,7 * 3) = 2,7 В, что является оптимальным напряжением питания ЖК-дисплея Nokia.
Когда вы подаете питание на схему, светодиод LED1 находиться в выключенном состоянии. После появления сигнала на любом из 4 входов этот светодиод включается, и микроконтроллер начинает запись данных во внутренний буфер RAM (290 выборок).
Печатная плата анализатора:
ВНИМАНИЕ.
Не используйте обычные щелочные батареи на 1,5 В вместо аккумуляторных, так как в этом случае общее напряжение будет составлять 4 х 1,5 = 6 В. Это напряжение, вероятно, выведет из строя ЖК-дисплей и микроконтроллер AVR.
Как вы можете видеть на рисунке выше, буфер данных состоит из 870 байтов (v1.00): 2 байта для счетчика и один для информации о входных контактах.
В версии 1.01 размер буфера данных был уменьшен до 256 * 3 = 768 байт для увеличения скорости захвата, потому что переменная размера буфера составляет 8 бит вместо 16 бит, которые я использовал раньше. Расчет следующего байта должен выполняться в соответствии с используемой версией прошивки.
Фьюзы которые необходимо выставить при программировании микроконтроллера Atmega8:
Как это работает? Очень просто. После включения питания AVR ожидает запускающего импульса на любом из 4 входных контактов. Если обнаружен запускающий импульс, AVR начинает отсчет времени, необходимого для следующего запуска на любом из 4 входных контактов.
Этот процесс выполняется до тех пор, пока AVR не заполнит все байты буфера (870/3 = 290 выборок или триггеров). Когда AVR заполняет буфер, все данные отображаются на ЖК-дисплее в виде графика. Вы можете переместить график влево (кнопка S3) или вправо (кнопка S4), чтобы просмотреть всю последовательность данных.
Основным элементом анализатора является буфер DD1 для защиты LPT порта от повреждения (например, вследствие подачи слишком высокого входного напряжения). Этот буфер работает напрямую от контакта № 1 (STROBE), который имеет очень низкую энергетическую эффективность (около 2 мА). Поэтому в качестве DD1 необходимо использовать микросхему 74HC245 (2…6 В) или 74HCT245 (4,5…5,5 В), которые в данной схеме потребляют не более 10 мкА.
Резисторная сборка RP1 обеспечивает низкое логическое состояние на несвязанных измерительных входах анализатора. Это предотвращает появление случайных сигналов, а также снижает энергопотребление микросхемы DD1.
Измерительные входы анализатора и минус выведены на стандартный 10-контактному IDC разъем. Разъем должен быть подключен к плате проводами длиной приблизительно 30 см.
Анализатор работает совместно с программой The Fabulous Logic Analyzer.
Конфигурирование программы The Fabulous Logic Analyzer
По истечении заданного времени или после появления соответствующего логического состояния на заданном канале должны появиться диаграммы сигналов по всем каналам. Если измерительные входы анализатора не были подключены, то графиком каждого канала будет прямая линия.
Читайте также: