Лучшие инструменты для отладки простых цифровых схем?

10

Я профессиональный разработчик программного обеспечения, который привык к роскоши встроенных отладчиков. Некоторое время я экспериментировал с платформой Arduino. Тем не менее, я считаю, что пытаться взаимодействовать с такими компонентами, как цифровой датчик температуры Dallas DS1820, все равно, что шарить в темноте.

Если предположить, что бюджет не превышает 200 долларов, какие инструменты помогут мне визуализировать происходящее? Я посмотрел на Link Instruments MSO-19, но честно говоря, я не очень много знаю о разнице между осциллографом и логическим анализатором.

Как я узнаю, что купленное мной устройство будет способно измерять типы (простых) компонентов, которые я использую?

Оуэн Томас
источник

Ответы:

9

по сути, осциллограф дает вам поэтапное считывание напряжения на линии, в то время как логический анализатор сообщит вам только, если оно равно 0 или «высоко» (значение «высокий» потенциально может составлять 5 В, 3,3 В или 1,8 В в зависимости от твоя схема). Вы часто будете видеть, что логические анализаторы имеют намного больше каналов (строк, которые могут быть прочитаны одновременно), чем осциллографы из-за более низкого требуемого разрешения.

Что касается конкретного устройства, я слышал отличные вещи о Saleae Logic . Это образцы на 24 МГц; это означает, что он проверяет, высокое или низкое напряжение на конкретном датчике 24 миллиона раз в секунду. Программное обеспечение также, похоже, обладает некоторыми знаниями об общих встроенных протоколах, помогающих при отладке. Я полагаю, что для работы Arduino будет достаточно 24 МГц, поскольку максимальная тактовая частота Atmegaxx8 составляет 20 МГц.

Jeremy
источник
После полдня дальнейших исследований я могу сказать, что Saleae Logic должна помочь мне с 90% идей, которые у меня есть, на данный момент. Программное обеспечение выглядит отточенным и интуитивно понятным для такого аппаратного «постороннего», как я. Я могу видеть, как осциллограф был бы чрезвычайно полезен, но для типов простых проектов USB-логический анализатор кажется хорошим компромиссом.
Оуэн Томас
В The soul of a new machineТрэйси Киддер говорит (перефразируя), что пещерные люди использовали осциллограф, чтобы понять, почему огонь не горит. :-)
stevenvh
9

это всего лишь дополнение к ответу пенджуина, так как он не помещается в комментарии, и его ответ, как правило, правильный. Просто хочу уточнить подтекст в своем ответе.

Будьте очень осторожны при выборе измерительного устройства на основе его полосы пропускания / частоты дискретизации. Устройство с частотой дискретизации 25 МГц не может точно сгенерировать цифровой тактовый сигнал 25 МГц, даже близко.

Если вы возьмете цифровой тактовый сигнал с частотой 25 МГц и подадите его в o-область с полосой пропускания 25 МГц, вы увидите нечто похожее на синусоидальную волну. Прицел с частотой дискретизации 25 МГц , вероятно, будет показывать уровень постоянного тока, поскольку по Найквисту сигнал с наивысшей частотой, который может быть выбран таким прицелом, будет 12,5 МГц.

Прямоугольная волна содержит основную частоту, которая является ее тактовой частотой, для этого примера 25 МГц. Он также содержит большие нечетные гармоники, которые придают ему квадратную форму, чтобы смотреть на цифровой тактовый сигнал с частотой 25 МГц с точностью, вам нужно смотреть не только на 25 МГц, но и на 75, 125, 175, 225 и т. Д. с вашей желаемой точностью или до скорости нарастания трансивера.

Хотя это немного менее важно, для логического анализатора все же очень важно. Логический анализатор ищет «максимум» и «минимум» выше или ниже некоторого порога. Если то, что видит, является синусоидальной волной, вы увидите искусственно короткие верхние и нижние состояния и искусственно длинные промежутки между битами. Это может в некоторой степени зависеть от архитектуры анализатора.

Это может сделать невозможной диагностику проблем, связанных с различными режимами передачи. Например, SPI имеет 4 различных режима, основанных на данных, действительных на растущих или падающих фронтах тактового сигнала, а также на полярности данных (высокое значение 1 или 0?). Другие протоколы передачи также имеют эту проблему (например, I2S и связанные аудио форматы). Если вы не можете точно определить, когда происходят краевые переходы, почти невозможно определить, действует ли шина в рамках спецификации.

Как правило, вам нужна пропускная способность / частота дискретизации, намного превышающая запланированную целевую скорость передачи данных. Если вы хотите выбрать шину I2C 40 кГц, логического анализатора с частотой дискретизации 100 МГц более чем достаточно. Если вам необходимо произвести выборку шины SPI 25 мГц, вам понадобится прицел / анализатор с гораздо более высокой пропускной способностью, около 500 МГц, если вам нужна реальная точность, а также частота дискретизации, позволяющая проводить измерения в этом частотном диапазоне.

Таким образом, устройство Penjuin, рекомендованное с частотой дискретизации 24 МГц, может обеспечить точные измерения только цифровых сигналов с частотой менее ~ 2 МГц при скорости нарастания, заметной для этой скорости передачи данных.

отметка
источник
3
Вы абсолютно правы, это полностью ускользнуло от меня. Чтобы проиллюстрировать этот эффект дальше, я подал прямоугольную волну 1 кГц в свой осциллограф и сделал снимок экрана с полученным преобразованием Фурье (ось x в основном частота): i.imgur.com/lJvtD.png . Гармоники - это повторяющиеся пики.
Джереми
1
@penjuin отличная иллюстрация. Просто чтобы прояснить мой ответ для owen, рекомендованное устройство penjuin, вероятно, очень способно иметь дело с ardunio, так как вам, вероятно, никогда не придется иметь дело с интерфейсом, работающим на частоте> 2 МГц с этим классом устройства. Я просто хотел убедиться, что он не принял это как эмпирическое правило, и чтобы в итоге он укусил его, если он перейдет к более высокоскоростным устройствам / интерфейсам позже.
Марк
1
Логический анализатор с правильно настроенным переменным порогом обычно обеспечивает достаточное разрешение для анализа логики только при нескольких факторах, превышающих частоту сигнала. Проблема заключается в том, что контроллер, принимающий сигнал, переключится на логический ноль для чего-либо ниже 1,2 В (например) и логическую 1 для чего-либо выше 2,2 В (например), в то время как логический анализатор может переключиться на напряжение 1,7 В, делая сроки менее точны. Во многих случаях частота дискретизации примерно в 2-3 раза выше в цифровой цепи достаточна, чтобы понять, что происходит.
Воутер Симонс
@wouter Саймонс осторожен, чтобы не перепутать пропускную способность и частоту дискретизации (на самом деле я исправил использование моего слова в ответе). Частота дискретизации, в 2 раза превышающая частоту вашего сигнала, является минимальным для обнаружения этого сигнала. На практике области применения и особенно анализаторы, как правило, сильно превышают выборку. Например, моя область действия tek имеет полосу пропускания 100 МГц, но сэмплы на частоте 2,5 ГГц.
Марк
Отличный ответ. Я очень хорошо следил за вашим постом и, возможно, все еще могу измерить то, что мне нужно, с помощью одного из более дешевых устройств. Я буду следить за ограничениями, поскольку я исследую более сложные компоненты.
Оуэн Томас
8

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

Вы, конечно, можете использовать O-scope в качестве логического анализатора, но преимущество последнего заключается в том, что легче получить «общую картину», имея возможность одновременно наблюдать десятки сигналов.

JustJeff
источник
2

Что касается логических анализаторов, я написал базовое сравнение (относительно) недорогих:

Сравнение логических анализаторов на базе ПК

Следует отметить одно важное правило, касающееся скорости выборки: вам, как правило, требуется как минимум 4-кратная скорость передачи данных для точного считывания, а до 10-кратного - лучше. Поэтому, если вы хотите контролировать сигнал 8 МГц (который вы можете легко сгенерировать, например, из недорогого AVR в SPI), вам нужен анализатор частоты дискретизации 32-80 МГц. Это применимо только при захвате в асинхронном режиме. Если вы снимаете в «синхронном» режиме (например, с помощью тактового сигнала), то ваша частота дискретизации должна соответствовать частоте тактового сигнала. Например, в этом случае синхронной дискретизации 8 МГц будет достаточно для захвата сигнала SPI 8 МГц (поскольку он имеет выделенный тактовый сигнал).

Davr
источник
1

У меня есть MSO-19, и он мне очень нравится. Хотелось бы, чтобы у него было более одного аналогового канала, но он функционирует как осциллограф и логический анализатор. По цене, я думаю, что это хорошая часть оборудования (и хорошо работает в VMWare на OS X). Окуляр помог мне увидеть, что на самом деле происходит в части схемы, и не показывает только высокое / низкое состояние цифровой линии, как это делает логический анализатор. Это гораздо более точный (и быстрее реагирующий) вольтметр, чем ваш стандартный мультиметр. Было бы здорово, если бы он мог декодировать последовательные данные, а не только I2C и SPI…

blalor
источник
1

Этот ответ, вероятно, не очень полезен для вас, используя ardunio, но является ответом на общий вопрос.

Я часто использую функции логического анализатора моего pickit2. Ясно, что он предназначен для программирования PIC, но в нем также есть режим 3-канального логического анализатора, который я постоянно использую для просмотра цифровых сигналов. Я все еще использую его для этого, хотя я использую Cortex-M3 для своих текущих проектов. Очевидно, это чрезвычайно примитивный инструмент по стандарту надлежащего снаряжения, но даже в этом случае я нахожу его невероятно полезным

Я использовал его для отладки микросхем I2C и выходных телевизионных сигналов, например, см. Мой пост здесь

Джон Бертон
источник
1

Это довольно круто и очень дешево: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

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

AdamShiemke
источник
Я только что купил это месяц назад, так как я работал в основном с нетбуком, у меня были проблемы с размером экрана моего компьютера, чтобы можно было нажать кнопку «захват», но если у вас ноутбук или настольный компьютер обычного размера, вы все будет хорошо. Я не пользуюсь им широко, но мне мало того, что мне нравится, и цена тоже хорошая!
onaclov2000
Я довольно часто использую этот LA, и, поскольку это мой первый LA, я, вероятно, использую менее 50% мощности / функциональности, которые он предоставляет. Сравнивая различные другие недорогие LA, я обнаружил, что это один из лучших LA с хорошим соотношением цены и качества. Программное обеспечение не плохое. На самом деле я нашел, что это довольно хорошо для моих целей. Если вы хотите узнать, как я это использовал, просто нажмите на мой профиль и посмотрите вопросы, которые я задавал.
icarus74