Подключение осциллографа к компьютеру
В наше время использование различных измерительных устройств, построенных на базе взаимодействия с персональным компьютером, достаточно много. Значительным преимуществом их использования является возможность сохранения полученных значений достаточно большого объема в памяти устройства, с последующим их анализом.
Цифровой USB осциллограф из компьютера, описание которого мы приводим в данной статье, является одним из вариантов подобных измерительных инструментов радиолюбителя. Его можно применить в качестве осциллографа и устройства записывающего электрические сигналы в оперативную память и на жесткий диск компьютера.
Схема не сложная и содержит минимум компонентов, в результате чего удалось добиться хорошей компактности устройства.
Основные характеристики USB осциллографа:
- АЦП: 12 разрядов.
- Временная развертка (осциллограф): 3…10 мсек/деление.
- Временной масштаб (рекордер): 1…50 сек/выборка.
- Чувствительность (без делителя): 0,3 Вольт/деление.
- Синхронизация: внешняя, внутренняя.
- Запись данных (формат): ASCII, текстовый.
- Максимальное входное сопротивление: 1 МОм параллельно к емкости 30 пФ.
Описание работы осциллографа из компьютера
В роли АЦП применена интегральная микросхема AD7495 (DD3) фирмы Analog Devices. Это не что иное, как аналого-цифровой преобразователь с 12 разрядами, с внутренним источником опорного напряжения и последовательным интерфейсом.
В микросхеме AD7495 также есть синтезатор частот, который определяет, с какой скоростью будет происходить обмен информацией между FT232BM и AD7495. Для создания необходимого протокола обмена данными, программа USB осциллографа наполняет выходной буфер USB отдельными значениями битов для сигналов SCLK и CS так, как указано на следующем рисунке:
Измерение одного цикла определяется серией из девятьсот шестидесяти последовательных преобразований. Микросхема FT232BM с частотой, определяемой встроенным синтезатором частот, отправляет электрические сигналы SCLK и CS, параллельно с передачей данных преобразования по линии SDATA. Период 1-го полного преобразования АЦП FT232BM, устанавливающий частоту выборки, соответствует продолжительности периода отправки 34 байтов данных, выдаваемых микросхемой DD2 (16 бит данных + импульс линии CS). Поскольку быстрота передачи данных FT232BM обусловливается частотой внутреннего синтезатора частот, то для модификации значений развертки нужно всего лишь менять значения синтезатора частот микросхемы FT232BM.
Данные, принятые персональным компьютером, после определенной переработки (изменение масштаба, корректировка нуля) выводятся на экран монитора в графическом виде.
Исследуемый сигнал поступает на разъем XS2. Операционный усилитель OP747 предназначен для согласования входных сигналов с остальной схемой USB осциллографа.
Вот потребовался мне автомобильный осциллограф, посмотрел цены, удивился… Цены как на крыло самолета. Кстати, не понятно почему, ведь параметры осциллографа для тестирования авто крайне низки, как по частотам так и по напряжению. По сему решил сам себе сделать.
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 токоограничивающий резистор, ограничивает ток стабилитрона когда он открывается. Вот такой простой делитель с защитой.
Вот так все просто :-)
Ну раз схему разработали то настала пора воплотить это все в «железе».
Берем какой либо корпус, разъемчики, кнопку, переключатель, резисторы диоды, стабилитроны и начинаем из этого всего создавать автомобильный осциллограф.
Вот такой набор деталей у меня.
Для начала подготовим корпус. Просверлим все отверстия.
Далее, навесным монтажом, смонтируем делители прямо на блоке разъемов.
Вот так, просто – надежно — удобно.
Теперь примерим плату, проведем формовку выводов делителя и на них напаяем плату.
Вот так вот. Выходит очень удобно и компактно.
Смонтируем в корпус светодиоды, кнопку, переключатель и конденсатор. Вот так. Длинна проводов достаточная но не избыточная.
Почти все готово, осталось впаять плату в корпус.
Привинтить блок разъемов в корпус. Взять синюю изоленту, без нее ни как! Сделать ограничитель для УСБ провода.
Теперь можно закрыть корпус, залить прошивку и проверить работу. У меня все ОК.
Вот и все, мой автомобильный осциллограф готов.
Им можно смотреть-диагностировать расходомер(МАФ), генератор, катушки, датчики положения колена и распредвалов. Смотреть правильность установки ГРМ, Смотреть форсунки, по пульсации топлива в рампе можно косвенно смотреть работу насоса и регулятора давления топлива… В общем полезный зверек в хозяйстве. Особенно он полезен когда какое либо устройство отказало не полностью, а ушло от параметров и мозг не видит этого.
Пора приступать к испытанием на авто.
Все отлично и очень удобно. Как и планировал :-)
Тему датчиков в этом посте не затрагиваю, ибо очень она объемная. Но все датчики легко самому изготовить и емкостные и индуктивные и контактные… Может отдельно напишу об них…
Вот так просто можно сделать себе качественный автомобильный осциллограф.
На этом все, ни гвоздя вам ни жезла :-)
Не секрет, что у начинающих радиолюбителей не всегда есть под рукой дорогое измерительное оборудование. К примеру осциллограф, который даже на китайском рынке, самая дешевая модель стоит порядка нескольких тысяч.
Бывает осциллограф нужен для ремонта различных схем, проверка искажений усилителя, настройки звуковой техники и т.п. Очень часто низкочастотный осциллограф используется при диагностике работы датчиков в автомобиле.
В этом ряде случаем вам поможет наипростейший осциллограф, сделанный из вашего персонального компьютера. Нет, ваш компьютер никак не придется разбирать и дорабатывать. Вам понадобится всего на всего спаять приставку – делитель, и подключить её к ПК через звуковой вход. А для отображения сигнала установить специальный софт. Вот за пару десятков минут у вас появится собственный осциллограф, который вполне может сгодится для анализа сигналов. Кстати можно использовать не только стационарный ПК, но и ноутбук или нетбук.
Конечно, такой осциллограф с большой натяжкой сравним с настоящим прибором, так как имеет маленький диапазон частот, но вещь в хозяйстве очень полезная, чтобы посмотреть выхода усилителя, различные пульсации источников питания и тп.
Схема приставки
Согласитесь, что схема невероятна проста и не потребует много времени для её сборки. Это делитель - ограничитель, который защитит звуковую карту вашего компьютера от опасного напряжения, которое вы можете случайно падать на вход. Делитель может быть на 1, на 10 и на 100. Переменным резистором регулируется чувствительность всей схемы. Подключается приставка к линейному входу звуковой карты ПК.
Собираем приставку
Можно взять бокс от батареек как я или другой пластиковый корпус.
Программное обеспечение
Программа «осциллограф» будет визуализировать сигнал, поданный на вход звуковой карты. Я предложу вам на скачивание два варианта:
1) Простая программа без установки с русским интерфейсом, качаем.
Какой пользоваться – выбирать вам. Возьмите и установите обе, а там выберете.
Если у вас уже установлен микрофон, то после установки и запуска программы можно уже будет наблюдать звуковые волны, которые поступают в микрофон. Значит все хорошо.
Для приставки никаких драйверов больше не потребуется.
Подключаем приставку ко линейному или микрофонному входу звуковой карты и пользуемся на здоровье.
Если у вас никогда в жизни не было опыта работы с осциллографом, то я искренне рекомендую вам повторить эту самоделку и поработать с таким виртуальным прибором. Опыт очень ценный и интересны.
Смотрите видео по работе с осциллографом для компьютера
Каждый радиолюбитель в своей деятельности сталкивается с вопросом измерений. Это может быть стрелочный или цифровой мультиметр. Проходит какое-то время и возникает необходимость более серьезных измерений и мультиметра становится недостаточно. Всё чаще посещают мысли приобретения более дорогих приборов, например, осциллографа. Но, имея компьютер, мы можем использовать компромиссное решение, а именно - собрать низкобюджетную осциллографическую приставку, которую можно рекомендовать даже студентам.
В данной статье мы рассматриваем практические аспекты сборки осциллографической приставки и использования соответствующего приложения. Для этого мы использовали бесплатно предоставляемые схему и программу LPTScope 1.2, с оригиналами которых можно ознакомиться по ссылке.
Основой приставки является широкораспространенный АЦП, выпускаемый фирмами Analog Devices (AD7820), National Semiconductor (ADC0820), Texas Instruments (TLC0820). Данные АЦП являются полными аналогами между собой, т.е. pin-to-pin, что легко выяснить по документации.
Для получения компактной приставки нами был приобретен АЦП AD7820LR в корпусе SOIC20 для поверхностного монтажа. Этот корпус довольно легко распаять остро заточенным паяльником. Также под этот корпус просто сделать печатную плату с шириной проводников 0,8 мм.
Ниже рисунок односторонней печатной платы (вид со стороны пайки; печатать в зеркале).
Конструктивно печатная плата впаивается между рядами выводов 25-контактного разъема (вилка или "папа").
Для внешнего питания используется подходящий блок питания с выходным стабилизированным напряжением 5 вольт / 100 мА.
Теперь рассмотрим работу осциллографической приставки на практике. Первое, что пришло в голову, проанализировать сигналы c разных пультов дистанционного управления, принимаемых инфракрасным приемником типа TSOP1736. Для этого датчик подключили к приставке и с самой приставки взяли питание. А саму приставку подключили к компьютеру с помощью удлинительного шнура.
Ниже фото подключенного датчика.
В окне программы можно увидеть следующую картинку.
Всё довольно информативно. Мы наблюдаем бифазное кодирование ("Манчестерский" код). С помощью указателя мыши мы можем измерить длительности импульсов (на картинке зеленые цифры 1,79 миллисекунд).
Максимальное разрешение, которое предоставляет программа и приставка, - 1,73 микросекунды на 1 экранный пиксель. Строго говоря, это совсем неплохо для моей практики работы с микроконтроллерами, где минимальная длительность сигнала (в огромной массе проектов) составляет 1 микросекунду.
К сведению: у меня в Setup BIOS в разделе Integrated Peripherals / Parallel Port Mode установлен режим SPP (Standard Parallel Port), т.е. выбрана работа в режиме стандартного параллельного порта.
Читайте также: