Проверка usb порта осциллографом

Обновлено: 07.07.2024

В статье рассмотрены особенности функционирования интерфейса 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 используется в составе последовательности завершения пакета, как это описано ниже.


Вот потребовался мне автомобильный осциллограф, посмотрел цены, удивился… Цены как на крыло самолета. Кстати, не понятно почему, ведь параметры осциллографа для тестирования авто крайне низки, как по частотам так и по напряжению. По сему решил сам себе сделать.

1. Вид осциллографа – USB приставка к ноутбуку, ибо на большом экране смотреть удобно, можно сохранять для последующего анализа ну и т.д. и т.п.
2. Тип сигнала – Переменный, Постоянный, Положительная полярность. Работа с отрицательными напряжениями не нужна.
3. Кол-во каналов – 4, больше смысла не вижу, но с возможностью расширения до 8.
4. Максимальное входное напряжение — вольт 50, выше смысла нет.
5. Чувствительность — 1 милливольт, больше тоже не надо :-)
6. Частота — до 20Кгц, для миллисекундных сигналов за глаза хватит, а других там нет :-)
7. Удобная программная оболочка.

Начну с самого важного – Оболочки для автомобильного осциллографа. Да да, именно с оболочки. Ибо железо не сложно любое сделать, а вот удобная оболочка это реальный дефицит. Оболочки которые просто тупо показывают сигнал в реальном времени для автомобильного осциллографа крайне не удобны, ибо часто нужно анализировать сигнал продолжительное время и иметь возможность «отмотать» назад. По сему нужна оболочка типа Самописец-Осциллограф. И что б каналов было не менее 4х…

Вот она какая, на мой взгляд, самая лучшая. Это не реклама, это факт :-) ИМХО конечно.


Ну вот, с софтом определился, теперь надо определится с интерфейсом, не буду грузить вас своими муками выбора, я остановился на СОМ порте. С ним работать просто, пропускной способности для поставленных задач с избытком, в выбранном софте есть драйвер вывода информации с СОМ пора.

Теперь железо, а точнее что использовать в роли АЦП. Железо должно быть доступное, стабильное, не дорогое и легко программироваться. Долго не думал, остановился на микроконтроллере АТмега 328р. Программируются эти микроконтроллеры банально на С++, точнее на упрощенном С++.
Очень удобно то что этот микроконтроллер можно купить уже распаянным на плате с минимально нужной обвязкой., Ардуино сее называется :-) То есть не надо самому плату разводить и паять, удобно. Всем параметрам, из моего ТЗ, АТмега 328р отвечает полностью, по сему использовать буду ее.

Для миниатюризации я вот такую взял. Она имеет 8 аналоговых входов, отвечающих всем требованиям ТЗ, имеет на борту эмулятор СОМ порта на СН340, питание берет напрямую с USB порта. В общем то что нужно. Ардуинку можно любую использовать на 328р


Вот схема этой платы. На ней стоит сам микроконтроллер АТмега 328р, банальный эмулятор СОМ порта на СН340, кварц и стабилизатор питания на ЛМке для запитки от внешнего источника, если надо, вот и все, ну пара лампочек и фильтров не в счет :-) То есть все то что нам нужно и ничего лишнего! Не зря говорят — Совершенство в простоте.


Теперь надо написать программку для микроконтроллера. Нам нужно что б постоянно опрашивался аналоговый вход и данные о величине напряжения постоянно, онлайн так сказать, шли в СОМ порт. Если каналов несколько, то опрашиваются по кругу все нужные входы и данные идут на СОМ порт с разделителем табуляция. Вот так все просто.

Вот скриншот того что должен выдавать микроконтроллер в СОМ порт для нашей программы PowerGraph.


Осциллограф у меня будет работать в 4х режимах — 1канал, 2канала, 3канала и 4 канала.
Переключение между каналами будет осуществляться по кругу нажатием на кнопку.
При включении канала будет загораться светодиод индикации работы канала.
Вот написал программку. Сам я не программист, по сему написал как смог, сильно не критикуйте, расстроюсь :-) Программа полностью рабочая и проверена не однократно в деле. Как заливать программу в плату рассказывать не буду, в инете на каждом углу это с картинками рассказано :-)

Вот сама программа.

int regim=1;
int flag=0;
void setup()
digitalWrite(07, HIGH);
Serial.begin(128000);//скорость СОМ порта должна совпатать со скорость в драйвере
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
>
void loop()
if(digitalRead(07)==HIGH&&flag==0)//если кнопка нажата
// и перемення flag равна 0, то …
regim++;
flag=1;
if(regim>4)//ограничим количество режимов
regim=1;//так как мы используем только одну кнопку,
// то переключать режимы будем циклично
>
>
if(digitalRead(07)==LOW&&flag==1)//если кнопка НЕ нажата
//и переменная flag равна — 1, то …
flag=0;//обнуляем переменную "knopka"
>
if(regim==1)//первый режим
digitalWrite(2, HIGH);//включение светодиода
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
// читаем аналоговый вход pin 0:
int port0 = analogRead(A0);
//Преобразовываем аналоговые показания (которые идут от 0 до 1023) в напряжение (0 — 5 В)
float voltageport0 = port0 * (4.745 / 1023.000);//4.745 опорное напряжение, замеряется при калибровке на плате
// выводим значение напряжения в порт
Serial.println(voltageport0,3);// печатаем значение в порт и жмем энтер
//задержка для стабильности
delay(1);
>
if(regim==2)//второй режим
digitalWrite(2, HIGH);//включение светодиодов
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
int port0 = analogRead(A0);
int port1 = analogRead(A1);
float voltageport0 = port0 * (4.745 / 1023.000);
float voltageport1 = port1 * (4.745 / 1023.000);
Serial.print(voltageport0,3);// печатаем значение в порт
Serial.print(" ");// печатаем таб
Serial.println(voltageport1,3);// печатаем значение в порт и жмем энтер
delay(1);
>
if(regim==3)//Третий режим
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
int port0 = analogRead(A0);
int port1 = analogRead(A1);
int port2 = analogRead(A2);
float voltageport0 = port0 * (4.745 / 1023.000);
float voltageport1 = port1 * (4.745 / 1023.000);
float voltageport2 = port2 * (4.745 / 1023.000);
Serial.print(voltageport0,3);
Serial.print(" ");
Serial.print(voltageport1,3);
Serial.print(" ");
Serial.println(voltageport2,3);
delay(1);
>
if(regim==4)//Четвертый режим
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
int port0 = analogRead(A0);
int port1 = analogRead(A1);
int port2 = analogRead(A2);
int port3 = analogRead(A3);
float voltageport0 = port0 * (4.745 / 1023.000);
float voltageport1 = port1 * (4.745 / 1023.000);
float voltageport2 = port2 * (4.745 / 1023.000);
float voltageport3 = port3 * (4.745 / 1023.000);
Serial.print(voltageport0,3);
Serial.print(" ");
Serial.print(voltageport1,3);
Serial.print(" ");
Serial.print(voltageport2,3);
Serial.print(" ");
Serial.println(voltageport3,3);
delay(1);
>
>

Программа закончена и отлажена.
Приступим к электронной части.

Схему приводил выше. Из нее видно что плата имеет 8 аналоговых входов, 14 цифровых входов/выходов. Вот и будем работать с ними.


Аналоговые № 0,1, 2, 3 будем использовать как входы осциллографа. Сделаем для них защиту и дополнительный вход через делитель 1х10, так как подавать на микроконтроллер максимум можно всего 5.2 вольта. С делителем можно будет работать с напряжениями до 50 вольт, что полностью перекрывает наши потребности.
Цифровые № 2,3,4,5 будем использовать для светодиодов, они будут индицировать включенные аналоговые входы.
Цифровой №7 будет подключен к кнопке которая будет переключать режимы моего осциллографа.
Еще будет кнопка Бут режима. Плата по умолчанию в бут режиме, но для работы это не удобно, ибо управление идет через RESET. При обращении к СОМ порту идет инициализация СОМ порта и чип эмулятор посылает резет на микроконтроллер. То есть при запуске программы плата ребутится и сбрасывает настройки которые выставили кнопкой, это не удобно. Для того что бы этого безобразия не было, я сее отключаю с помощью кнопки. Она подключает вход микроконтроллера «RESET» к электролитическому конденсатору 10Мкф, конденсатор сглаживает посылку на перезагрузку. Эта же цепь используется при заливке прошивки, по сему на момент программирования надо конденсатор отключать. Назвал эту кнопку Бут кнопкой :-)

Ну вот, как подключать понятно, осталось воплотить в железе.

Начнем с защиты и делителя.
Защиту будет обеспечивать стабилитрон на 5.1в. А делитель будет обычный на резисторах.
Так как сигналы у нас будут низкочастотные, это сильно упрощает жизнь. В расчетах делителя не надо учитывать внутреннее сопротивление приемника, не надо согласовывать вход с делителем, не надо учитывать волновое сопротивление кабеля и разъемов.
Надо просто посмотреть в даташите на микроконтроллер на какое сопротивление выхода оптимизирован его АЦП, и сделать делитель с таким выходным сопротивлением. Так мы добьемся максимальной точности в 0.005 вольта. В даташите написано что он оптимизирован под 10Ком выходного сопротивления нагрузки. Внутреннее сопротивление АЦП 100Мом…


Вот такую схему я посчитал. R1 и R2 собственно сам делитель, R2 еще задает сопротивление выхода делителя, я его взял 10Ком, так как ЦАП оптимизирован именно на такое сопротивление. R3 и VD1 это защита от перенапряжения. На вход АЦП нельзя подавать больше 5.2в. VD1 стабилитрон на 5.1в, можно использовать любой. R3 токоограничивающий резистор, ограничивает ток стабилитрона когда он открывается. Вот такой простой делитель с защитой.


Вот так все просто :-)


Ну раз схему разработали то настала пора воплотить это все в «железе».

Берем какой либо корпус, разъемчики, кнопку, переключатель, резисторы диоды, стабилитроны и начинаем из этого всего создавать автомобильный осциллограф.

Вот такой набор деталей у меня.


Для начала подготовим корпус. Просверлим все отверстия.


Далее, навесным монтажом, смонтируем делители прямо на блоке разъемов.
Вот так, просто – надежно — удобно.


Теперь примерим плату, проведем формовку выводов делителя и на них напаяем плату.
Вот так вот. Выходит очень удобно и компактно.


Смонтируем в корпус светодиоды, кнопку, переключатель и конденсатор. Вот так. Длинна проводов достаточная но не избыточная.


Почти все готово, осталось впаять плату в корпус.


Привинтить блок разъемов в корпус. Взять синюю изоленту, без нее ни как! Сделать ограничитель для УСБ провода.


Теперь можно закрыть корпус, залить прошивку и проверить работу. У меня все ОК.


Вот и все, мой автомобильный осциллограф готов.
Им можно смотреть-диагностировать расходомер(МАФ), генератор, катушки, датчики положения колена и распредвалов. Смотреть правильность установки ГРМ, Смотреть форсунки, по пульсации топлива в рампе можно косвенно смотреть работу насоса и регулятора давления топлива… В общем полезный зверек в хозяйстве. Особенно он полезен когда какое либо устройство отказало не полностью, а ушло от параметров и мозг не видит этого.


Пора приступать к испытанием на авто.
Все отлично и очень удобно. Как и планировал :-)


Тему датчиков в этом посте не затрагиваю, ибо очень она объемная. Но все датчики легко самому изготовить и емкостные и индуктивные и контактные… Может отдельно напишу об них…


Вот так просто можно сделать себе качественный автомобильный осциллограф.
На этом все, ни гвоздя вам ни жезла :-)

В комментариях под их видео, один из зрителей сказал, что можно без проблем сделать нечто подобное из обычного свистка для прошивки STM,

Немного об АСЦ (Тестер USB) Асц, Тестер, USB, Видео, Длиннопост

который в Китае стоит 200 рублей,

Немного об АСЦ (Тестер USB) Асц, Тестер, USB, Видео, Длиннопост

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

Вот видео того человека, в котором он повторил девайс на свистке от стм, причем не спустя год, а в тот же день, что выпустила видео АСЦ.

Повторил без проверки на кз, но этапы инициализации показывает, а проверку на кз и разницу в сопротивлении шин данных, добавить туда не сильно сложно, опишу этот процесс немного позже.

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

1. Размеры платы не должны мешать втыкать оборудование в соседние порты USB

2. Должен быть аккумулятор, чтобы можно было проводить диагностику на обесточенных устройствах (касаемо проверки на КЗ и разность сопротивлений дата линий)

2а. Этот аккумулятор должен заряжаться при подключении к запитанному порту USB

3. При подключении к порту USB, у которого нет питания, происходит проверка сопротивлений шин данных, результаты выводятся либо на светодиод, последовательностью миганий, либо их ускорением, либо на oled Экранчик, тут как творец захочет :)

4. При подключении к порту USB, у которого есть питание +5v, устройство переключается в режим проверки прохождения инициализации, и одновременно заряжает встроенный аккумулятор, таким образом мы убираем сложность в определении сопротивлений работающих дата линий, в прочем, USB тестер от АСЦ, видимо сделан по той же схеме, так как в видео именно так и было показано, сначала в мертвый бук воткнули, потом в живой. С другой стороны, эта сложность и не нужна, я не встречал буков, которые подают питание на USB порты в выключенном состоянии по причине излишнего разряда аккумулятора.

5. Проверка на прохождение инициализации происходит путем эмуляции клавиатуры, а точнее нажатия кнопки CapsLock, и последующей проверки статуса CapsLock, включен или нет, если эти состояния меняются, значит инициализация пройдена и устройство включилось. В видео АСЦ, кстати, об этом умолчали, но преподнесли как фичу, что при подключении к рабочему компьютеру, в отличии от тестера от nbzip, который каким-то образом влияет на мышку, прерывая частично ее работу, с подключенным тестером от АСЦ компьютером можно спокойно пользовать и заряжать его от порта USB, только вот мигающий капс лок, даст вам печатать в тАкОм СтИле, что как бы не удобно? Хотя фича, почему бы и нет :D

Как видим, исходя из ТЗ, понятно что подобное устройство не может стоить 3500 рублей, с учётом заказа плат с монтажем с JLC PCB и использования корпуса в виде термоусадки, как в оригинале от АСЦ. Год разработки нууу, если изначально выучить язык, потом понять как работает схемотехника, и засчитывать это время, то да. Ну и еще накосячить с тз изначально, сделать 4-5 ревизий, которые по некоторым параметрам не подходят и т.д. но должно ли финальное устройство включать эту стоимость? На примере человека, который повторил часть функционала за несколько часов, можно сказать, что год разработки это много.

Еще хочу добавить, что 3500 для рабочего устройства, помогающего в работе не цена, у меня жало для паяльника столько стоит, и уж точно не мне рассуждать о стоимости устройства, если оно действительно того стоит.

Продолжим повествование: Через некоторое время, АСЦ написал комментарий под видео этого человека, примерно следующего характера —

Все хорошо, вы молодец, но чем больше подобных людей будут повторять наши самоделки, которые вышли в продажу, тем меньше мы их будем делать…

Под этим комментарием, я им сказал, что самоделки нужно делать такого уровня, который нельзя повторить за час, — допустим программатор Вертьянова, либо продавать по той цене, чтобы остальным не было смысла их повторять, в этом случае, я считаю что это 1500 рублей, с учетом заказа с JLC PCB где 5 плат размера 100 на 100мм, в которые можно включить минимум 8 таких тестеров, а это порядка 40 готовых печаток, обойдутся в 8 долларов + 8 долларов доставка ( но доставка не сильно дорожает при увеличении партии).

Асц пишет мне ответ

Немного об АСЦ (Тестер USB) Асц, Тестер, USB, Видео, Длиннопост

Пользователь Ассоциация Сервисных Центров оставил комментарий: "Мне пох, на обиды и прочее. Тестеров продано уже много и остался последний остаток в 300 штук. Тестер это измерительный прибор, рабочий инструмент и не может стоить как доширак. Не нравится, не пок. " 14 минут назад

Доширак по 1500 рублей, ну да, курс доллара и т.п., измерительный прибор, в чем его сложность? В чем проблема сделать эти замеры, чем он отличается от других подобных устройств? После чего удалят всю ветку комментариев, что мне конечно не понравилось, столько печатал XD

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

В связи с этим буду освещать развитие проекта от KARMA ELECTRONICS, и как только допилит проверку на кз в этом свистке за 200 рублей, выложу у себя на странице, а пока можете повторить его тестер инициализации, ссылки на видео выше, в его описании ссылка на архив с прошивкой.

При настройке собранных электронных схем, особенно цифровых, необходимо бывает проводить различные измерения. Для этого можно пользоваться различными пробниками, например логическим пробником, самым простым, состоящим из светодиода, токоограничительного резистора, и проводков оканчивающихся с одного конца щупом, а с другого крокодилом. С его помощью мы можем убедиться, присутствует ли у нас логическая единица, или ноль, например на ножке МК, или выводе Ардуино. Я же решил пойти дальше, собрать то, что думаю заинтересует простотой сборки многих новичков, позволит получить полезные знаний из теории, посмотреть на форму сигнала, например, как это выглядит при мигании того же светодиода, и конечно же им можно будет проверить наличие логического ноля или единицы, на ножке МК. В общем, решил собрать простейший осциллографический пробник, с подключением к компьютеру по USB порту.

Фото usb осциллографа-пробника

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

Схема usb осциллографа-пробника

Схема usb осциллографа-пробника

Я сознательно не называю его чисто осциллографом, потому что он не дотягивает до этого звания. Давайте разберем подробнее, что же он представляет из себя. Бюджет устройства составляет всего 250, максимум 300 рублей, и его сборку может позволить себе любой школьник или студент. Как наглядного пособия, для отработки навыков пайки, прошивания МК, в общем, для отработки всех навыков, необходимых для самостоятельного конструирования цифровых устройств. Если кто-то сразу загорелся и собрался немедленно бежать в магазин, за покупкой радиодеталей, подождите, у этого осциллографического пробника, есть несколько существенных минусов. У него очень неудобный софт, оболочка, в которой собственно мы и будем наблюдать наш сигнал. На следующем фото показано, как я ловлю момеху от пальца:

Работа usb осциллографа-пробника

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

Проверка usb осциллографа-пробника

Начнем с того, что показания у нас выводятся в милливольтах, и шкалы по напряжению, соответствующей реальным значениям, попросту нет. Но и это еще не все. Схема устройства, как мы можем увидеть, посмотрев на рисунок со схемой, основана на МК Tiny 45.


В данном устройстве не применяется внешний быстродействующий АЦП, и это её существенный недостаток. Это означает, что при измерении сигнала с частотой, на которую наш пробник - осциллограф не рассчитан, мы получим на экране, просто прямую линию… Недавно мне потребовалось провести ремонт пульта дистанционного управления, диагностика показала, что и питание приходит, и дорожки все целые, и контакты на плате, вместе с резиновыми кнопками почищены, все безрезультатно, пульт не подавал признаков жизни. На местном радиофоруме, мне предложили заменить керамический резонатор, на котором кстати не было ни трещин, ни каких других внешних признаков, по которым можно было бы решить, что деталь неисправна. Решил послушать совета, сходил в магазин и купил новый керамический резонатор на 455 кГц, стоимостью всего 5 рублей, перепаял его, и пульт сразу “ожил”.

USB ПРОБНИК-ОСЦИЛЛОГРАФ самодельный

USB ПРОБНИК-ОСЦИЛЛОГРАФ - плата

тест сигнал с мультивибратора


В данной схеме Pin 1 Reset не используется как Pin, поэтому нам изменять этот фьюз-бит не обязательно. Но на одном из форумов, для более стабильной работы осциллографа – пробника, рекомендовали притянуть Pin Reset через резистор 10 килоОм к плюсу питания, что я и сделал. Также, когда искал информацию по нему, ни на одном из сайтов я не нашел понятного и доступного объяснения, насчет источника тактирования МК Tiny 45. Так вот, в этой схеме МК тактируется не от внутреннего RC – генератора, не от кварцевого резонатора, а от внешнего тактового сигнала, подаваемого на МК от USB порта. Логично предположить, что выбрав этот источник тактирования, МК перестанет у нас быть виден, в оболочке для прошивания, при отключении от USB порта, поэтому сначала залейте прошивку, а затем внимательно выставляйте фьюз биты.


Давайте разберем схему осциллографа более подробно, на сигнальных линиях USB порта D+ и D-, установлены согласующие резисторы на 68 Ом. Изменять их номинал не рекомендую. Между сигнальными жилами и землей, рекомендовано для снижения помех, установить керамические конденсаторы на 100 наноФарад. Такой же конденсатор на 100 наноФарад, нужно установить параллельно электролитическому, на 47 микроФарад, установленному по цепям питания +5 вольт и земля. Между землей и сигнальными линиями, должны быть установлены стабилитроны на 3.6 Вольта. Я правда поставил на 3.3 вольта, все работает нормально. Предусмотрена индикация включения на светодиоде, включенном последовательно с резистором 220-470 Ом.


Номинал в данном случае не критичен, и от него зависит только яркость свечения светодиода. Я установил на 330 Ом, яркость свечения достаточная. В схеме установлен резистор номинала 1.5-2.2 килоОма, для определения устройства операционной системой.

Распиновка USB разъема

Подпаивайте провода USB кабеля к плате ориентируясь по распиновке кабеля, а не по расположению на схеме осциллографа. На схеме очередность следования жил указана произвольно. Также из несущественных недостатков, по отзывам пользовавшихся, после перезагрузки Windows, нам потребуется переткнуть осциллограф заново в USB порт. Не забудьте снять фьюз - бит делитель тактовой частоты на 8 CKDIV 8. Данный осциллограф не требует для своей работы, каких-то сторонних драйверов, и определяется как Hid устройство, аналогично мышке или клавиатуре. При первом подключении, устройство определится как Easylogger. На следующем рисунке, приведен список необходимых для сборки деталей.

 список деталей для самодельного USB осциллографа - пробника

Существует 6 версий программы Usbscope, оболочки, в которой собственно мы и наблюдаем график. Первые три версии не поддерживают 64-битные операционные системы Windows. Начиная с четвертой версии Usbscope, поддержка обеспечена. Для работы программы на компьютер должен быть установлен Netframework. На сайте автора были выложены исходники прошивки, и исходники программы-оболочки, так что возможно найдутся умельцы, которые смогут дополнить софт. Какое-же практическое использование данного осциллографа, неужели только как игрушка? Нет, данный прибор используется в автоделе домашними умельцами, как бюджетная замена дорогому осциллографу, для настройки автомобильных систем зажигания, расхода топлива и подобных нужд.


Видимо частота работы в автоделе достаточно низкая, и данного пробника минимально хватает, хотя бы для разовых работ. Для подключения к измеряемой схеме спаял два щупа, использовав для этого, с целью снизить уровень помех, экранированный провод, тюльпаны или разъем RCA. Это обеспечивает легкое подключение и отсоединение щупов от осциллографа.

подключение и отсоединение щупов от осциллографа

  1. Один из проводов – щупов осциллографа, оканчивается для измерения щупом от мультиметра для сигнальной жилы, и крокодилом для подключения к земле.
  2. Второй щуп оканчивается крокодилами разных цветов, и для сигнальной жилы и для земли.

Вывод: сборка данного пробника, целесообразна, скорее как наглядное пособие, для изучения формы низкочастотных сигналов. Для практических целей, например для проверки и настройки импульсных блоков питания, в частности работы ШИМ контроллеров, данный пробник не годится однозначно, так как не может обеспечить необходимого быстродействия. Поэтому не может являться заменой, даже самому простому советскому осциллографу, и даже простым осциллографам с Али экспресс.

Форум по обсуждению материала USB ПРОБНИК-ОСЦИЛЛОГРАФ


Схема усилителя и микрофона из пьезоэлемента, подходящая для сборки своими руками.


Как правильно выбрать резистор для LED, а также способы питания светодиодов.


Микроконтроллер ATtiny13 и MOSFet транзисторы будут управлять светодиодными лентами в этой схеме ЦМУ.


Несколько методов точного измерения емкости конденсаторов. Теория и практика.

Читайте также: