Логический анализатор как пользоваться

от admin

Salae Logic & Protocol Analyzer 8 — Review and Tutorial

My latest acquisition is the Salae Logic Analyzer. I was very tempted to get the top of the line model, the Logic Pro 16, but decided I might as well see how useful it was before splashing out that much more cash. A reasonable compromise seemed to be the Logic 8 model.

A logic analyzer is an instrument that captures and displays multiple signals from a digital system or digital circuit. They are used for testing or debugging digital or logic circuits. The device connects to a PC over USB and uses the Saleae Logic Software to record and view digital and analog signals. It operates by sampling a digital input connected to a device under test (DUT) at a high sample rate. These samples are recorded to a sample buffer, and at the end of the capture, the buffer is displayed in the software for review. The following from the Logic 8 data sheet, explains where you would mostly use the device.

Logic analyzers are great for debugging embedded applications. In the most common case, a developer working on firmware for a micro-controller will write code to communicate with another component, possibly using protocols like serial, I2C, or SPI. To verify the functionality or to diagnose errors in the firmware, a logic analyzer is connected to the digital IO used for communication and records the activity during testing. The recording is then shown on the display so the user can view the actual behavior of the firmware, and compare that with the expected behavior to narrow down and identity the source of the issue or verify that the operation is correct.

Many oscilloscopes can perform a similar function, the advantage of the logic analyzer is that it can simultaneously display multiple signals (8 in my case) and relative timing information. The following from Radio Electronics, provides a good summary of the difference between a Logic Analyzer and an Oscilloscope.

  • Provide a time display of logic states:Logic analysers possess a horizontal time axis and a vertical axis to indicate a logic high or low states. In this way a picture of the digital lines can be easily displayed.
  • Multiple channels:Logic analyzers are designed to monitor a large number of digital lines. As logic analyzers are optimised for monitoring a large number of digital circuits, typically they may have anywhere between about 32 and 200+ channels they can monitor, each channel monitoring one digital line. However some specialised logic analyzers are suitably scaled to be able to handle many more lines, and in this way enable tracking and fault finding on much more complex systems.
  • Displays logic states:The vertical display on the analyser displays the logic state as a high of low state. The signals enter the various channels and are converted into a high or low state for further processing within the analyser. It provides a logic timing diagram of the various lines being monitored.

Most Logic Analyzers don’t allow you to analyse analogue data. The Logic 8 allows any of the 8 channels to be used for either analogue or digital analysis.

The device expects an input voltage range of 0 to 5V but can handle a maximum of -25 to +25V. This is perfect for the Arduino and Raspberry Pi. Note however that although the device wont blow up if you connect 25V, the analog input on Logic 4 and Logic 8 is limited to +0V to +5V, and will saturate (take on minimum or maximum value) outside of this range. Logic Pro 8 and Logic Pro 16 have an analog input limited to -10V to +10V, and will saturate outside of that range. So probably not so good for working with RS 232.

Protocol Analyzers decode data that has been encoded according to a particular protocol, such as SPI or I2C. The Logic software currently offers 23 different protocol analyzers. Each protocol analyzer needs to be set up to tell it what channels to use for what (e.g. SDA = channel 0, SDC = channel 1 for I2C).

Getting the unit working is pretty straight forward. Start by downloading the software from Salae. Then connect the unit via the USB port. One minor irritation is that you have to connect the test clips to the wire harness yourself.

This is just a matter of pushing the lead into the test clip but it requires quite a bit of pressure or it will just fall off again. I used long nose pliers to ensure that the leads stayed put.

In order to accurately record a signal, the sample rate must be sufficiently higher in order to preserve the information in the signal, as detailed in the Nyquist–Shannon sampling theorem. Digital signals must be sampled at least four times faster than the highest frequency component in the signal. Analog signals need to be sampled ten times faster than the fastest frequency component in the signal.

The maximum sample rates for digital and analog recordings is limited by the available USB bandwidth. Because of this, sampling at the maximum rate is not possible on all channels at once. Some example sample rate combinations:

  • 3 channels, digital only, 100 MSPS
  • 2 channels, analog only, 10 MSPS
  • 8 channels, digital only, 25 MSPS
  • 8 channels, analog only, 2.5 MSPS

The big question is what can I do with this kit and is it useful? To answer this question, I will use the Logic Analyzer in a few typical scenarios and see how it goes.

Test 1 — PWM

As a first test I will look at Pulse Width Modulation (PWM) on the Arduino. Actually I will use the STEMTera breadboard for this test, it is an Arduino built into a breadboard and is handy for prototyping and testing.

I’ve connected an LED across pin 9 and GND, with an appropriate current limiting resistor. The simple sketch below should produce a square wave on pin 9 with a frequency of 500Hz and a 50% duty cycle.

Using channel 0 on the Logic 8 produces the following when I connect the probes across the LED.

As expected, we get a square wave with a period of 2 ms (1 / 500 Hz = 2 ms) and a 50% duty cycle. As a further check, I changed analogWrite(LED9, 64) to get a 25% duty cycle, and captured:

So for checking PWM duty cycle, this is a handy tool.

The other thing that actually measuring the waveforms is good for is to test your assumptions.

Initially, I was expecting the square wave to go from 0–5V, and if you disconnect the LED and measure from pin 9 to ground that is exactly what you get. However, with the LED in place and with our probes across the LED, the square wave goes from zero to approximately 2V.

This is of course the characteristic forward voltage drop across the LED. To check this, I stuck the LED in the LCR tester which measured a Vf = 1.69V.

Test 2 — SPI

Next I will try out an application which uses the SPI protocol. This will test out the functionality of the protocol analyser and is something that you couldn’t do as easily on a 2 channel DSO (since we are looking at 3 channels — DIN, CS and CLK).

We will use the Duinotech 8×8 LED Dot Matrix module described in a previous article.

Duinotech 8 x 8 LED Dot Matrix Module Red

Jaycar in Australia have a range of Arduino compatible kit, one such piece is the Duinotech 8 x 8 LED Dot Matrix Module…

This communicates with an Arduino using SPI via the MAX7219 chip.

The Serial Peripheral Interface bus (SPI) is a synchronous serial communication interface specification used for short distance communication, primarily in embedded systems. The interface was developed by Motorola in the late 1980s and has become a de facto standard. Typical applications include Secure Digital cards and liquid crystal displays [Wikipedia].

The SPI bus specifies the following logic signals:

In our example, the Arduino is the Master and the LED Module is the Slave. As we are only connecting using 3 wires, communication is one way, from the Master to the Slave. To begin communication, the master selects the slave device with a logic level 0 on the select line ( CS ). During each SPI clock cycle, a full duplex data transmission occurs. The master sends a bit on the DIN line and the slave reads it. For a 4 wire application the slave sends a bit on the MISO line at the same time and the master reads it. This sequence is maintained even when only one-directional data transfer is intended.

As described in our post on the 8×8 Led Matrix Module, we are controlling the module using the LedControl Arduino library. The first thing that we noticed when hooking up the Logic / Protocol Analyzer was that the clock speed appeared to be too slow. As expected, the CS line went low to kick things off.

The hardware SPI CLK on the Arduino is usually running at between 25kHz to 8MHz with a default of 4MHz. As shown in the screen capture below, we are measuring a clock frequency of about 64kHz.

This made me investigate the LedControl library in more detail. It turns out that the Library doesn’t use the hardware SPI but emulates the SPI protocol using bit banging.

In retrospect this is obvious since you can assign any digital input to the DIN, CS and CLK functions. Using hardware SPI these pins are set. A quick look at the LedControl source code shows that it is using the Arduino shiftOut() function to do most of the control of the logic lines. The syntax of the command is:

It shifts out a byte of data one bit at a time. Starts from either the most (i.e. the leftmost) or least (rightmost) significant bit — MSB first for LedControl.

Each bit is written in turn to a data pin, after which a clock pin is pulsed (taken high, then low) to indicate that the bit is available. So the clock speed will not necessarily be consistent, the pin transition happens when the data is ready — also not what I was expecting.

If you want to, you could trace every byte being transmitted to the LED module. For example the first byte of the “smile” image in our example code is 0x3C , you can see this being sent on the MOSI line in the screen shot below.

The logic analyzer software allows you to search the decoded protocols which makes it easier to find a particular byte.

The question at the start was what can we do with a Logic / Protocol Analyser and is it useful?

I have tested a couple of examples and based on this I think it will be very useful. If something is not working as expected, it may be because your assumptions were wrong. This was demonstrated very clearly above and I will be measuring my designs a lot more to ensure that the designs are doing what they should be. Of course it also demonstrates that you don’t need to understand how SPI works, to get an Arduino to talk with an 8×8 LED Module.

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

Расскажу о работе с логическим анализатором на примере моего логического анализатора и программы Saleae Logic 1.1.15. Итак, при установке и запуске программы мы увидим такое окно.

Saleae Главное окно

Это рабочая область программы. В самом верху мы можем видеть статус анализатора (Disconnected/Connected), а также два поля: Samples и MHz. В первом задаем размер памяти под чтение, а во втором скорость семплирования. Например при выборе 5M Samples (5 млн. выборок), и скорости 1 MHz, длинна записи составит: 5/1=5 секунд. Если скорость — 200 KHz, то: 5/0,2= 25 секунд. То есть чем выше скорость, при одинаковом размере памяти тем быстрее ее заполнит, но и тем точнее будет анализ. В общем настраивается под конкретный проект. Ниже мы видим все 8 линий логического анализатора. Для удобства их можно подписывать как угодно, как видите у меня они переименованы все кроме 7-ой. Там же есть настройка триггеров.

Saleae Линии анализатора

Это тоже очень удобно так как запуск записи происходит по событию на одном из портов. Слева расположена кнопка «Опции», там можно сохранять наши осциллограмы, а также вкладка «Measurements» и «Analyzers». Вторая это самая основная. Если вы отслеживаете работу какого-то модуля, то вам несомненно пригодятся встроенные анализаторы.

Saleae Все возможные интерфейсы для декодирования

Как видно, присутствуют все возможные интерфейсы. Настраиваются они легко. Например у меня на 2 и 3 линии находятся RX и TX Uart интерфейса. Чтобы их настроить нужно нажать на плюсик рядом с Analyzers, выбрать Async Serial, и дальше ввести нужные настройки.

Saleae Настройка UART

Программа простая, но очень функциональная и удобная. Ну а теперь покажу на примере. Сейчас у меня логический анализатор подключен к двум Uart портам микроконтроллера Stm32f103c8t6. На один поступают данные, а с другого они выходят, но с опозданием. Сейчас я передам на него строку и посмотрим как это будет выглядеть в анализаторе. Так выглядит строка адреса одной из статей сайта:

Saleae Данные на линиях.

Видим какие-то данные на 2 линиях. Увеличиваем:

Saleae При увеличении видим декодированные строки

Видим что принятые данные одним портом были переданы другим, но с опозданием.

Saleae Одновременно можно работать хоть со всеми портами

Над каждым принятым байтом программа поставила раскодировку.

Saleae Принятые данные. Видно как расшифровывается каждый байт

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

Saleae Картина с отключенными анализаторами

Кстати можно оперативно видеть ширину между «0» и «1», или измерять нужные участки с помощью курсоров.

Работа с логическим анализатором Saleae Logic Analyzer

Логический анализатор – незаменимый помощник при отладке цифровой схемотехники. Давайте рассмотрим основные приёмы работы с логическим анализатором Saleae Logic Analyzer и его китайскими аналогами.

Для работы нам понадобится:

    ; ; ;
  • соединительные провода (рекомендую вот такой набор); (breadboard).

1 Технические характеристики логического анализатора Saleae logic analyzer

Логический анализатор – это инструмент для временного анализа цифровых сигналов. Это незаменимый, действительно незаменимый инструмент при отладке цифровой электроники. Оригинальные анализаторы от именитых производителей стоят больших денег. У наших китайских друзей можно купить такое устройство за копейки. Поэтому если у вас его ещё нет – обязательно приобретите. Возможности данного небольшого устройства весьма внушительны.

В таблице перечислены основные параметры логического анализатора, моей китайской копии анализатора фирмы Saleae.

Параметр Значение
число цифровых каналов 8
частота оцифровки на канал до 24 МГц
количество сэмплов в выборке до 1G (зависит от количества памяти ПК)
входное сопротивление 100 кОм
диапазон рабочих напряжений –0,5…5,25 В
напряжение логического «0» –0,5…0,8 В
напряжение логической «1» 2,0…5,25 В
защита от статики
защита по превышению напряжения +/−15 В

2 Установка драйверадля логического анализатора Saleae

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

Скачиваем программу и драйверы для логического анализатора Saleae Logic Analyzer Скачиваем программу и драйверы для логического анализатора Saleae Logic Analyzer

Если у вас копия другой фирмы, например, USBee AX Pro, то с большой долей вероятности для него также подойдут драйверы от производителя анализатора-оригинала.

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

Для первого эксперимента возьмём преобразователь USB-UART на микросхеме FTD1232. Подключим анализатор к порту USB. Выводы каналов с 1 по 6 подключим к выводам USB-UART преобразователя. По большому счёту, больше всего нас интересует только две линии – Rx и Tx, можно обойтись только ими. Преобразователь определился в системе как COM-порт. Запустим любую терминалку (вот, например, неплохая программа для работы с COM-портом) и подключимся к порту.

Подключение FTD1232 к логическому анализатору Подключение USB-UART конвертера на микросхеме FTD1232 к логическому анализатору

Запускаем программу Saleae Logic. Если драйверы для анализатора установлены корректно, в заголовке программы будет указано Connected – подключено. Допустим, мы не знаем на каком канале будет сигнал, а на каком нет, поэтому не будем выставлять триггер для начала захвата сигнала. Просто нажмём на стрелки большой зелёной кнопки Start (Старт) и выставим в поле Duration (Длительность), скажем, 10 секунд. Это время, в течение которого логический анализатор будет собирать приходящие по всем 8-ми каналам данные после нажатия кнопки «Старт». Запускаем захват и одновременно отправляем в COM-порт какое-нибудь сообщение. Через 10 секунд анализатор закончит сбор данных и выведет результат в поле просмотра сигналов. В данном случае сигнал будет лишь на одном канале, который присоединён к выводу Tx (передатчик) USB-UART преобразователя.

Последовательный сигнал, захваченный логическим анализатором Последовательный сигнал, захваченный логическим анализатором

Для наглядности можно настроить декодер перехваченных данных. Для этого в правом столбце находим поле Analyzers, нажимаем иконку в виде плюса – «Добавить», указываем тип – Async Serial. Появится окно с выбором настроек. В первое поле вводим номер канала, на котором у вас данные. Остальное оставим как есть. После нажатия кнопки Save (Сохранить), над полем соответствующего канала появятся метки голубого цвета с отображением значений байтов, которые были перехвачены. Нажав на шестерёнку в данном дешифраторе, можно задать режим отображения значений – ASCII, HEX, BIN или DEC. Если вы передавали в COM-порт строку, выберите режим ASCII, и увидите тот текст, который был вами передан в порт.

Настройки декодера данных Настройки декодера данных

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

Читать:
Тостер не фиксируется в нижнем положении как починить

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

Подключение конвертера USB-RS485 к логическому анализатору Подключение конвертера USB-RS485 к логическому анализатору

Нажмём кнопку «Старт» в программе анализатора. С помощью нашей терминалки подключимся к USB-RS485 конвертеру и передадим какие-нибудь данные. По срабатыванию триггера программа начнёт собирать данные, по завершению выведет их на экран.

Последовательный сигнал RS485, захваченный логическим анализатором Последовательный сигнал RS485, захваченный логическим анализатором

Программа Saleae Logic позволяет экспортировать сохранённые данные в виде изображений и текстовых данных, сохранять настройки программы, аннотации и декодеры каналов.

Последний пример в данном небольшом обзоре – захваченный кадр данных, переданный по последовательному протоколу SPI. В канале 2 виден сигнал выбора ведомого, в канале 0 – тактовые импульсы, а в канале 1 – собственно данные от ведущего устройства к ведомому.

Последовательный сигнал SPI, захваченный логическим анализатором Последовательный сигнал SPI, захваченный логическим анализатором

Выводы

Логический анализатор может быть очень полезен при разработке и настройке всевозможных электронных устройств, при написании программного обеспечения, работающего в связке с железом, при работе с микроконтроллерами, ПЛИС и микропроцессорами, для анализа работы различных устройств и протоколов обмена данными, и для многих других применений. Кроме того, он портативен и не нуждается в отдельном питании.

Инструкция по работе с программой для логического анализатора Saleae

По ссылкам ниже можно скачать инструкцию с файлообменников, либо напрямую с сайта.

Как пользоваться логическим анализатором


Часто при разработке или отладке радиоэлектронных устройств состоящих из нескольких компонентов(микроконтроллер, АЦП, I2C память, итд) хочется посмотреть на общение этих компонентов между собой. Чтобы наконец понять почему всё написано «правильно», но ничего не работает. В целом для этого можно использовать цифровой осциллограф, но осциллографы с 4 каналами стоят достаточно дорого, да и не очень это удобно. Гораздо приятней такая задача решается при помощи логического анализатора. Логический анализатор по сути похож на осциллограф, но если основная задача осциллографа отображение изменение аналогового сигнала с чем он замечательно справляется, то цель логического анализатора запись цифрового(но не всегда только цифрового) сигнала с последующим его анализом в удобных программах.

Ниже я опишу опыт работы с логическими анализаторами Logic Pro 8 от Saleae ценой около 480$ и DSLogic Pro от DreamSourceLab(скорей всего копия) ценой $99 мне достался за 73$.
Кому стало интересно добро пожаловать под кат.

Технические характеристики

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

Число цифровых каналов 8 16 Чем больше тем лучше, но за год использования больше 4 пока было не особо нужно
Число аналоговых каналов 8 0 Для аналога предпочтительней всё же осциллограф, но иногда бывает удобно увидеть, что творится не только в цифре на канале, но и в аналоге.
Интерфейс USB 2.0 / USB 3.0 USB 2.0 USB 3.0 предпочтительней если он у вас есть конечно. Хотя момент спорный, ниже опишу почему.
Частота сэмплирования цифровых каналов Чем больше тем лучше, но в случае есть один нюанс, но об этом ниже.
Частота сэмплирования аналоговых каналов Чем больше тем лучше.
Диапазон напряжений цифра/аналог: Тут у Logic Pro 8 на выбор три пороговых напряжения 1.2V/1.8V/3.3V.
У DSLogic Pro выбор от 0V до 5V с шагом 0.1V также у него значится защита от перенапряжение -30V — +30V.
Внутреннее сопротивление каналов 1,8 MOm 250 кOm Чем больше тем лучше, меньше оказывается наводок на исследуемую схему.
Буфер 256Mbits Чем больше тем лучше, от этого параметра зависит сколько сэмплов может захватить анализатор не передавая их в компьютер. Вещь крайне полезная особенно для UBS 2.0
Глубина выборки в теории не ограничена 16MS на канал Чем больше тем лучше, Logic Pro 8 использует память PC глубина выборки может быть очень большой, однако буфера DSLogic Pro тоже хватает.

В общем по многим характеристикам Logic Pro 8 имеет перевес, особенно в плане аналоговой части. Однако отсутствие буфера сказывается отрицательно, во-первых скорость падает в два раза при использовании 4 каналов, и в 4 раза при использовании 6 и больше каналов. Но это не все, так как скорость плотно завязана на USB шину то казусы случаются если эта шина загружена, иногда достаточно подключить к одному USB хабу UART кабель, чтобы программа ругнулась и сказала, что скорости USB не хватает и скорость захвата будет снижена. Не то, чтобы это бывает часто и сильно мешает, но помнить про такое стоит.
Из особенностей DSLogic Pro хочется отметить ещё наличие внешней линии клока, и сигналов внешнего входа триггера, и выхода триггера.

Внешний вид и комплектация

Комплект Logic Pro 8:
  • сам анализатор
  • два коннектора с разноцветными проводами, по 4 канала на коннектор
  • 16 клипс для соединения с ногами микросхем, проводами, итд
  • USB 3.0 кабель USB-A to MictoUSB 3.0

Комплект DSLogic Pro:
  • сам анализатор
  • широкий коннектор на 16 каналов плюс дополнительные сигналы,
  • 16 разноцветных клипс для соединения с ногами микросхем, проводами, итд
  • USB 2.0 кабель USB-A to MictoUSB

Сравнение

Программное обеспечение

Какой бы не был хороший логический анализатор, без хорошего софта удобства работы с ним не будет. Хороший софт должен быстро отображать захваченные данные, позволять смотреть их характеристики такие как частоту, скважность. И очень хорошо, что бы он умел расшифровывать общеизвестные протоколы. Это невообразимо удобно указать где находятся ноги I2C и увидеть, что же именно происходило на шине с точки зрения I2C протокола, а не сидеть и чесать затылок вглядываясь и пытаясь понять так ли оно всё и какой здесь записался адрес. Каждый анализатор комплектуется своей программой:

Saleae Logic

Анализаторы Saleae комплектуются Saleae Logic

Программа мультиплатформенная, поддерживаются все версии Windows начиная с XP(год назад были проблемы с Win 7 и выше, в новой версии Win 7 работает без нареканий, выше не тестировал), Mac OS X 10.7 Lion+ устанавливалась и работала без нареканий, Ubuntu 12.04.2+ у меня так и не заработала(тестировал год назад на старой версии программы сейчас может работает), но я особо и не пытался.

Поддерживает большой список протоколов для анализа I2C/SPI/UART/CAN, работают без нареканий. Возможен захват как по ручному старту так и по триггеру на одном из каналов. Из недостатков на длинных выборках начинает достаточно сильно тормозить.

Из фич программы стоит отметить, возможность управление по telnet-подобному протоколу, наличие SDK для написания своих декодеров протоколов. Протоколы пишутся на C++, что усложняет процесс их написания.

DSView

DSLogic Pro комплектуется программой DSView:

Тоже мультиплатформенная программа поддержка Windows начиная с XP, Mac OS X 10.11.4, Linux(прога идёт в исходниках). По возможностям программа превосходит Saleae Logic, имеются более продвинутые триггеры с поддержкой сразу нескольких каналов, список протоколов достаточно обширен. Но тут разработчики пошли дальше и на протокол можно ещё навесить возможность расшифровки работы с конкретной реализацией этого протокола. Например Можно выбрать протокол I2C и реализацию 24СXX и после этого сразу прочитать, что именно происходило на шине с точки зрения данной микросхемы. Как протоколы так и их реализации пишутся при на Python, что по идее должно упростить написание и отладку. Тормозов в работе замечено не было.

Также стоит отметить, что проект является частично OpenSource и на GitHub выложены исходники софта, и HDL части. А на Wiki приведена схематика. Поэтому возможно скоро будет куча клонов данного устройства(возможно у меня тоже клон).

Простое тестирование

Для простой проверки анализаторов была использована дев.плата DE0-Nano-SoC на которой были сгенерированы меандры от 200Mhz каждый следующий получен делением на 2 предыдущего (200/100/50) попробую захватить их имеющимися анализаторами.

На DSLogic Pro удалось захватить 200Mhz/100Mhz/50Mhz ниже и так понятно, что всё идёт отлично. Сказать, что 200 и 100 были захвачены идеально нельзя иногда есть небольшое уплывание частоты и скважности, но в целом нормально, на 50 уже всё идеально.

И всё-таки к таким замерам я бы серьёзно не относился, 200Mhz замерять просто «накидными» проводами наверное перебор, но попробовать стоило.

Для эксперимента попробуем захватить передачу данных по I2C(передачи разные поэтому данные не сходятся).

Всё отлично читается, понятно где какое событие наступило, какие адреса и данные были переданы. Никакой возни.

Тоже самое для CAN:

Результат такой же как и в I2C всё наглядно понятно за минимальный промежуток времени.

Выводы

Оба логических анализатора отлично справляются со своими задачами. Не смотря на разницу в цене выделить кого-то в лидеры я бы не смог, у них есть и плюсы и минусы. На стороне Saleae внешний вид, удобные провода, качественные клипсы, USB3.0 и аналоговые каналы, стоит ли за это отдавать 400$ вопрос сложный, если есть возможность то почему бы и нет. На стороне DSView больше каналов, вход для внешнего клока и триггеров, буфер внутри анализатора, OpenSource софт, и цена. И тот и другой может очень сильно облегчить и ускорить работу по наладке своих или чужих схем, и изучению.сторонних протоколов.

Если есть вопросы – спрашивайте.

PS. Seleae используется у нас около года проблемы были только с ранними версиями софта под Win7 и выше, DSView купил для личного пользования около недели назад по пока нареканий нет, но и время пользования небольшое…

Логический анализатор LOGIC-U PLUS

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

Привезли мне это чудо, доставили прям до двери, в простом бумажном пакете с марками украины. Коробочка маленькая, размером с две ладони.

Внутри: сам анализатор (жена не сразу поверила что эта маленькая фигня — то, за что я отдал почти 3000, и ждал месяц — настолько он маленький), USB-кабель(довольно длинный), провода с захватами, диск с драйверами и ПО, книжка-инструкция по эксплуатации.

Хваталки на проводах 4 видов:

Большой черный — это земля, просто выдвижной крючек, такого же типа оранжевые и белые, только размер поменьше,

красная — цангового типа, мелкая, очень удобная — легко цепляет ногу attiny2313 в SOIC

Разъем для проводов PLD, с шагом 2.54мм, так что с заменой проблем не возникнет.

Используется только нижняя половина разъема, это 8 каналов, GND, VCC(который имеет двоякое назначение: в версии STD это питание входного преобразователя уровней, тоесть, если его запитать от 12в, логической единицей будет 12, а если от 5, то и за «1» будет 5В), на который в этой версии(и в PRO)вывели 5В,100мА, но не подключили ни к одному проводу, а добраться до него при вставленном разъеме нельзя — а на кой мне эти пять воль без возможности измерений?

В версиях выше STD был исключен входной преобразователь уровней, это было сделано для обеспечения совместимости с USBee AX, диапазон которого ограничен +3.3 и +5, а мне например больше и не надо �� А в версии PRO добавлен АЦП, который работает в режиме осциллографа(+-1В, и делитель 1:10 в комплекте).

Верхняя часть разъема содержит в себе переключалку(три контакта, и джампер) режима работы – косить под USBee или работать со своей программой, и контакты TRG, GND, CLK.

Максимальная частота обновления у каждого канала это 24 мГц, а вот с заявленным «неограниченным временем записи» непонятное — судя по поведению программ от AX — в приборе есть некий фиксированный буфер, время заполнения которого зависит от частоты(ее можно уменьшить), который затем передается на комп, и там обрабатывается.

При частоте 24мГц, можно записать максимум 300М состояний время записи при этом составит 12 секунд
Если понизить частоту до 6мГц, можно писать в течении 50 секунд, а при 1мГц буфера хватит на 300 секунд. С учетом того, что можно настроить запись по событию, этого времени должно хватить – у меня пока проблем не возникало.

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

Есть так же вход-выход CLK, с которого можно как тактированить наблюдаемое утройство, так и брать тактовый сигнал с устройства (если он присутствует отдельно в протоколе, как например в SPI)

Теперь о программах, которые шли в комплекте
Salea Logic

(в случае версии STD, это единственный вариант, если не перешивать EEPROM, но в этом случае мы лишаемся возможности вывода сигналов, из за входного преобразователя, так как он видимо односторонний)
Простое, умеет расшифровывать I2C, 1WIRE, UART, SPI, имеет SDK для написания своих анализаторов( на .NET ).
Минусы:
Написано на .NET – очень любит кушать память, три-четыре измерения сьедают 500мб памяти, приходится перезапускать.
Не умеет расшифровывать ЮСБ
Плюсы:
Сохраняет состояние и настройки анализаторов при перезапуске
Есть функция AutoBaud(удобно при перехвате UART)
Похож на USBee Suite, только не такой функциональный

USBee Suite
Графическая оболочка для пакета программ USBee AX Test Pod
Очень красиво и наглядно, пожалуй на этом все. Умеет все, что умеет USBee AX Test Pod

USBee AX Test Pod
Комплект программ, идущих в комплекте к USBee AX(c другими версиями они немного другие)

Data Logger

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

Digital Frequency Counter – частотомер

Digital Frequency Generator – генератор частот

Digital Signal Generator – генератор сигналов

Digital Voltmeter – вольтметр(нужен аналоговый вход)

Logic Analyzer – логический анализатор

Oscilloscope – осциллограф

Pulse Counter – счетчик импульсов

Собран анализатор качественно, в качестве нижней части корпуса используется печатная плата(на фото видны переходные отверстия, а поскольку к ним не ведет дорожек, логично предположить что она многослойная). А судя по расположению USB разъема(вверх ногами), скорее всего там еще одна плата, под крышкой, к ней и припаян разъем.
В общем, покупкой доволен, как-никак хороший анализатор, за небольшие деньги. А осциллограф удобнее отдельный иметь.

6-lab: LOGIC-U PLUS — сайт производителя
Инструкция по эксплуатации
Стандартная программа
Программа от USBee

Если есть желание прикупить, то можете написать сюда или мне на почту — vvzvlad@gmail.com, будет профит в виде скорости и скидки ��

DI HALT:
Тем временем, вот уже пол года, на просторах Казуса народ вовсю клонирует этот девайс. Т.к. собран он, фактически, на одной микросхеме и все фичи делаются в нем программно. Микросхема эта представляет собой микроконтроллер с аппаратной поддержкой USB и загрузкой программ через USB, что позволяет ее налету превращать во что угодно только за счет софтверной поддержки. Естественно клонируется она тоже влет, т.к. аппаратной защиты тут никакой нету, ну а крякнуть управляющую софтину для опытных бойцов софтайса дело не хитрое.

Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

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

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

Расскажу о работе с логическим анализатором на примере моего логического анализатора и программы Saleae Logic 1.1.15. Итак, при установке и запуске программы мы увидим такое окно.

Saleae Главное окно

Это рабочая область программы. В самом верху мы можем видеть статус анализатора (Disconnected/Connected), а также два поля: Samples и MHz. В первом задаем размер памяти под чтение, а во втором скорость семплирования. Например при выборе 5M Samples (5 млн. выборок), и скорости 1 MHz, длинна записи составит: 5/1=5 секунд. Если скорость — 200 KHz, то: 5/0,2= 25 секунд. То есть чем выше скорость, при одинаковом размере памяти тем быстрее ее заполнит, но и тем точнее будет анализ. В общем настраивается под конкретный проект. Ниже мы видим все 8 линий логического анализатора. Для удобства их можно подписывать как угодно, как видите у меня они переименованы все кроме 7-ой. Там же есть настройка триггеров.

Saleae Линии анализатора

Это тоже очень удобно так как запуск записи происходит по событию на одном из портов. Слева расположена кнопка «Опции», там можно сохранять наши осциллограмы, а также вкладка «Measurements» и «Analyzers». Вторая это самая основная. Если вы отслеживаете работу какого-то модуля, то вам несомненно пригодятся встроенные анализаторы.

Saleae Все возможные интерфейсы для декодирования

Как видно, присутствуют все возможные интерфейсы. Настраиваются они легко. Например у меня на 2 и 3 линии находятся RX и TX Uart интерфейса. Чтобы их настроить нужно нажать на плюсик рядом с Analyzers, выбрать Async Serial, и дальше ввести нужные настройки.

Saleae Настройка UART

Программа простая, но очень функциональная и удобная. Ну а теперь покажу на примере. Сейчас у меня логический анализатор подключен к двум Uart портам микроконтроллера Stm32f103c8t6. На один поступают данные, а с другого они выходят, но с опозданием. Сейчас я передам на него строку и посмотрим как это будет выглядеть в анализаторе. Так выглядит строка адреса одной из статей сайта:

Saleae Данные на линиях.

Видим какие-то данные на 2 линиях. Увеличиваем:

Saleae При увеличении видим декодированные строки

Видим что принятые данные одним портом были переданы другим, но с опозданием.

Saleae Одновременно можно работать хоть со всеми портами

Над каждым принятым байтом программа поставила раскодировку.

Saleae Принятые данные. Видно как расшифровывается каждый байт

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

Saleae Картина с отключенными анализаторами

Кстати можно оперативно видеть ширину между «0» и «1», или измерять нужные участки с помощью курсоров.

Похожие публикации