Сигналы usb на осциллографе
Все чаще и чаще используются приборы подключаемые к компьютеру по USB. Часто они бывают дешевле и функциональнее обычных приборов. В этой статье описано создание USB осциллографа с максимальной частотой 10 кГц при входном напряжении ± 16В. Он гораздо лучше других подключаемых к компьютеру осциллографов. Имеет гораздо больше возможностей, чем ПК-осциллографы. В качестве основы использован микроконтроллер PIC18F2550. Питание берётся непосредственно с USB порта, что делает осциллограф компактнее.
Описание схемы
В основе этого USB 2.0 осциллографа лежит микроконтроллер PIC18F2550. Вы можете использовать PIC18F2445 вместо PIC18F2550.
Характеристики PIC18F2550:
1. 32 Кб флэш-памяти, 2 Кб оперативной памяти и 256 байт EEPROM
2. Расширенный набор команд (оптимизированный для «С»)
3. 8x8 однотактный умножитель
4. Простая прошивка и отладка
5. USB 1.1 и 2.0 от 1,5 Мб/с до 12 Мб/с
6. Несколько режимов передачи по USB
7. 1 Кбайт доступной RAM с 32 конечными точками (64 байт каждая)
8. Работа с частотой от внутреннего генератора от 31 кГц и до 48 МГц с внешним кварцем.
9. Возможность программного переключения между «быстрым», «нормальным» и спящим режимами. В спящем режиме, ток потребления 0,1 мкА.
10. Широкий диапазон рабочих напряжений (от 2,0 В до 5,5 В).
11. Несколько портов ввода/вывода (I / O), четыре таймера с возможностью захвата /сравнения.
12. Синхронные и асинхронные модули расширения
13. Потоковый параллельный порт
14. 10-разрядный АЦП с 13-канальным мультиплексором.
На рисунке выше показана схема двухканального USB осциллографа. MCP6S91 является аналоговым усилителем с программируемым коэффициентом усиления. Он хорошо подходит для использования в АЦП и подачи сигнала на аналоговый вход микроконтроллера. Два программируемых усилителя (IC4 и IC5) позволяют выбрать входной диапазон для каждого из двух каналов, изменяя его от 1:1 до 32:1. Усилители небольшие, дешевые и простые в использовании. Простой трехпроводной последовательный интерфейс SPI позволяет микроконтроллеру управлять ими через выводы 5, 6 и 7.
MCP6S91 разработан с использование КМОП устройств ввода. Он не инвертирует выходной сигнал, когда входное напряжение превышает напряжение питания. Максимальное входное напряжение этого усилителя от -0.3V (VSS) до +0,3 В (VDD). Повышенное входное напряжение может вызвать чрезмерный ток из входных контактов. Ток более ± 2 мА может привести к поломке микросхемы. При подаче большего тока на входе должен быть токоограничительный резистор. Напряжение на выводе 3, который является аналоговым входом, должно быть между VSS и VDD. Напряжение на этом выводе меняет выходное напряжение. Выводы SPI интерфейса это выбор кристалла (CS), последовательный вход (SI) и последовательная частота (SCK). Выходы КМОП это триггер Шмитта.
Единственным недостатком является то, что эти усилители принимают только положительные сигналы. Вот почему используется напряжение сдвига усилителей LF353 (IC2A и IC3A). LF353 является операционным усилителем с внутренней компенсацией смещения входного напряжения. Этот ОУ имеет широкую полосу пропускания, низкий входной ток. Напряжение сдвига усилителя приводит к высокому входному сопротивлению и коэффициенту уменьшения 1:4.5. ± 16В входного сигнала переходят в 0-5В диапазон.
LF353 (IC2B и IC3B) используются для обеспечения напряжения смещения (Vref) для программируемых усилителей. Это напряжение должно быть точно отрегулировано двумя 4,7 кОм потенциометрами. На входах IC2 и IC3 должно быть 2.5В, когда вход на GND.
LF353 нужны одинаковые напряжения питания, поэтому используется маленький DC-DC преобразователь напряжения ICL7660 (IC1). Ему необходимо лишь два электролитических конденсатора. ICL7660 можно заменить MAX1044.
Последовательная шина
Все данные передаются на D + / D- симметричные входы с переменной скоростью. Положение резистора (R13) на D + или D- позволяет регулировать скорость от 12Мбит до 1.5Мбит. Обратите внимание, что PIC18F2550/2455 имеют встроенные подтягивающие резисторы. Использование UPUEN (UCFG = 4) позволяет использовать их. В этом проекте R13 не используется. Внешние подтягивающие резисторы также могут быть использованы. Сопротивление резистора должно быть в 1,5 Ком (± 5%) в соответствии с требованиями USB.
Программа микроконтроллера
Установка драйвера
1. Если все в порядке, подключите осциллограф с помощью кабеля USB к компьютеру (с операционной системой Windows 98SE и выше). Должно появится диалоговое окно "Обнаружено новое устройство"
ПРИМЕЧАНИЕ: Драйвер для этого осциллографа не работает на Windows 7 или Vista.
2. Теперь вы можете запустить установку драйвера. Для загрузки драйвера , нажмите здесь. Не позволяйте Windows установить стандартный драйвер.
3.Когда вы всё сделали, перейдите в "Диспетчере устройств" и убедитесь, что 'USB2-MiniOscilloscope" распознается. Если его там нет, повторите шаги 1 и 2.
Пользовательский интерфейс программы
Пользовательский интерфейс программы написан на Visual Basic 6 и называется OscilloPIC. Нажмите для закачки.
Программа выглядит как маленький цифровой осциллограф, что показано на скриншоте выше. Различные настройки в строке меню:
1. Inputs: выбор активных каналов
2. Sampling: настройка частоты снятия показаний
3. Trigger: настраивает синхронизацию
4. Cursors: выбор горизонтальной или вертикальной позиции сигнала
5. Num: показывает дискретные значений в формате текстового файла
6. Config: настройка усиления и смещения
Тесты и калибровка
Первый шаг заключается в корректировке смещения. Подсоедините два аналоговых входа на GND и подстройте два 4,7 кОм потенциометра, пока на выводе 2 обоих MCP6S21 не будет 2,5В. Более точная настройка может быть достигнута за счет OscilloPIC. Выберите наименьшее значение калибровки в пределах ± 0,5 для обоих входов.
Команда «калибровка нуля» сообщает ПИК о необходимости начать свою собственную внутреннюю компенсацию для всех калибровок. Не забудьте подключить входы на землю.
Второй параметр требующий настройки - это ошибки усиления. Нажав кнопку "калибровка усиления", можно указать небольшой поправочный коэффициент. Это можно сделать после нескольких измерений. Вы должны знать реальные параметры сигнала и добиться от осциллографа аналогичных показаний. Погрешность усиления составляет менее 0,1 процента. Для двух каналов минимальная выборка составляет 10мкс.
Сборка
Макет схемы собранный на макетной плате
Размер печатной платы осциллографа можно оценить на фотографии. Поскольку схема довольно проста, сборка не должна вызвать затруднений.
Рекомендуется использовать панельки для монтажа IC1 и IC7 на печатной плате для возможности их замены в случае поломки. USB-разъем (CON1) должен быть прочно припаян и зафиксирован на плате.
Для подачи входного сигнала могут быть использованы BNC разъёмы. Разъёмы для них могут быть установлены на передней панели. Осциллограф может быть улучшен путем замены PIC и АЦП на более быстрые модели, например на AD9238 (20 MS/с). Это быстрый параллельный АЦП можно использовать вместе с DSP PIC.
ПРИМЕЧАНИЕ: Плата оптимизирована для изготовления в домашних условиях(дорожки специально сделаны толстыми). Если вы можете сделать более тонкие дорожки, вы можете уменьшить их толщину.
В статье рассмотрены особенности функционирования интерфейса USB 2.0, широко применяемого в компьютерной технике. Рассмотрены принципы организации информационного обмена между хостом и устройствами USB 2.0, показана необходимость использования для их тестирования современных средств измерений. Рассмотрены функциональные возможности и особенности опций R&S RTO -K21 и R&S RTO-K60, предназначенных соответственно для тестирования устройств USB 2.0 и анализа сигналов на уровне передаваемых пакетов. Приведен пример осуществления такого анализа.
Интерфейс передачи данных USB (Universal Serial Bus) является совместной разработкой ведущих фирм-производителей компьютерной техники. Созданный еще в 1995 г., он пришел на смену интерфейсам PS/2, COM, LPT, широко применявшимся в то время для подключения периферийных устройств к компьютерам. Совершенствование вычислительных средств, а также появление новых устройств, требующих высокоскоростного подключения к компьютеру, привело к эволюционному развитию USB, в первую очередь, в направлении повышения скорости передачи данных. К настоящему времени в компьютерах используются интерфейсы USB 2.0, 3.0, 3.1. При этом интерфейсы USB 3.0, 3.1 применяются в основном для внешних жестких дисков, обеспечивая скорости передачи данных до 5 Гбит/с, а USB 2.0 используется для подключения прочих устройств — принтеров, сканеров, флеш-накопителей и т.д. Помимо своих классических, ставших привычными для всех применений интерфейс USB 2.0 используется и в других областях. Так, например, некоторые датчики, формирующие большой поток информации, имеют такой интерфейс. Он используется для программирования и сервисного обслуживания электронных устройств на контроллерном управлении, начиная от телевизионных приставок и заканчивая банкоматами. На основе USB 2.0 иногда строятся локальные компьютерные сети, включающие обычно два компьютера и предназначенные для передачи файлов со скоростью до 20 Мбит/с. Таким образом, среди всех прочих интерфейс USB 2.0 по широте применения в устройствах различного назначения стоит на первом месте. Инженеров привлекает отлаженность технологии и высокая скорость передачи данных, достаточная для подавляющего большинства практических приложений, а также развитая компонентная база. Тем не менее, в зависимости от конкретного проекта при передаче данных через USBинтерфейс могут наблюдаться те или иные ошибки, особенно при работе с высокими скоростями. Поэтому процесс проектирования таких устройств обязательно должен включать этап отладки с использованием современных средств измерений. Однако сложность сигнальных конструкций USB 2.0 и необходимость проверки соответствия сигналов целому ряду требований делает использование только осциллографии в её классическом виде не эффективным, и поэтому для анализа сигналов USB 2.0, как это показано ниже, необходимо использовать специальные опции, функционирующие на платформе современных осциллографов. Особенности физической реализации подключения устройств с интерфейсом USB 2.0
К техническим средствам, обеспечивающим функционирование интерфейса USB 2.0 в составе персонального компьютера, принято относить USB-хост, выполненный в виде программно-управляемого контроллера, а также корневой концентратор, к которому могут подключаться вспомогательные разветвители либо внешние устройства через USB-порты. Таким образом, структура USB 2.0 предполагает использование древовидной топологии (рис. 1). Назначение разветвителей состоит в электрическом согласовании подключений, коммутации пакетов, обнаружении подключения/отключения устройств.
Корневой концентратор наиболее часто встроен непосредственно в контроллер USB, который обычно является частью южного моста материнской платы компьютера и полностью обеспечивает управление процессом передачи данных. Максимальное количество уровней ветвления, не считая корневого концентратора, ограничено пятью, как это показано на рис. 1. Предельное количество подключаемых к одному хосту USB-устройств, включая разветвители, составляет 127 шт., что с избытком перекрывает стандартные потребности пользователей компьютеров. Непосредственное электрическое соединение USB-хостов запрещено. Стандарт USB 2.0 поддерживает три диапазона скоростей передачи: Low-speed (10…1500 Кбит/c), Full-speed (0,5…12 Мбит/с), High-speed (25…480 Мбит/с). Стандарт устанавливает допуски на предельные скорости передачи, которые для этих режимов составляют соответственно ±1,5; ±0,25; ±0,05%. Дуплексная передача данных обеспечивается за счет попеременного использования сигнальных линий хостом и подключаемым устройством. Предельная односторонняя скорость передачи для шины USB 2.0 составляет до 30 МБ/с и редко достигает больших значений. Физически подключение устройств по стандарту USB 2.0 реализуется на основе кабеля, включающего четыре медных проводника, два из которых служат для электропитания подключаемых устройств, и еще два — для дуплексной передачи данных, причем эти проводники объединены в витую пару с волновым сопротивлением около 90 Ом. Пятый проводник выполнен в виде сплошного либо сетчатого экрана и предназначен для защиты передаваемых в кабеле сигналов от наводимыми внешними электромагнитными полями радиопомех. Кабели USB ориентированы, т.е. имеют неодинаковые разъемы на концах. Возможность «горячего» подключения устройств обусловлена удлинением заземляющего контакта, в результате чего вначале выравниваются потенциалы заземления и только после этого подключается электропитание. Это защищает электрические цепи от переходных процессов, способных вывести из строя соединяемые устройства. Интерфейс USB 2.0 предусматривает два режима электропитания подключаемых устройств. Непосредственно после подключения устройства к USB-порту ему обеспечивается токопотребление до 100 мА, а после согласования с USB-хостом — до 500 мА при напряжении питания 5 В. Схемотехника подключения устройства USB к хосту в упрощенном виде пояснена на рис. 2. Когда к хосту ничто не подключено, обе сигнальные линии D+ и D- подтянуты резисторами 15 кОм к минусу питания. При подключении устройства одна из линий подтягивается к +3,3 В через резистор 1,5 кОм. Устройства с режимом Low Speed подтягивают линию D-, а устройства с режимами Full Speed и High Speed — D+, причем высокоскоростной режим включается после обмена пакетами- 4 визитками. Таким образом хост определяет факт подключения устройства и предельно поддерживаемый им режим передачи данных.
После подключения устройства к USB-хосту и подтяжки информационных линий D+ и D- сообразно поддерживаемому режиму передачи образуемая ими дифференциальная пара переводится в состояние Idle (отсутствие активности). У подключения есть еще два состояния, характеризующиеся отсутствием обмена данными — замыкание обоих линий на минус (SE0) и на плюс (SE1), инициируемые USB-хостом. Состояние SE0, длящееся более 10 мс, должно восприниматься устройством как команда сброса. Состояние Idle длительностью более 3 мс сообщает устройству о необходимости перехода в режим энергосбережения. Состояние SE0 используется в составе последовательности завершения пакета, как это описано ниже.
При покупке относительно дорогих приборов, таких как осциллографы, анализаторы спектра и цепей, у радиолюбителя (и у руководителя радиотехнической лаборатории тоже) периодически возникает желание сэкономить и купить вместо «полноценного» прибора USB-вариант, иногда называемый с некоторой долей уничижения «приставкой». Известно, что мнения о таких устройствах у профессионалов довольно полярны — кто-то предпочитает с ними не связываться, кто-то, наоборот, хочет полностью заменить все приборы на такие «приставки». Конечно, всем понятно, что usb-осциллограф занимает меньше места, имеет более широкую полосу частот, но имеет менее удобный интерфейс, переключаемый мышкой, при этом более развитую математику и огромный буфер, размером с винчестер настольного компьютера. Вернее, это понятно всем, кто умеет пользоваться поисковиком. А вот если Вы зайдете в соответствующую тему на радиолюбительском форуме, то все ответы будут или крайне уклончивыми в духе «ну все зависит от цены и бренда» или будут в духе «вот мне лучше подходит …., а для Вас — рещайте сами».
Попытаемся разобраться, когда же usb-прибор это плохо, а когда, наоборот, это самый оптимальный вариант, в чем не прав поисковик и почему никто не хочет четко указать сомневающемуся, какой же прибор ему лучше.
В аналого-цифровых преобразователях обоих типов устройств разницы нет — в нижнем и среднем ценовом диапазоне на этом сильно не сэкономишь, АЦП там и так ставят максимально дешевые.
Дальше возникают варианты. Можно, как и в большом осциллографе, накапливать буфер измеренных значений на месте, а в компьютер отправлять его по сигналу запуска (или триггера, как его любят сейчас называть), уровень и тип которого задан с компьютера. В этом случае работа USB-прибора никак не отличается от настольного кроме того, что экран у него находится на компьютере. Однако, если полоса пропускания достаточно узкая (до сотни мегагерц), а стоимость прибора достаточно малая, можно вместо дорогой «быстрой» памяти использовать тоже дорогой, но, все таки не настолько, «быстрый» контроллер USB и весь поток данных сразу отправлять на компьютер. При этом мы получаем определенные преимущества — процессор компьютера значительно мощнее и можно реализовать более глубокую обработку сигнала и множество различных условий для срабатывания триггера. Однако при каком-то сбое (а USB достаточно чувствительна к сбоям) теряется значительная часть информации (буфера нет, восстановить её не откуда). Максимальная скорость возможна только при условии, что осциллограф включен в порт непосредственно, нет никаких хабов (причем на некоторых ноутбуках хаб может оказаться и внутри). Программное обеспечение становится чувствительным к установленным драйверам (а иногда и к режимам контролера USB, устанавливаемых в BIOS компьютера). Все это приводит к тому, что впечатления от одного и того же экземпляра USB-осциллографа могут быть совершенно различными у двух разных людей. Нам достоверно известен случай, когда прекрасно работающий с одним кабелем осциллограф вообще отказался работать с другим.
Ну и, наконец, интерфейс пользователя. Настольным моделям он достался уже готовым, отлаженным на аналоговых динозаврах по крайней мере тремя поколениями инженеров. Программный же интерфейс каждый изготовитель делает свой, никаких стандартных наработок тут пока нет, поэтому вынужден согласится, что часто он бывает очень неудобным, особенно когда он красивый, с 3D и «крутилками», ведь работать надо одной рукой и быстро, и похожесть на стандартную панель управления тут никак не помогает.
Ну и в заключении хочу сказать — USB устройства сами по себе ничем не плохи, ведь не зря же все ведущие производители современной техники делают её по принципу PCI (а иногда и USB!) устройство + обычный компьютер + клавиатура в виде стандартных «крутилок» и «кнопок». Просто при выборе надо учитывать, что экономия тут возможна только на стоимости жк-экрана и панели управления (т.е. 3-5 тысяч) и внимательно смотреть на технические параметры и интерфейс. А удобство пользования зависит в первую очередь от способа применения. Если там, где Вы паяете или ремонтируете стоит компьютер, который одновременно не используется как сервер, или Вам надо делать измерения раз в месяц и есть возможность свободно поставить ноутбук, то мы однозначно рекомендуем USB- приборы. В противном случае настольные варианты будут удобнее.
Предлагаю вниманию уважаемой аудитории обзор осциллографа/логического анализатора Hantek6022BL.
Заинтересованных прошу под кат.
Технические характеристики
- каналов: 2
- полоса пропускания: 20 МГц
- частота дискретизации: 48 Msa/s
- объем памяти: 1Ms
- интерфейс: USB 2.0
- логических каналов: 16
- пропускная способность: 10 МГц
- объем памяти: 48Msa
- глубина памяти: 1 Ms
- размеры: 205 х 120 х35
- питание: от порта USB
- вес: 0,382 кг
Внешний вид
Внешний вид однозначно на 5. Блестящий и стильный алюминиевый корпус, пластиковые накладки, зеркальная надпись Hantek. Сразу видно, на дизайне здесь не экономят.
Вид спереди. Два BNC-разъема для щупов, разъем логического анализатора, контакты для калибровки. Всё предсказуемо.
USB, загадочная кнопка и не менее загадочный лючок с надписью USBXI, под которым прячется странный разъём.
Комплектация
В комплект входит сам осциллограф, шнур USB, два шлейфа к логическому анализатору, 20 зажимов для логического анализатора, два щупа к осциллографу в комплекте с разноцветными маркировочными колечками и отвёрточками для подстройки частотной характеристики щупа. Щупы носят название PP-80, однако имеют полосу пропускания 60 МГц, а не 80, как можно было бы подумать. Причины этому кроются, как мне кажется, в свойствах сумрачного китайского гения.
Также есть диск с ПО, малополезная в наши дни вещь.
Субъективные впечатления
На первый взгляд, превосходная вещь. Компактный, легкий прибор, в очень качественном алюминиевом корпусе (как Ipad, пишет на aliexpress продавец).
Помимо перечисленных интерфейсов, на корпусе устройства имеется кнопка с фиксацией (и это не выключатель питания, как можно было бы подумать) и разъем с маркировкой USBXI, не описанный в документации, и, вероятно, предназначенный для соединения нескольких устройств между собой. Также есть контакты встроенного калибровочного генератора.
Настала пора установить ПО и включить устройство.
Начало работы
Поиграв немного ручками чувствительности каналов и времени развёртки (здесь не придумано ничего нового), перейдем к более глубокому изучению ПО.
Развёртка
Триггер имеет единственный режим запуска: Edge (по фронту), пользователь может выбрать источник (канал 1 или канал 2 и фронт, положительный или отрицательный).
Позволю себе лирическое отступление. Когда я учился в институте, некоторые преподаватели очень не любили выражения типа «передний фронт» и «задний фронт». Фронт бывает только передним, по определению, говорили они, поэтому нужно говорить просто «фронт», а то, что называют «задним фронтом», правильно называть «спадом». В глубине души я с ними согласен, но здесь я буду употреблять словосочетания «передний фронт» и «задний фронт».
лирическое отступление>
Предусмотрен автозапуск, режим «Normal», и однократный запуск. Больше никаких «хитрых» режимов триггер не имеет.
Горизонтальная развёртка настраивается в пределах от 1 ns (совершенно бесполезный диапазон для данного прибора) до 3000 секунд. Есть режим отображения с горизонтальной развёрткой (x(t), y(t)) и с режим X-Y (удобен, например, для фигур Лиссажу).
Чувствительность каналов
Чувствительность каналов настраивается в пределах 200mV/дел до 5V/дел при коэффициенте щупа 1:1, и позволяет работать с щупами с делителями до 1:10000 (честно, никогда таких не видел, это должна быть очень высоковольтная штука).
Уровень срабатывания триггера и сдвиг по горизонтали можно менять просто мышкой, но значения этих величин нигде не отображаются. Момент срабатывание триггера не привязан ни к каким делениям на осциллогамме, ни к центру экрана, ни к чему вообще.
Канал «математики»
Отображается в виде третьей осциллограммы и может отображать сумму, разность, произведение и частное значений сигнала в каналах A и B, а также спектр (FFT). Для FFT можно выбрать тип окна: прямоугольное, Хэмминг, Хэннинг, Блэкман. Можно выбрать линейную или логарифмическую шкалу амплитуд.
«Ref» канал
На самом деле это не какой-то особый канал, это просто отображение на экране ранее сохранённого сигнала рядом с текущими, например, для сравнения.
Режим измерений
«Горизонтальные» измерения
Измеряется период и частота сигнала, время нарастания и спада сигнала, ширина импульса и ширина промежутка между импульсами в единицах времени и в процентах к полному периоду.
«Вертикальные» измерения
Максимальное и минимальное значение сигнала, напряжение «от пика до пика», напряжение «вершины» и «основания» импульса, среднее значение, среднеквадратичное значение, положительный и отрицательный выброс в процентах.
Режим курсорных измерений
Пожалуй, единственный режим, который в «виртуальном» осциллографе удобнее чем в «настоящем». Просто выделяем мышкой прямоугольник на экране и видим deltaT и deltaV. Курсорных режимов три: вертикальный, горизонтальный и “cross”, то есть и тот, и другой сразу. Зачем при этом нужны первые два, непонятно.
Автоустановка
«Волшебная» кнопка, которая настраивает оптимальный (по мнению программы) режим отображения.
Интерполяция
В силу дискретной природы измерений, отображаемые данные могут быть интерполированы следующим образом: «ступенчатый» режим, то есть отсутствие интерполяции, «линейный» режим и интерполяция вида sin(x)/x, которая, теоретически, должна быть наиболее точной. К сожалению, эффекта от её включения увидеть так и не удалось.
Настройки отображения
Отображение векторами или точками, отображение координатной сетки, яркость осциллогамм и сеток, ничего необычного.
Сохранение данных
Осциллограммы можно сохранять в разных форматах: txt, xls, doc и bmp. Первые три представляю собой просто значения отсчётов в текстовом виде, последний является скриншотом осциллограмм. Еще есть ref-формат, предназначенный для работы с ref-каналом.
На картинке выше показан интерфейс программы с двумя сигналами по входам А и В, с каналом математики, в который выводится FFT, с курсорами и с включенным режимом измерений.
В целом, осциллограф как осциллограф, только простейшие функции, но работают нормально. Можно было сделать лучше. Оценка 4.
Логический анализатор
Логический анализатор отображается в отдельном окне.
Мы видим 16 сигналов и … всё. Никаких настроек, никаких условий запуска, ничего вообще. Запуск захвата сигналов производится вручную кнопкой. Впрочем, одна настройка есть, SampleRate можно выбрать в пределах от 100 kSa/s до 48 kSa/s. Захват сигналов происходит до заполнения памяти (1M сэмплов).
Логический анализатор никак не связан с осциллографом, не может ни запускаться от его триггера, ни запускать его триггер, не может запускаться ни по фронту какого-либо логического сигнала, ни, тем более, ни по более сложным событиям и условиям.
Интерфейс анализатора после захвата сигналов начинает безбожно тормозить.
Те, кто работал с настоящими анализаторами, заплачут горючими слезами.
В общем, за анализатор оценка 2 с плюсом (всё-таки хоть что-то работает). Может быть, есть некоторая надежда, что логический анализатор будет работать лучше в следующей версии ПО.
Альтернативное ПО
Ничего хорошего в этом плане пока нет. Есть альтернативное ПО для DSO-6022BE, но оно не заработало с этой моделью. К тому же оно практически ничем не отличается от родного, кроме небольших изменений в дизайне GUI.
Есть ПО для приборов Hantek под Linux, но оно вообще не поддерживает линейку DSO-6000.
Драйвера
Windows 7 автоматически ничего не нашла, конечно же, пришлось ей указывать папку с драйверами вручную.
Загадочная кнопка и разъём на задней панели
Насколько можно понять из руководства, эта кнопка предназначена для вызова ПО. Однако она этой функции не выполняет, и является на данный момент просто кнопкой-для-красоты. То же самое можно сказать и о разъеме USBXI. Даже если он и предназначен для объединения нескольких приборов в один, то ни кабеля, ни каких-либо следов поддержки этой функции в ПО найти не удалось.
Общая оценка
Это, конечно, игрушка. Если использование осциллографа является вашим повседневным делом, то лучше купить нормальный осциллограф, без приставки «USB». Даже недорогой осциллограф имеет гораздо больше возможностей и функций. Не говоря уже об логическом анализаторе.
Однако, если осциллограф вам нужен редко, или если у вас очень ограничен бюджет, то работать с этой моделью можно.
Производитель выложил SDK, что может открывать некие нетривиальные возможности использования прибора, например, в автоматизированных измерительных комплексах. Но SDK я пока не смотрел.
Гикпорн
Что же у него внутри?
Снимаем пластиковые накладки и отвинчиваем переднюю и заднюю крышки. Теперь можно вынуть плату.
Фото платы
Что есть что на этой плате? Я обозначил цифрами все микросхемы. Давайте посмотрим, что есть что.
Всё сделано предельно просто и минималистично, но аккуратно. Даже слишком просто, я надеялся увидеть хоть какую-нибудь ПЛИС. Аналоговый фронтенд имеет большой запас по частоте, это очень хорошо. Во «взрослых» осциллографах часто используется одно и то же железо для целого модельного ряда, а полоса частот у младших моделей обрезается программно, из маркетинговых соображений. Зная необходимый танец с бубном, можно получить из младшей модели старшую, использующую возможности железа на все 100%.
Но в данном случае старшие модели из этой же линейки имеют частоту дискретизации 150 и 250 МГц, то есть, как минимум другой АЦП.
Цена на момент покупки: 3866 рублей (на aliexpress). Цена на официальном российском сайте hantek 4400 рублей, например.
Стоит ли он этих денег, решать вам. На мой взгляд, если прибор приобретается для несложных задач (поиграться с ардуиной, например), то вряд ли вы найдёте что-то дешевле со сравнимыми параметрами. А для серъёзной работы рекомендую всё же потратиться на портативный настольный осциллограф.
На этом пока всё. Просьба о замеченных неточностях и ошибках сообщать в личку.
Как я уже неоднократно упоминал в своих публикациях, любительские проекты финансируются из семейного бюджета, и радиолюбитель, обычно, не может себе позволить покупку дорогостоящего измерительного оборудования. Приходится довольствоваться тем, что есть. Или тем, что удаётся взять попользоваться «на время». А иногда от безысходности радиолюбителю приходится «сверлить пилой и пилить буравчиком».
Недавно я испытал потребность выяснить, что на самом деле передаётся в разрабатываемом мной устройстве по шине I2C. Это был тот счастливый момент, когда можно было себе позволить «пилить пилой».
Как происходит обмен данными между устройствами по протоколу I2C можно узнать здесь. Для анализа сигналов на шине I2C можно применить, как цифровой двухканальный осциллограф с памятью, так и логический анализатор.
При работе с радиоэлектронной аппаратурой осциллограф является наиболее универсальным инструментом. Современные цифровые осциллографы обладают рядом полезных свойств, позволяющих производить, в том числе, и анализ сигналов шины I2C.
В данном случае мне достался «на время» цифровой двухканальный осциллограф с памятью Rigol DS1102 (цена на сайте производителя $461). У этого прибора есть два канала измерения с полосой пропускания до 100 MHz и частотой выборки сигнала 1 GSa/s.
К сигналу SCL был подключен CH1. К сигналу SDA был подключен CH2. Для обоих каналов был установлен масштаб 1.00 V/дел. Масштаб развёртки – 10 us/дел. Для наглядности луч первого канала смещён в верхнюю половину экрана, а луч второго канала – в нижнюю.
В меню Trigger осциллограф был настроен на однократное измерение с запуском по достижению передним фронтом в канале CH1 уровня 1.00 V:
После включения тестируемого оборудования была нажата большая красная кнопка Run/Stop. Осциллограф встал в режим ожидания, затем запустился. Через несколько секунд запись была остановлена вручную.
Полученная осциллограмма записывалась на внешний носитель поэкранно:
Произведём разбор записанных сигналов. На первом экране мы видим отображение настроек прибора и осциллограмму сигналов SCL (верхняя часть) и SDA (нижняя часть экрана), на которой читаем слева направо:
- сигнал START: ведущее устройство выставляет низкий уровень сначала на шине SDA, а затем на шине SCL;
- 7-bit адрес: читаем 0x60 (1100000) на шине SDA по передним фронтам SCL;
- признак режима записи: читаем на шине SDA низкий уровень по следующему переднему фронту SCL;
- сигнал ACK: ведущее устройство после передачи байта переключается на приём по шине SDA, на SDA устанавливается высокий уровень, ведомое устройство по заднему фронту SCL выставляет на SDA низкий уровень (собственно, сигнал ACK), который ведущее устройство считывает по переднему фронту SCL;
- сигнал STOP: ведущее устройство выставляет высокий уровень сначала на шине SCL, а затем на шине SDA
Дешифрацию протокола можно произвести более простым методом, используя логический анализатор и соответствующее программное обеспечение.
Для использования в качестве логического анализатора мне был любезно предоставлен коллегами Saleae Logic 8 (цена на сайте производителя $399). В качестве программного обеспечения использовалась демо-версия Saleae Logic 1.2.18, взятая с официального сайта. Устанавливая данное программное обеспечение, я принял лицензионное соглашение с условием, в том числе, не использовать данное программное обеспечение с оборудованием сторонних производителей.
В программе был включен анализатор протокола I2C. Для сигнала SCL был назначен канал CH0, а для сигнала SDA – канал CH1. Частота выборки сигнала 24 MSa/s.
Запуск был настроен по «переднему» фронту CH0. Для отображения данных был выбран шестнадцатеричный формат.
После включения тестируемого оборудования была нажата большая зелёная кнопка Start, и через несколько секунд на экран вывелась диаграмма:
Максимум пользы в применении логического анализатора я вижу в том, что программа сама дешифрует полученные данные. Результаты дешифровки заносятся построчно в окно Decoded Protocols. При выборе в окне строки данных, программа показывает расположение этих данных на диаграмме.
Для сравнения вариантов я «склеил» в графическом редакторе четыре снимка экрана осциллографа и фрагмент диаграммы логического анализатора:
Start обозначен зеленым кружочком, Stop – красным кружочком. На диаграмме сначала происходит проверка наличия на шине устройства с адресом 0x60, а затем производится запись в регистр 0xB7 этого устройства значения 0x80.
Если подходить к сравнению вариантов «с пристрастием», то можно заметить, что на диаграмме логического анализатора (частота выборки 24 MSa/s) присутствует «джиттер» сигнала SCL, которого нет, как такового, на осциллограмме с частотой выборки 1 GSa/s. В остальном картина совпадает, а логическим анализатором ещё и производится правильная дешифрация данных в автоматическом режиме.
При выборе «или-или» в «сухом остатке» имеем, в случае осциллографа, дорогое универсальное устройство, не такое удобное для анализа шины, как логический анализатор, но за сопоставимые с ним деньги. В этих условиях лично я, как инженер «старой закалки», приобрёл бы цифровой осциллограф.
Однако, если бы существовало программное обеспечение с лицензионным соглашением, позволяющим использование недорогих клонов популярных логических анализаторов, типа Saleae Logic 8 или DSLogic Plus…
Недорогие клоны популярных логических анализаторов, и не только их, поддерживает программное обеспечение open source проекта sigrok.
Было собрано рабочее место:
После чего начались «танцы с бубном». На Windows 10 запустилась только 32-разрядная версия PulseView. Наличие в системе недорогого китайского клона Saleae Logic (цена на сайте продавца $7) она не определила.
После этого, в Zadig для устройства Logic были установлены драйверы WinUSB, и после повторного сканирования оно определилось в Zadig, как устройство fx2latw:
После этого для устройства fx2latw в Zadig снова были установлены драйверы WinUSB, и только после этого PulseView увидела в списке устройство «Saleae Logic». Устройство было подключено.
После подключения устройства были произведены следующие настройки программы (слева направо по панели инструментов, начиная с надписи «Saleae Logic»):
- выставлено Pre-trigger capture ratio = 2% по нажатию кнопки с ключом и отвёрткой;
- отключены лишние входы по нажатию кнопки с красным щупом;
- выставлен объем записи 100 К выборок;
- выставлена частота выборки 24 MHz;
- включен анализатор протокола I2C по нажатию кнопки с жёлто-зелёным значком.
- каналам присвоены соответствующие сигналам текстовые метки;
- условием запуска назначен задний фронт сигнала SDA;
- сигналам I2C назначены соответствующие каналы.
Похоже, «танцы с бубном» того стоили!
UPD: После ручной установки в Диспетчере устройств для устройства USB Logic драйвера libusb-win32 программа PulseView начала стабильно определять наличие в системе «Saleae Logic» без манипуляций с Zadig.
Краткие выводы:
В статье была описана методика проведения анализа сигналов шины I2C с помощью цифрового осциллографа с памятью и логических анализаторов с пакетами прикладного программного обеспечения.
Универсальным методом анализа сигналов, но недешёвым и небыстрым, является применение цифрового осциллографа с памятью.
Быстрым и бюджетным методом анализа сигналов, но с нетривиальной задачей подключения оборудования, является применение недорогого клона логического анализатора в связке с PulseView.
Буду рад, если своей публикацией помог сэкономить читателям время и деньги.
В следующей публикации расскажу, как измерял частоту, на которой запустился кварцевый резонатор в синтезаторе частоты, без частотомера. Но это уже другая история…
Читайте также: