Самодельный осциллограф на микроконтроллере pic. Портативный осциллограф на микроконтроллере ATmega32

Есть такой замечательный USB осциллограф китайской фирмы Instrustar с маркировкой ISDS205A. Он привлекателен в первую очередь своим софтом, он очень удобен и функционален как для USB осциллографа, ну и конечно же характеристиками, которые очень даже не плохие учитывая цену осциллографа. На Aliexpress она составляет около 55$ за весь комплект. Поэтому если не уверены в своих силах повторить прибор, то целесообразнее будет приобрести готовый прибор. Тем более разница в цене не такая и большая. Вообще вся эта затея по повторению, исключительно из спортивного интереса. Одно из отличий это то что в авторском варианте питание реле осуществляется от +5В, которые выходят из преобразователя, тем самым нагружая последний и перекашивает напряжения. В нашем случае питание реле будет осуществляться от отдельного стабилизатора, и преобразователь также будет другой. Ниже приведена схема Instrustar ISDS 205A (модифицированная).

В аналоговой части отрисован лишь один канал, второй такой же. Осциллограф построен на базе процессора CY7C68013A , и двухканальной микросхеме АЦП AD9288-40BRSZ. Все полученные данные процессор передает по USB на компьютер, поэтому его работа очень сильно зависит от производительности компьютера. На старых машинах, вероятнее всего, этот осциллограф корректно работать не будет.

Особенности сборки

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





Плата довольно сложная, двухсторонняя и с металлизацией, поэтому ее изготовление советую Реле, который применены во входной части типа TX-4.5. Напряжение срабатывания должно быть не более 3,3 вольт. Операционные усилители AD8065 очень боятся перегрева и статики. Еще очень легко нарваться на подделку. Поэтому рекомендую паять их хорошо заземленным паяльником с регулировкой температуры, и стараться не перегревать, запаивать в одно касание. До запайки ОУ рекомендую изготовить DC-DC преобразователь и впаять его.
Это нужно для контроля работоспособности ОУ. После установки первого, подаем питание и контролируем напряжение на входе и выходе. У нормального ОУ должно быть 0 вольт на входе и выходе. Ну и теперь про сам DC — DC. Он делает из 5 вольт +5 и -5 Вольт. Его схема и плата также есть в архиве. Там самое сложное — намотать транс. Нужно обязательно соблюдать полярность намотки и ничего не напутать.

Можно также приобрести готовый DC-DC, при этом немного возрастает уровень шумов осциллографа. После сборки нужно прошить микросхему Eeprom. Для этого устанавливаем перемычку на плате, подключаем по USB к компьютеру, запускаем программу Cypress Suite, заходим в EZ Console, нажимаем кнопку LGeeprom, выбираем файл прошивки из архива (расширение.iic), и прошивка загружается. Подробнее о прошивке можно почитать в . Корпус применен стандартный с маркировкой BIS-M1-BOX-100-01BL. Размер корпуса — 100*78*27 мм. Идеально подходит для платы с архива. Ниже фото самого корпуса и процесса сборки.








Частота измерения: 10 Гц - 7.7 кГц
Макс. входное напряжение: 24В AC / 30В DC
Напряжение питания: 12В DC
Разрешение экрана: 128x64 пикселей
Область экрана осциллограммы: 100x64 пикселей
Информационная область экрана: 28x64 пикселей
Режим триггера: автоматический

Введение

Однажды, просматривая различные интернет сайты по электронике, я наткнулся на очень любопытный проект осциллографа, который был спроектирован с использованием МК PIC18F2550 и графического LCD с контроллером KS0108. Это был веб-сайт Steven Cholewiak . Это была хорошая схема и я решил разработать свой проект осциллографа и использование языка С, на котором я программировал последние года, вместо ассемблера. В качестве среды разработки я использовал , которая основывается на open source AVR-GNU компиляторе и прекрасно работает с . Графическую библиотеку я разработал сам, специально для данного проекта. Если вы захотите ее использовать для каких-то других проектов, то ее необходимо переделывать. При измерении прямоугольного сигнала, максимальная частота, при которой вы увидите хорошую осциллограмму составляет около 5 кГц. Для других форм сигналов (синусоида или треугольный сигнал) максимальная частота составляет около 1 кГц.

Принципиальная схема AVR-осциллографа приведена на картинке ниже (нажмите для увеличения):

Напряжение питания схемы составляет 12 вольт постоянного тока. Из этого напряжения, в дальнейшем получается еще 2 напряжения: +8.2В для IC1 и +5В для IC2, IC3. Устройство может измерять входное напряжение от +2.5В до -2.5В или от 0 до +5В, зависящее от позиции переключателя S1 (выбор типа входного тока: постоянный или переменный). При использовании пробника 1:10, входное напряжение соответственно может быть увеличено в 10 раз. Кроме того, переключателем S2, можно установить дополнительно деление напряжения на 2.

Прошивка ATmega32

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

Настройка

Для настройки прибора нужно выполнить всего 2 вещи: настроить контрастность LCD при помощи подстроечного резистора Р2 и выставить центр осциллограммы при помощи подстроечного резистора Р1.

Использование

Вы можете перемещать луч осциллограммы вверх или вниз путем нажатия кнопок S8 и S4. Один квадрат на экране, соответствует 1В.
При помощи кнопок S7 и S3 можно увеличивать или уменьшать частоту измерений. Минимальная частота формы сигнала, которая может быть отображена на LCD составляет 460Гц. Если необходимо посмотреть сигнал с более низкой частотой, например 30Гц, то необходимо нажать S7 для сжатия осциллограммы или S3 для растяжения.
В осциллографе используется автоматический режим триггера. Это означает, что если входной сигнал повторяющийся (к примеру треугольник) то триггер работает хорошо. Но если, форма сигнала постоянно меняется (к примеру какая-то последовательность данных), то для фиксации изображения необходимо нажать кнопку S6. Повторное нажатие S6 возвращает в нормальный режим.

Видео работы осциллографа

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 Операционный усилитель

LM358

1 В блокнот
IC2 LCD-дисплей DEM128064A 1 128x64, контроллер KS0108 В блокнот
IC3 МК AVR 8-бит

ATmega32

1 В блокнот
IC4 Линейный регулятор

LM7805

1 В блокнот
D1 Стабилитрон

1N4738A

1 8.2В В блокнот
D2 Выпрямительный диод

1N4007

1 В блокнот
C1 Конденсатор 470 нФ 1 В блокнот
C2 Конденсатор 27 пФ 1 В блокнот
C3 22 мкФ 16 В 1 В блокнот
C4, C7, C9 Конденсатор 100 нФ 3 В блокнот
C5, C6 Конденсатор 22 пФ 2 В блокнот
C8 Электролитический конденсатор 100 мкФ 25 В 1 В блокнот
R1, R2, R4 Резистор

1 МОм

3 В блокнот
R3, R5 Резистор

390 кОм

2 В блокнот
R6 Резистор

56 Ом

1 В блокнот
R7 Резистор

220 Ом

1 В блокнот
P1 Подстроечный резистор 10 кОм 1 В блокнот
P2 Подстроечный резистор 22 кОм 1 В блокнот
X1 Кварц 16 МГц 1

Максим Керимов
Декабрь 2016 г.

Постановка задачи

Сделать простейший карманный осциллограф с минимальными затратами времени и средств.

Список компонентов

  • Китайский клон платы "Maple Mini" с микроконтроллером STM32F103C8T6 (AKA Blue Pill board).
  • Дисплей 1.8 TFT 128x160 SPI с драйвером ST7735.
  • Пять резисторов и два конденсатора (рис. 3).
  • Линейный регулятор с малым падением напряжения AMS1117-3.3 (по желанию).
  • Щуп-зажим "пинцет" - 2 шт.
  • Кнопка миниатюрная нормально разомкнутая без фиксации, с щелчком.

Рис. 1. Тестовый запуск осциллографа. Синусоида сгенерирована саунд бластером, от того ступенчатая.

Характеристики

7 диапазонов с ценой деления (клетки): 7 µS, 28 µS, 113 µS, 559 µS, 2 mS, 10 mS, 20 mS.
Чувствительность: 0.25 и 1.0 В/дел.
Максимальная амплитуда входного сигнала: 6 В.
Входное сопротивление: 20 kΩ.
Питание: 4 аккумулятора АА.
Потребляемый ток: 80 mA.

Сигнал какой частоты можно увидеть?

Теоретически можно увидеть 477 кГц. Отличить меандр от пилы, теоретически, можно на частотах 350 кГц и ниже. Практически же, более-менее комфортно можно наблюдать сигналы до 200 кГц. Размер клетки: 20 x 20 px.

"Частота развёртки" нашего осциллографа зависит от быстродействия АЦП. В STM32F103 разрядность АЦП фиксирована и равна 12. Это в полтора раза больше, чем нам нужно. В STM32F407, например, разрядность можно уменьшить, что сократит время измерений. Но это уже другая история с другим бюджетом.



Рис. 2. Подключение дисплея.

Рис. 3. Питание и входная цепь.

Делитель напряжения R1-R2 служит для контроля уровня заряда аккумуляторов. В правом верхнем углу экрана - пиктограмма батарейки, как на мобильном телефоне (на фото отсутствует).

Внешний регулятор напряжения нужен не всегда. На плате микроконтроллера есть свой регулятор 3.3 В 100 мА. Если питать дисплей от него, будет греться. На платах другого типа (STM Smart V2 board - с большим разъёмом JTAG) стоит как раз AMS1117, для них внешний не нужен. На некоторых дисплеях тоже есть AMS1117 (и перемычка). Решайте сами.

Последовательно с аккумуляторами имеет смысл поставить выключатель питания ПД9-1 или аналогичный.

Если есть желание увеличить размер своего импеданса, на вход можно добавить неинвертирующий повторитель на ОУ, что позволит достичь значения 1 MΩ и более. Питать ОУ следует непосредственно от аккумуляторов напряжением 4.8 - 5.4 В.

Принцип действия

Половина текста программы - это всевозможные инициализации. Принцип действия цифрового осциллографа прост и очевиден.

АЦП производит серию непрерывных последовательных измерений уровня сигнала. Полученные значения складываются в память средствами DMA. Каждый раз мы засекаем время и определяем продолжительность серии замеров. Так мы узнаём цену деления оси времени.

Анализируя записанные значения уровня сигнала, ищем первый экстремум, после чего рисуем сигнал на экране. Так мы пытаемся сделать подобие синхронизации. Она неплохо работает на гладких сигналах и практически бесполезна на широкополосных.

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

Для компиляции я использую среду CooCox CoIDE. Не выложил сюда Кокс-проект, поскольку он содержит абсолютные пути к файлам. Проще создать новый, чем править все пути. После создания проекта не забудьте подключить библиотеки: RCC, GPIO, DMA, SPI, TIM, ADC.

Как создать CooCox CoIDE проект

  1. Запускаем IDE. Из меню: Project > New Project
  2. Вводим имя, запоминаем где лежит проект.
  3. Выбираем "Board" , жмём "Next >"
  4. STM32 > STM32F103x > STM32F103C8T6 Core Development Board
  5. В окне "Repository" выбираем вкладку "Peripherals" , подключаем библиотеки (см. рис.)
  6. Чтобы Кокс не ругался на stdio.h , задаём: View > Configuration > Link > Library: "Use Base C Library" .
  7. Распаковываем скачанные файлы в папку проекта.
  8. Жмём "F7" .
  9. Ликуем.
  10. Чтобы автор порадовался вашему триумфу, переводим ему 50 рублей на пиво.


Прошивал при помощи программатора-отладчика ST-Link V2. Можно и без него, через USB-Serial адаптер.

Прежде чем приступить к описанию usb осциллограф своими руками на ATtiny45, необходимо отметить, что в конструкции используется только интегрированный АЦП преобразователь микроконтроллера ATmega45 с разрешением 10-бит, и в компьютер данные передаются посредством внедрения программного обеспечения V-USB с использованием драйверов USB HID, общая скорость передачи данных сильно ограничена.

Реальные выборки на обоих каналах до десятка выборок в секунду. Таким образом, это цифровой двухканальный низкоскоростной осциллограф на микроконтроллере.

V-USB является чисто программной реализации низкоскоростного USB протокол для процессоров серии AVR фирмы Atmel. Благодаря этим библиотекам можно с незначительными ограничениями применять USB практически с любым микроконтроллером, без необходимости использования дополнительного специального оборудования. Все библиотеки V-USB распространяются под лицензией GNU GPL v.2.

Два аналоговых входов способны измерять напряжение в диапазоне от 0 до +5 В. Широкий диапазон напряжения можно достичь путем добавления усилителя с высоким входным сопротивлением и переменным коэффициентом усиления (или входным резистивным делителем), или, по крайней мере с использованием обычного переменного резистора.

Всю основную работу выполняет запрограммированный микроконтроллер ATtiny45 . Работает он от внутреннего тактового генератора с предделителем с частотой 16,5 МГц. Для связи через интерфейс скоростного USB эта частота необходима, однако, это ведет к ограничению в минимальном напряжении питания, который должен быть выше, чем 4,5 В и, конечно, ниже, чем 5,5 В.

Но, поскольку выводы данных порта USB используют уровень напряжения от 0 до +3,3 В, то необходимо использовать ограничивающие резисторы R2, R3 и стабилитроны D2, D3. Такое решение, конечно, нельзя рекомендовать для коммерческого продукта, но для ознакомления с проблематикой USB и получение простой конструкции для домашнего использования вполне достаточно.

Входные каналы CH1 и CH2 на разъеме J2 блокируются конденсаторами С2 и C3 номиналом 100n в соответствии с требуемой спецификацией внутреннего АЦП. Светодиод D1 служит только для индикации работы и, следовательно, может быть исключен.

Список компонентов:

  • R1 — 270R
  • R2, R3 — 68R
  • R4 — 2k2
  • C1, C2, C3 — 100n
  • D1 — LED 3мм
  • D2, D3 — ZD (3,6 вольт)
  • IO1 — Attiny45-20PU
  • J1 — USB B 90

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

Скомпилированный файл HEX доступен для скачивания в конце статьи, а так же и исходный код на языке C. Установка конфигурации ограничивается выбором использовании внутреннего множителя PLL осциллятора.

Так как приложение использует HID драйвера (Human Interface Device), которые имеются практически в каждой операционной системе, отпадает необходимость в установке дополнительных драйверов.

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

(скачено: 1 273)

http://pandatron.cz/?1138&dvoukanalovy_usb_hid_osciloskop

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

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

Варианты решения проблемы

Отказаться от покупки дорогостоящих электронных изделий удаётся в следующих случаях:

  • Использование для этих целей встроенной в ПК или ноутбук звуковой карты (ЗК);
  • Изготовление USB-осциллографа своими руками;
  • Доработка обычного планшета.

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

  • Допустимость определённых ограничений по измеряемым сигналам (по их частоте, например);
  • Наличие опыта обращения со сложными электронными схемами;
  • Возможность доработки планшета.

Так, осциллограф из звуковой карты, в частности, не позволяет измерять колебательные процессы с частотами, находящимися за пределами её рабочего диапазона (20 Гц-20 кГц). А для изготовления USB-приставки к ПК потребуется определённый опыт сборки и настройки сложных электронных устройств (как и при подключении к обычному планшету).

Обратите внимание! Вариант, при котором удаётся изготовить осциллограф из ноутбука или планшета при простейшем подходе, сводится к первому случаю, предполагающему использование встроенной ЗК.

Рассмотрим, как реализуется на практике каждый из указанных выше методов.

Использование ЗК

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

Основное назначение такой электронной цепочки – обеспечить безопасное поступление внешнего исследуемого сигнала на вход встроенной звуковой карты, имеющей «собственный» аналого-цифровой преобразователь (АЦП). Используемые в ней полупроводниковые диоды гарантируют ограничение амплитуды сигнала на уровне не более 2-х Вольт, а делитель из соединенных последовательно резисторов позволяет подавать на вход напряжения с большими амплитудными значениями.

К плате с резисторами и диодами со стороны выхода подпаивается провод с имеющимся на ответном конце штекером на 3,5 мм, который вставляется в гнездо ЗК под наименованием «Линейный вход». Исследуемый сигнал подаётся на входные клеммы.

Важно! Длина соединительного шнура должна быть по возможности короче, что обеспечивает минимальные искажения сигнала при очень низких измеряемых уровнях. В качестве такого соединителя рекомендуется использовать двухжильный провод в медной оплётке (экране).

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

Программа для получения осциллограмм

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

Таким образом, всего за час или чуть больше удаётся создать условия для исследования и анализа электрических сигналов посредством стационарного ПК (ноутбука).

Доработка планшета

Использование встроенной карты

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

Решить эту проблему удаётся следующим образом:

  • Нужно взять гарнитуру от телефона, в составе которой должен иметься встроенный микрофон;
  • Затем следует уточнить разводку (распиновку) входных клемм на используемом для подключения планшете и сравнить её с соответствующими контактами на штекере гарнитуры;
  • При их совпадении можно смело подключать источник сигнала вместо микрофона, используя уже рассмотренную ранее приставку на диодах и резисторах;
  • В завершении останется установить на планшете специальную программу, способную анализировать сигнал на микрофонном входе и выводить на экран его график.

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

Преодолеть эти недостатки удаётся за счёт применения специальных электронных приставок, подключаемых через Bluetooth-модуль или посредством Wi-Fi-канала.

Самодельная приставка к Bluetooth-модулю

Подключение по «Bluetooth» осуществляется с помощью отдельного гаждета, представляющего собой приставку со встроенным в неё микроконтроллером АЦП. За счёт использования самостоятельного канала обработки информации удаётся расширить полосу пропускаемых частот до 1 МГц; при этом величина входного сигнала может достигать 10 Вольт.

Дополнительная информация. Радиус действия такой самостоятельно изготовленной приставки может достигать 10-ти метров.

Однако собрать такое преобразовательное устройство в домашних условиях способен не каждый, что существенно ограничивает круг пользователей. Для всех не готовых к самостоятельному изготовлению приставки возможен вариант приобретения готового изделия, с 2010 года поступающего в свободную продажу.

Приведённые выше характеристики могут устроить домашнего мастера, занимающегося ремонтом не очень сложной низкочастотной аппаратуры. Для более трудоёмких ремонтных операций могут потребоваться профессиональные преобразовательные устройства с полосой пропускания до 100 МГц. Эти возможности может обеспечить Wi-Fi-канал, поскольку скорости протокола обмена данными в этом случае несравнимо выше, чем в «Bluetooth».

Осциллографы-приставки с передачей данных по Wi-Fi

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

В заключение отметим, что с учётом приведённых выше ограничений вариант подключения по Wi-Fi также подходит лишь для ограниченного круга пользователей. Тем же, кто решил отказаться от этого способа, советуем попытаться собрать цифровой осциллограф , обеспечивающий те же характеристики, но за счёт подключения к USB-входу.

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

Видео