Простой универсальный осциллограф

Рисунок 1. Внешний вид осциллографа

Рисунок 1. Внешний вид осциллографа

Технические характеристики:

Оцифровка аналогового сигнала:

            Напряжение 0-3В

            Дискретизация до 153.9кГц.

Генератор:

            Частота 0-533.3кГц

            Напряжение 3В

            Ток до 15мА

Питание:

            Батарейка 1.5В

Описание:

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

Осциллограф имеет 2 канала: аналоговый и цифровой. Оба канала отображаются на дисплее в виде временной диаграммы, аналоговый канал - синим цветом, цифровой - жёлтым. Синхронизация может осуществляться от обоих  каналов. Также есть возможность переключения цифрового канала на выход и выдачи частоты от 20Гц до 533кГц с любой скважностью сигнала.

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

Интерфейс и управление

Рисунок 2. Дисплей

  ← Рисунок 2. Дисплей

Информация на дисплее имеет следующий вид:

На канал 1(аналоговый вход) подана частота 50гц. Канал 2 включен в режим генератора и генерирует частоту 30Гц со скважностью 50%.

 

U 100 - это уровень синхронизации. Параметр влияет только когда синхронизация идёт от канала 1 (аналоговый вход).

T 025 - это смещение синхронизации по времени. 25 - четверть экрана. Таким образом, передний фронт смещён от левого края дисплея на 25 отчётов. Всего отчётов 100.

048мс - период развёртки. Между 2мя зелёными вертикальными полосками будет 48мс.

Стрелочка  слева от цифры 048 – курсор, он указывает на текущий выбранный параметр.

/1 показывает режим синхронизации. Сейчас выбран передний фронт канала 1.Также может быть выбран  задний, передний фронт любого из каналов или отключена синхронизация (символ “NO”).

30 – это частота генератора. Может быть значение частоты или значение IN – это указывает на то что канал 2 будет входным и частота не выдаётся.

Следующий параметр 000 указывает на скважность импульса. Он не выбран, поэтому скважность установлена по умолчанию - 50%.

 

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

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

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

 Рисунок 3. Схема осциллографа

Рисунок 3. Схема осциллографа.

 

Схема осциллографа составлена на основе контроллера ATTiny 43U. Данный контроллер имеет встроенный DC-DC преобразователь, который позволяет питать схему от одной батарейки. Я применял элемент ААА. Встроенный DC-DC преобразователь поднимает напряжение батарейки (0.7В – 1.8В) до напряжения 3В., и питание ядра контроллера (и портов) происходит от 3В.

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

Также в схеме применён ещё один DC-DC преобразователь на основе микросхемы MC34063, он нужен для питания подсветки дисплея, поскольку на подсветку должно приходить примерно 6В с копейками.

В особой настройке схема не нуждается.

 

Программная часть:

Программа осциллографа написана на ассемблере в AVR Studio.

При реализации программы я столкнулся со следующими нюансами:

Поскольку дисплей имеет последовательный интерфейс, причём SPI с передачей 9 бит (подробно протокол работы с дисплеем описан в более ранней статье про БП), не получается реализовать передачу данных аппаратно. Поэтому обновление дисплея занимает длительное время. Полностью закрашивание дисплея происходит примерно около секунды (это нас никак не устраивает), поэтому при выводе на дисплей осциллограммы затирание происходит по предыдущему контуру совместно с прорисовкой новых данных. Это позволило ускорить процесс прорисовки осциллограммы почти в 100 раз. ОЗУ как раз хватило для хранения 2х буферов оцифрованных данных.

Для уменьшения объёма хранимой информации в ОЗУ данные обоих каналов хранятся в одном буфере, то есть в одном байте буфера хранятся значения состояний обоих каналов. Биты от 0 по 6 - это данные АЦП (поскольку нас вполне устраивает 7 бит оцифрованных данных) и бит 7 - это состояние канала 2.

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

Для устранения дребезга потенциометра применён метод накопления значений, расчёт значения потенциометра происходит вот по такой формуле:

Aп=Aп-Ап/256+АЦП, где Ап – это накопленное значение.

Таким образом, происходит как бы усреднение 256 значений потенциометра..

Про АЦП

По даташиту на чип частота дискретизации АЦП составляет 15кГц с максимальным разрешением при тактовой примерно 200кГц. Но допускается тактирование АЦП до 1Мгц. При частоте 1Мгц частота дискретизации получается 76кГц. А делителями можно задать гораздо больше. В ходе экспериментов тактированием АЦП получилось, что оно вполне себе работает при частоте 2МГц. Если больше, то уже увеличивается цикл измерения, и период измерений начинает гулять. В программе при изменении частоты дискретизации тактовая АЦП меняется от 62кГц до 2Мгц.

 

Используемые материалы:

 

 

Автор:  Сергей Меньшиков , e-mail для связи -    

 

Обсуждение на форуме