Самодельный осциллограф на avr

Миниатюрный осциллограф на микроконтроллере AVR XMEGA с OLED дисплеем. Часть 1. Схемотехническое решение

» Схемы » Генераторы · Измерения · Применение микроконтроллеров

06-01-2011

Проект Xprotolab, разработанный компанией Gabotronics, являющийся миниатюрным измерительным прибором с богатым набором функций и возможностей, построен на микроконтроллере компании Atmel семейства AVR XMEGA.

Для визуализации данных, организации пользовательского интерфейса и меню управления используется графический OLED дисплей с разрешением 128×64 точки с широким углом обзора. Все электронные компоненты и органы управления размещаются на двухсторонней печатной плате, размеры которой не превышают 25.4 мм × 40.64 мм.

Кроме того, проект может использоваться в качестве отладочной платы для микроконтроллеров семейства AVR XMEGA.

Отличительные особенности устройства:

  • основа устройства – микроконтроллер ATXMEGA32A4:
    • Flash-память программ – 32 КБайт;
    • SRAM – 4 КБайт;
    • EEPROM – 1КБайт;
  • режимы работы:
    • осциллограф смешанных сигналов;
    • генератор сигналов произвольной формы;
    • 8-канальный логический анализатор;
    • анализатор спектра;
  • возможность одновременной работы генератора и осциллографа;
  • графический OLED дисплей, размер 0.96'', разрешение 128×64 точки;
  • PDI интерфейс для программирования и отладки;
  • управление с помощью 4-кнопочной клавиатуры;
  • USB коннектор для питания устройства (в дальнейшем программная реализация USB интерфейса).

Спецификация измерительного прибора:

  • осциллограф:
    • 2 аналоговых канала;
    • 8 цифровых каналов;
    • аналоговая полоса пропускания – 318 кГц;
    • максимальная скорость выборки – 2 Msps;
    • разрешение – 8 бит;
    • аналоговая синхронизация и внешняя цифровая синхронизация;
    • вертикальный и горизонтальный курсоры;
    • входное сопротивление – 1 МОм;
    • размер буфера для каждого канала – 256;
    • максимальное входное напряжение – ±10 В;
  • генератор сигналов произвольной формы:
    • 1 аналоговый канал;
    • максимальная скорость конвертирования – 1 Msps;
    • аналоговая полоса пропускания – 66 кГц;
    • разрешение – 8 бит;
    • низкое выходное сопротивление;
    • размер буфера – 256;
    • максимальное выходное напряжение – ±2 В.

Принципиальная схема прибора

Кликните для увеличения

Входные аналоговые каналы осциллографа, выходной канал генератора сигналов – выполнены на JFET операционном усилителе TL064 с низким потреблением. На таком же операционном усилителе выполнен источник опорного напряжения для встроенного аналого-цифрового преобразователя микроконтроллера.

Питание прибор получает от USB интерфейса, однако можно применить внешний источник напряжения 5 В, но следует быть внимательным и необходимо исключить возможность одновременного подключения внешнего источника и USB интерфейса. Напряжение питания микроконтроллера составляет 3.3 В, с этой целью установлен регулятор напряжения 3.3 В AP7333. Также, напряжение 3.3 В необходимо для питания контроллера дисплея.

Для питания операционных усилителей требуется двуполярный источник напряжения + 5 В и –5 В. Для получения отрицательного напряжения –5 В установлен интегральный DC/DC преобразователь TPS60403 (charge pump).

Графический OLED дисплей UG-2864HSWEG01 является монохромным и имеет встроенный контроллер SSD1306.

Источником тактовой частоты для микроконтроллера является внешний кварцевый резонатор 16 МГц.

Управление, навигация по меню, настройка параметров осуществляются с помощью клавиатуры K1-K4.

Для программирования (а также для отладки ПО) микроконтроллера используется 2-проводный интерфейс PDI. Данный интерфейс поддерживает высокоскоростное программирование всех пространств энергонезависимой памяти, в т.ч.

Flash-память, EEPOM, Fuse-биты, Lock-биты и сигнатурный код пользователя. Программирование осуществляется путем доступа к контроллеру энергонезависимой памяти (NVM-контроллер) и выполнения NVM-контроллером команд.

Внешний вид печатной платы

Демонстрация работы прибора 

Загрузки

Принципиальная схема (pdf) – скачать
Список компонентов (xls) – скачать
Расположение элементов на печатной плате (pdf) – скачать

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

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

gabotronics.com

Источник: https://www.rlocman.ru/shem/schematics.html?di=71525

Самодельный Осциллограф micro на микроконтроллере PIC 18 F452 и дисплее от NOKIA 3310

Самодельный осциллографmicro | Измерительные Устройства | Осциллограф

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

Осциллограф micro выполнен на микроконтроллере PIC18F452, а в качестве графического индикатора используется дисплей от мобильного телефона NOKIA 3310.

Для того чтобы придать полной портативности осциллографу, он питается от стандартного аккумулятора на 3,7 вольта, через преобразователь на 5 вольт, который выполнен на микросхеме MC34063.

Заряжается Осциллограф micro от 5 вольт через гнездо miniUSB. Также он может работать от внешнего питания в 5 вольт (USB).

Основная идея (и схема) была взята с филиппинского форума electronicslab. Прошивку на микроконтроллер PIC18F452 и проект в Proteus любезно предоставил пользователь ZuBor с русского форума vrtp. Данный архив можно скачать ЗДЕСЬ.

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

Для данного осциллографа нужен исключительно оригинальный дисплей.

Печатная плата осциллографа разводилась специально под имеющийся в наличии корпус от температурного монитора TempTale4, который имеет внешние габариты 50х90 мм. Аккумулятор взят от MP3 плеера, занимающий практически всю площадь под крышкой, но имеющий толщину всего 2 мм.

Ниже привожу принципиальную схему Осциллографа micro, в которую уже внесены все дополнения, поправки и изменения.

Если рассматривать схему по блочно, то она состоит из основного процессора-микроконтроллера, графического индикатора, операционного усилителя, преобразователя напряжения с 3,7 до 5 вольт, и зарядного устройства аккумулятора на LM317. Разведена схема на одностороннем текстолите. Файл в формате *.lay можно скачать ЗДЕСЬ.

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

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

Щуп осциллографа сделан из стержня от шариковой ручки, в который впаяна игла от швейной машинки. Щуп при транспортировке осциллографа плотно закрывается пластиковым колпачком от медицинской иглы.

На видео можно увидеть работу Осциллографа micro, сделанного своими руками.

В видео, при проверке Осциллографа micro использовался набор программ WaveTool, который можно скачать ЗДЕСЬ.

Страницы:

1 2 3 4 5

Необходимо авторизоваться, чтобы комментировать.

Источник: http://best-chart.ru/samodelnye-izmeritelnye-ustrojstva-testery/samodelnyj-oscillograf-micro-na-mikrokontrollere-pic-18-f452-i-displee-ot-nokia-3310.html

Источник: http://cxema21.ru/publ/mikrokontrollery/izmeritelnye_ustrojstva/oscillograf_na_atmega8_i_lcd_ls020_ot_siemens/14-1-0-222

:: ОСЦИЛЛОГРАФ НА МИКРОКОНТРОЛЛЕРЕ ::

Источник: http://samodelnie.ru/publ/samodelnye_pribory/oscillograf_na_mikrokontrollere/5-1-0-167

Простой осциллограф за 1 день

Здрасьте! Ну нет у меня денег на нормальный осциллограф(и на нормальную камеру). Так что сильно не деритесь. Но было 500 рублей на экран и простой 8-битный микроконтроллер.Небольшое описание под катом. Началось все с того, что на руках у меня появился графический LCD экранчик WG12864B фирмы WINSTAR. 128×64 пикселя, монохромный.

Никогда с ними не работал, было интересно в нем разобраться (люблю копаться в даташитах, особенно, по Cortex M4 контроллерам в 1400 страниц). Управление оказалось очень простым, мне показалось проще, чем управление символьными LCD экранами. Основная первоначальная сложность возникла лишь в том что экран поделен на 2 независимые части 64×64, каждая из которых управляется собственным контроллером.

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

Она служит, так сказать, смещением памяти. Если записать в память пиксель в точке (0,0) и сделать стартовую линию, например 5, то точка будет видна на экране на 5 линии горизонтально. Мне показалось это решением проблемы сдвига изображения вместо его перерисовки.

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

Эффект соединенных точек сначала думал сделать через алгоритм Брезенхема, но потом подумал, что сдвигаем ведь всего на 1 пиксель и линии будут вертикальные. Амплитудное значение определяется по формуле:

amp=63-(8-битное значение из АЦП) сдвинутое на 2 разряда вправо;

Сделал все это в бесконечном цикле, запустил, и… ничего не увидел. добавил задержку 100мс и получил то изображение, которое видно в видео. При уменьшении задержки изображение становится слаборазличимым. Тут я взгрустнул, так как сигналы частотой выше 10 Гц становятся совсем неразличимы. Это все из за метода сдвига экрана.

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

Шкалу напряжения пришлось делать на нижнем экране, так как на сдвигающемся экране сложновато сделать несдвигающуюся шкалу, тем более, чтобы её было нормально видно. Вот картинка, чтоб удобней было ориентироваться:На текущий момент имеем 3 Вольта. Кому интересно, синус делал на ЦАПе МК Cortex M4 с периодом чуть больше 3 секунд.

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

Тут уж можно просмотреть цифровой сигнал с частотой меньше 50 Герц. Например, проверить работоспособность какого-нибудь медленного интерфейса. Очень медленного:) В общем все рассказал. Предложения и отзывы в комментариях. Только не разводите балаган, лучше купите мне осциллограф) Счастья всем.

UPDATE1: Спасибо всем за критику, после сессии попытаюсь более серьезно отнестись к программе и аппаратной части, опираясь на ваши замечания.

UPDATE2: вот код для atmel studio для микроконтроллера ATMega168, который содержит процедуры работы с графическим экраном, обработку прерываний таймера и цифровых входов.

Просмотреть код#include
#define F_CPU 8000000
#include
#include #define ClearBit(reg, bit) reg &= (~(1

Источник: https://habr.com/post/165611/

Простой UART Осциллограф

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

Итак, если вы следили за предыдущими статьями, то с легкостью сможете создать форму в Visual C#, прицепить к ней кнопочки, вывести текст. В идеале вы в состоянии поймать байтик из юарта и вывести полученный текст на форму.

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

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

Хотите вывести полученный по UART байт на форму — поместите компонент serialPort на форму, ведь именно он отвечает за ком порт и при событии DataReceived (получение данных) изменяйте надпись.

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

Все это круто, кнопки на форме рисовать умеем, текст писать и выводить переменные умеем, теперь неплохо бы еще научиться рисовать. Для этого заюзаем GDI+, он вполне сгодится. Чтобы его использовать в WindowsForm существует класс Graphics из пространства имен System.Drawing. Он позволяет рисовать изображения, многоугольники, дуги, линии, заливки областей, в общем то что нужно.

Главным образом нас интересует как рисовать прямые линии, с остальным, при желании, можно разобраться самостоятельно. Создаем проект WindowsForm.

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

Для наглядности, я привел полный исходник который должен
у вас получиться.

Данный приборчик не претендует на супер измерительный прибор, хотя он таким и является. Будет лучше чем этот  который описывался ранее, во первых там язык украинский, во вторых тут по входу все таки стоит операционный усилитель (LM358), да и используемый микроконтроллер стоит дешевле чем мега32 =)

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

Примерные параметры пробника:

Диапазон входных напряжений – 0…5В, максимальная частота в режиме осциллографа – 10kHz. Собран на МК ATmega8, АЦП – встроенный в МК, Контроллер работает на частоте 16мГц. Питание 3.6 вольт от аккумулятора. Более тут нечего написать, имхо.

Фотографии готового устройства:

Печатная плата односторонняя, на плате расположены в ряд несколько тактовых кнопок, подстроечный резистор и динамик с кварцевым резонатором, ну и ОУ LM358. В качестве зарядного устройства для АКБ использована плата заказанная с китая, автоматически отключает батарею после зарядки и имеется индикация процесса зарядки на СМД светодиодах.

Приборчик получился по габаритам в разы меньше чем предыдущий осциллограф на меге 32, к тому же он тоньше!

В архиве есть файл печатной платы для программы SPLayout.

Фьюзы программируем по следующей картинке:

Заливать в контроллер нужно файл EEPROOM и HEX, сначала один файл затем другой. После выставляете и программируете фьюзы…

Видео работы осциллографического пробника (часть 1):

Часть 2:

Часть 3 (меню и настройки):

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

файл печатной платы (~12кб.)

файлы прошивки (~15кб.)

Обновленная версия печатной платы

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

Особых изменений никаких нет, поменялись местами некоторые разъемы и сами разъемы, поменялся тип тактовых кнопок – до этого стояли четырехконтактные тактовые, теперь двухвыводные. На вход поставил разъем 3.

5мм от MP3 плеера, ну и вместо динамика теперь стоит вибромоторчик от сотового телефона.

Фото печатной платы:

Переменный резистор снят с CD, CD-RW дисковода, модуль зарядки аккумулятора расположился на обратной стороне платы.

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

Расположение радиоэлементов и их количество так же поменялось, в основном это “перемычки” с нулевым сопротивлением резисторы 1206. Если что то не понятно по расположению и применению радиодеталей, задавайте свои вопросы ниже – поможем.

Скачать печатной платы (~20кб.)

   Осциллограф выполнен на микроконтроллере ATmega32. Индикатор графический ЖКИ 128 х 64 точек. Схема данного устройства очень проста. Один из недостатков данного осциллографа – это низкая максимальная частота измеряемого сигнала, для меандра это всего лишь 5 кГц.

Принципиальная схема осциллографа на AVR

Особенности работы схемы

– Измерение частоты 10 Гц – 7.7 кГц. – Входное напряжение 24 В переменного напряжения или 30 В постоянного. – Электропитание 12 вольт. – ЖК дисплей 128×64 пикселей. – Измерения в области 100×64 пикселей. – Отображение информации в области 28×64 пикселей

– Авто запуск

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

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

   Напряжение питания схемы 12 вольт. Из этого напряжения на выходе преобразователя получаем +8.2 В для IC1 и +5 В для IC2 для IC3.

Данная схема имеет входной диапазон от -2,5 вольт до +2,5 вольт или от 0 до +5 вольт в зависимости от положения S1(перееменный/постоянный ток). Используя делитель можно расширить диапазон измеряемых напряжений.

Регулировка контраста дисплея производится потенциометром P2. Максимальное входное напряжение 30 вольт для постоянного и 24 вольта для переменного тока.

Установка фузов для ATmega32 МК

   Обязательно отключите JTAG интерфейс. С помощью кнопок S8 и S4 перемещается начальный уровень вверх или вниз. С помощью кнопок S7 and S3 устанавливается развёртка. В осциллографе есть автотриггер для периодичных сигналов. Можно “заморозить” картинку нажатием кнопки S6. Автор схемы – Serasidis Vassilis.

Поделитесь полезными схемами

   Схема устройства показана на рисунке. В его состав входит сетевой блок питания, собранный на трансформаторе Т1, мостовом выпрямителе, сглаживающем конденсаторе С4 и стабилизаторе напряжения DA1. Индикатором наличия выходного напряжения стабилизатора служит светодиод HL2. Это напряжение поступает на сотовый телефон и обеспечивает постоянную подзарядку его аккумулятора.
    Схема из себя представляет достаточно мощный двухтактный преобразователь напряжения. Сигнал поступает с пульта управления на маломощный усилитель низкой частоты, который выполнен на микросхеме LM386.
   Электронное устройство на двух транзисторах, позволяющее отслеживать состояние влажности и если уровень превышен – подавать сигнал.
   В отличие от другого зарядного устройства, данное усовершенствованное зарядное устройство обеспечивает автоматическое поддержание аккумуляторной батареи в рабочем состоянии не давая ей разряжаться ниже установленного уровня. Описанный цикл работы устройства позволяет использовать eгo для автоматической тренировки аккумуляторных батарей циклами «заряд – разряд» при подключении к нему параллельно аккумуляторной батарее разрядного резистора.
    Датчиками являются электроды разной длины, установленные в водяном баке. Если бак изготовлен из изоляционного материала, то необходим общий электрод, опущенный на дно. 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace plot
{ public partial class Form1 : Form { public Form1(){InitializeComponent();}
  private void button1_Click(object sender, EventArgs e) { Graphics gr = CreateGraphics(); //создаем переменную класса graphics Pen penc = new Pen(Color.Black); //выбираем цвет карандаша,которым будем рисовать gr.DrawLine(penc, 0, 0, 100, 200); //рисуем линию начальная точка x1=0 y1=0 } //конечная точка x2=100 y2=200 }
}

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.

Forms; namespace plot { public partial class Form1 : Form { public Form1(){InitializeComponent();} private void button1_Click(object sender, EventArgs e) { Graphics gr = CreateGraphics(); //создаем переменную класса graphics Pen penc = new Pen(Color.Black); //выбираем цвет карандаша,которым будем рисовать gr.

DrawLine(penc, 0, 0, 100, 200); //рисуем линию начальная точка x1=0 y1=0 } //конечная точка x2=100 y2=200 } }

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

Вернемся к изначальной задаче. Допустим микроконтроллер измеряет с некой периодичностью и шлет нам байты по последовательному порту. Кидаем на форму компонент serialPort1, задаем скорость и номер порта(!), с которого будем считывать информацию.

Для теста я взял два виртуальных порта 4 и 5, т.е. через com4 терминалом передаются байты, а com5 читается программой. В событиях serialPort1 ищем обработчик DataReceived — туда пишем код, который рисует линии.

С каждым приходящим байтом наш график будет дорисовывать линию к предыдущей, со смещением 5(переменная х2).

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{ Graphics gr = CreateGraphics(); //создаем переменную Pen penc = new Pen(Color.Black); //задаем цвет карандаша y2 = serialPort1.ReadChar(); //читаем полученный байт x2+=5; //следующая точка по координате х будет на 5 больше if (x2 > 300) //если мы достигли края формы, то очищаем форму и { //обнуляем переменные gr.Clear(Color.WhiteSmoke); x2 = 0; y2 = 0; x1 = 0; y1 = 0; } gr.DrawLine(penc, x1, y1, x2, y2); //рисуем линию по координатам x1 = x2; //запоминаем конец линии y1 = y2;
}

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { Graphics gr = CreateGraphics(); //создаем переменную Pen penc = new Pen(Color.Black); //задаем цвет карандаша y2 = serialPort1.

ReadChar(); //читаем полученный байт x2+=5; //следующая точка по координате х будет на 5 больше if (x2 > 300) //если мы достигли края формы, то очищаем форму и { //обнуляем переменные gr.Clear(Color.WhiteSmoke); x2 = 0; y2 = 0; x1 = 0; y1 = 0; } gr.

DrawLine(penc, x1, y1, x2, y2); //рисуем линию по координатам x1 = x2; //запоминаем конец линии y1 = y2; }

Не забываем, что перед использованием порт нужно открыть, а перед закрытием программы — закрыть. Теперь мы можем послать пару байтов, например при помощи терминала. Вроде работает.

Ну и на закуску — измеряем АЦП микроконтроллера, кидаем в юарт, смотрим на ПК. Только я внесем небольшое изменение в программу, чтобы график рисовался не от верхнего левого угла, а относительно центра.

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

Прошивка микроконтроллера в комментариях думаю не нуждается — все есть в 8 и 10 уроках.

Протестировано — работает, такая вот приставка-осциллограф к компьютеру, всего на одном микроконтроллере и преобразователе usb-uart.

Проект Visual C#

Проект Atmel studio

Вопросы по прошивкам на форум, по статье в комменты.

Источник: http://avr-start.ru/?p=2261

USB-осциллограф своими руками: схема :

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

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

В зависимости от этого показателя меняется предельная полоса пропускания. Также при сборке осциллографа следует учитывать частоту дискретизации и глубину памяти.

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

Схема простого осциллографа

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

Изготовить щуп для осциллографа своими руками можно из любого проводника. При этом порт подбирается в магазине отдельно. Резисторы первой группы минимум сопротивление в цепи должны выдерживать на уровне 2 Ом. При этом элементы второй группы должны быть более мощными.

Также следует отметить наличие на схеме диодов. В некоторых случаях они выстраиваются в мосты.

Одноканальная модель

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

Минимум резистор сопротивление должен держать на уровне 4 Ом. Если рассматривать элементы второй группы, то параметр пропускания в данном случае должен составлять 10 Гц. Для того чтобы его повысить до нужного уровня, используются различного типа регуляторы. Некоторые специалисты для одноканальных осциллографов советуют применять ортогональные резисторы.

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

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

В конечном счете, точность показаний может быть не самой лучшей.

Двухканальные устройства

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

За счет этого полоса пропускания устройства способна возрасти до 9 Гц. Резисторы для модели, как правило, применяются ортогонального типа. В данном случае они стабилизируют процесс передачи сигнала. Для выполнения функций сложения микросхемы подбираются в основном серии ММК20. Сделать делитель для осциллографа своими руками можно из обычного модулятора. Это не особенно сложно.

Многоканальные модификации

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

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

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

Сделать делитель можно при помощи модулятора. Конденсаторы в системе необходимо устанавливать только возле стабилитрона. Для повышения полосы пропускания используются аналоговые резисторы. Параметр отрицательного сопротивления в среднем колеблется в районе 3 Ом.

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

Однако важно понимать, что чувствительность системы в этой ситуации значительно ухудшается.

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

Сборка устройства на 5 В

На 5 В осциллограф-приставка своими руками делается только с применением микросхемы типа ММР20. Подходит она как для обычных, так и мощных резисторов. Максимум сопротивление в цепи должно составлять 7 Ом.

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

Полоса пропускания в такой ситуации будет находиться на отметке 5 Гц. Чтобы ее повысить, необходимо использовать тетроды.

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

Осциллографы на 10 В

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

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

Для того чтобы функция слежения выполнялась довольно быстро, микросхемы устанавливаются типа ММР20.

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

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

Как сделать модель на 15 В?

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

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

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

Чтобы амплитуда колебаний не была слишком большой, многие советуют использовать диоды вакуумного типа.

Использование резисторов серии ППР1

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

Дополнительно следует помнить о параметре номинальной частоты. В среднем этот показатель составляет 3 Гц. Ортогональные резисторы для такого осциллографа не подходят однозначно. Построечные изменения можно проводить только при помощи делителя.

В конце работы надо заняться непосредственно установкой порта.

Модели с резисторами ППР3

Сделать USB-осциллограф своими руками можно с использованием только сеточных конденсаторов. Особенность их заключается том, что уровень отрицательного сопротивления в цепи может достигать 4 Ом. Микросхемы для таких осциллографов подходят самые разнообразные. Если взять стандартный вариант типа ММР20, то необходимо конденсаторов в системе предусмотреть как минимум три.

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

Устройства с подавлением колебаний

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

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

Источник: https://www.syl.ru/article/204424/new_usb-ostsillograf-svoimi-rukami-shema

USB ПРОБНИК-ОСЦИЛЛОГРАФ

Источник: http://radioskot.ru/publ/izmeriteli/usb_probnik_oscillograf/15-1-0-1128

Двухканальный USB HID осциллограф на микроконтроллере ATtiny45

Прежде чем приступить к описанию 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 138)

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

Источник: http://fornk.ru/1475-dvuxkanalnyj-usb-hid-oscillograf-na-mikrokontrollere-attiny45/

Простой USB осциллограф на PIC микроконтроллере

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

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

С его помощью мы можем убедиться, присутствует ли у нас логическая единица, или ноль, например на ножке МК, или выводе Ардуино.

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

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

В поисках детальной информации при его сборке, обошел множество сайтов, не меньше 10-12.

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

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

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

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

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

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

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

В данном устройстве не применяется внешний быстродействующий АЦП, и это её существенный недостаток.

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

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

Не справившись даже с частотой 455 кГц… Теперь, когда вы предупреждены о его минусах, вы можете сами определиться для себя, нужен ли вам такой осциллографический пробник. Если все же да, то продолжаем чтение)… Входное сопротивление обоих каналов осциллографа равно 1 МОм.

Для этой цели нам будет нужно приобрести и запаять подстроечные резисторы на 1 МОм, делитель сигнала 110. Соответственно сопротивления делителя, у нас должны составлять 900 и 100 КилоОм.

Я решил использовать 2 канала осциллографа, так как был в наличии разъем – гнезда, распаянные на плате, два тюльпана, и разница в стоимости деталей для меня составляла, по сути, только стоимость подстроечного резистора. Другое дело, что оба канала оказались не идентичны по своим показаниям.

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

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

Также мы можем, покрутив регулятор подстроечного резистора, выставить, какой делитель нам требуется, 110, 125, 150, 1100, или любой другой, измерив мультиметром сопротивление, между центральным выводом и крайними выводами подстроечного резистора. Это может потребоваться для измерения формы сигнала, с большой амплитудой напряжения.

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

Фьюзы которые нужно изменить, показаны на следующем рисунке:

В данной схеме 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 кабеля к плате ориентируясь по распиновке кабеля, а не по расположению на схеме осциллографа. На схеме очередность следования жил указана произвольно. Также из несущественных недостатков, по отзывам пользовавшихся, после перезагрузки Windows, нам потребуется переткнуть осциллограф заново в USB порт.

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

На следующем рисунке, приведен список необходимых для сборки деталей.

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

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

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

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

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

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

   Форум по самодельным осциллографам

Главная » Статьи » УСТРОЙСТВА НА МК

Простой USB осциллограф на PIC микроконтроллере

Этот простой и дешёвый USB осциллограф был придуман и сделан просто ради развлечения. Давным давно довелось чинить какой-то мутный видеопроцессор, в котором спалили вход вплоть до АЦП. АЦП оказались доступными и недорогими, я купил на всякий случай парочку, один пошёл на замену, а другой остался. Недавно он попался мне на глаза и почитав документацию к нему я решил употребить его для чего-нибудь полезного в хозяйстве. В итоге получился вот такой приборчик. Обошёлся в копейки (ну рублей 1000 примерно), и пару выходных дней. При создании я постарался уменьшить количество деталей до минимума, при сохранении минимально необходимой для осциллографа функциональности. Сначала я решил, что получился какой-то уж больно несерьёзный аппарат, однако, сейчас я им постоянно пользуюсь, потому что он оказался весьма удобным – места на столе не занимает, легко помещается в карман (он размером с пачку сигарет) и обладает вполне приличными характеристиками:- Максимальная частота дискретизации – 6 МГц; – Полоса пропускания входного усилителя – 0-16 МГц; – Входной делитель – от 0.01 В/дел до 10 В/дел; – Входное сопротивление – 1 МОм; – Разрешение – 8 бит. Принципиальная схема осциллографа показана на рисунке 1.

Рис.1 Принципиальная схема осциллографа

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

Если при подключении осциллографа к USB держать её нажатой, то PIC заработает в режиме бутлоадера и можно будет обновить прошивку осциллографа при помощи соответствующей утилиты. В качестве АЦП (IC3) была использована “телевизионная” микросхема – TDA8708A. Она вполне доступна во всяких “Чип и Дип”ах и прочих местах добычи деталей.

На самом деле это не только АЦП для видеосигнала, но и коммутатор входов, выравниватель и ограничитель уровней белого – чёрного и т.д. Но все эти прелести в данной конструкции не используются. АЦП весьма шустр – частота дискретизации – 30 МГц. В схеме он работает на тактовой частоте 12 МГц – быстрее не нужно, потому что PIC18F2550 просто не сможет быстрее считывать данные.

А чем выше частота – тем больше потребление АЦП. Вместо TDA8708A можно использовать любой другой быстродействующий АЦП с параллельным выводом данных, например TDA8703 или что-нибудь от Analog Devices. Тактовую частоту для АЦП удалось хитрым образом извлечь из PIC'а – там запущен ШИМ с частотой 12 МГц и скважностью 0.25.

Тактовый импульс положительной полярности проходит в цикле Q1 PIC'а так что при любом обращении к порту B, которое происходит в цикле Q2 данные АЦП будут уже готовы. Ядро PIC'а работает на частоте 48 МГц, получаемой через PLL от кварца 4 МГц. Команда копирования из регистра в регистр выполняется за 2 такта или 8 циклов.

Таким образом, данные АЦП возможно сохранять в память с максимальной частотой 6 МГц при помощи непрерывной последовательности команд MOVFF PORTB, POSTINC0. Для буфера данных используется один банк RAM PIC18F2550 размером 256 байт. Меньшие частоты дискретизации реализуются добавлением задержки между командами MOVFF.

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

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

Усилитель входного сигнала (IC2B) работает с усилением в 10 раз, смещение нуля, необходимое для АЦП (он воспринимает сигнал в диапазоне от Vcc – 2.41В до Vcc – 1.41В) обеспечивается напряжением с программируемого генератора опорного напряжения PIC (CVREF IC1, R7,R9) и делителем от отрицательного напряжения питания (R6,R10, R8). Т.к.

в корпусе ОУ был “лишний” усилитель (IC2A), я использовал его как повторитель напряжения смещения.

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

С постоянным током всё просто – входное сопротивление ОУ и закрытых диодов на порядки выше сопротивления делителя, так что делитель можно просто посчитать не учитывая входное сопротивление ОУ. Для переменного тока иначе – входная ёмкость ОУ и диодов составляют значительную величину по сравнению с ёмкостью делителя.

Из сопротивления делителя и входной ёмкости ОУ и диодов получается пассивный ФНЧ, который искажает входной сигнал. Чтобы нейтрализовать этот эффект нужно сделать так, чтобы входная ёмкость ОУ и диодов стала значительно меньше ёмкости делителя. Это можно сделать соорудив емкостной делитель параллельно резистивному. Посчитать такой делитель сложно, т.к.

неизвестна как входная ёмкость схемы, так и ёмкость монтажа. Проще его подобрать. Способ подбора такой: 1. Поставить конденсатор ёмкостью примерно 1000 пФ параллельно R18. 2.

Выбрать самый чувствительный предел, подать на вход прямоугольные импульсы с частотой 1 кГц и размахом в несколько делений шкалы и подобрать конденсатор параллельно R1 так, чтобы прямоугольники на экране выглядели прямоугольниками, без пиков или завалов на фронтах. 3.

Повторить операцию для каждого следующего предела, подбирая конденсаторы параллельно каждому резистору делителя соответственно пределу. 4. Повторить процесс с начала, и убедиться, что на всех пределах всё в порядке ( может проявиться ёмкость монтажа конденсаторов ), и, если что-то не так, слегка подкорректировать ёмкости. Сам ОУ – это Analog Devices AD823.

Самая дорогая часть осциллографа. 🙂 Но зато полоса 16 МГц – что весьма неплохо.А кроме того, это первое из шустрого, что попалось в розничной продаже за вменяемые деньги. Конечно же этот сдвоенный ОУ без всяких переделок можно поменять на что-то типа LM2904, но тогда придётся ограничится сигналами звукового диапазона. Больше 20-30 кГц оно не потянет.

Ну и форму прямоугольных, например, сигналов будет слегка искажать. А вот если удастся найти что-то типа OPA2350 (38МГц) – то будет наоборот замечательно. Источник отрицательного напряжения питания для ОУ сделан на хорошо известной charge-pump ICL7660. Минимум обвязки и никаких индуктивностей. Ток по выходу -5 В конечно у неё невелик, но нам много и не надо. Цепи питания аналоговой части изолированы от помех цифры индуктивностями и ёмкостями (L2, L3, C5, C6). Индуктивности попались номиналом 180 uГн, вот их и поставил. Никаких помех по питанию даже на самом чувствительном пределе. Прошивка PIC заливается по USB с помощью бутлоадера который сидит с 0-го адреса в памяти программ и запускается если при включении удерживать нажатой кнопку S2. Так что прежде чем прошивать PIC – залейте туда сначала бутлоадер – будет проще менять прошивки. Исходники драйвера осциллографа для ядер 2.6.X находятся в архиве с прошивкой. Там же есть консольная утилитка для проверки работоспособности осциллографа. Её исходники стоит посмотреть, чтобы разобраться как общаться с осциллографом, если хочется написать для него свой софт. Программа для компьютера проста и аскетична, ее вид показан на рисунках 2 и 3. Подключить осциллограф к USB и запустить qoscilloscope. Требуется QT4.

Рис2. Программа qoscilloscope

Рис3. Программа qoscilloscope

На рисунке 4 показан смонтированный осциллограф.

Рис.4 Смонтированный USB осциллограф

Программа и прошивка в архиве. oscill.rar [3.76 Mb]

Источник: http://shemotehnik.ru/microcontrol/290-prostoj-usb-oscillograf-na-pic-mikrokontrollere.html

Категория: УСТРОЙСТВА НА МК | (06.03.2015)

Источник: http://radio-bes.do.am/publ/ustrojstva_na_mk/prostoj_usb_oscillograf_na_pic_mikrokontrollere/2-1-0-274

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}