РадиоКот :: Миниатюрный цифровой осциллогоаф-частотомер "Москит"
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Измерительная техника >

Теги статьи: Добавить тег

Миниатюрный цифровой осциллогоаф-частотомер "Москит"

Автор: Serj_K
Опубликовано 31.08.2015
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2015!"

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

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

В результате работы получился прибор со следующими параметрами:

- частота дискретизации 40МГц;

- полоса пропускания аналогового тракта (при отсутствии выходного ФНЧ) по уровню -3дБ – около 25МГц;

- максимальная амплитуда входных сигналов по аналоговому входу - около 8В;

- рабочее поле экрана осциллографа – 128х128 точек;

- разрядность АЦП – 7 бит;

- количество отсчётов – 2048;

- число каналов – 2 ( 1 аналоговый + 1 цифровой или 2 цифровых);

- режим развёртки – автоматический и ждущий с синхронизацией по аналоговому или цифровому каналу;

- размер основной сетки экрана – 4х4;

- пределы основной длительности развёртки, время/деление - 12,8мс, 6,4мс, 2,56мс, 1,28мс, 640мкс, 256мкс, 128мкс, 64мкс, 25,6мкс, 12,8мкс;

- режим растяжки выбранного фрагмента сигнала – до 1/16 основной длительности развёртки;

- пределы входного усилителя, В/деление - 2,5В, 1,0В, 0,5В, 0,25В, 0,1В, 50мВ;

- входное сопротивление аналогового входа – 1МОм.

Цифровой частотомер имеет следующие параметры:

- максимальная частота входного сигнала с цифрового входа – примерно до 100МГц;

- максимальная длительность импульса или периода измеряемых сигналов – 3,3с;

- дискретность при измерении длительности или периода – 25нс;

- дискретность измерения частоты в режиме частотомера – 1Гц, в режиме измерения длительности при частотах менее 100Гц – 0,1Гц;

- счёт импульсов по входу первого канала с разрешением по второму каналу;

- ток потребления - около 120мА, зависит от режима работы и яркости подсветки;

- габариты – 70х44х23мм.

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

Приблизительная стоимость комплектующих на момент написания статьи – около 30$.

Так как рабочее поле экрана занимает 128х128 точек, то иметь разрядность АЦП более 7 бит нет смысла. При этом появляется возможность задействовать свободный бит в ОЗУ на второй цифровой канал .

Схемы цифровой и аналоговой части осциллографа представлены ниже.

Осциллограф выполнен по классической схеме – наблюдаемый входной сигнал с выхода усилителя с переменным КУ подаётся на вход АЦП (U3), отсчёты которого сохраняются в буферном ОЗУ (U4) для последующей обработки и вывода на экран. Управляющие сигналы для управления АЦП и ОЗУ формируются в микросхеме ПЛИС (U1), режимы работы которой устанавливаются микроконтроллером (U2). В ПЛИС производится установка длительности развёртки, полярности фронта синхронизации, канала синхронизации, установка требуемого КУ усилителя, управление выходным ФНЧ усилителя, а также реализован частотомер.

Питание прибора осуществляется от Li-Ion аккумулятора, для зарядки которого применяется специализированная микросхема (U9). Зарядное устройство подключается через мини-USB разъём, процесс зарядки индицируется светодиодом D2. Напряжения питания цифровой и аналоговой частей схемы стабилизированы при помощи LDO стабилизаторов (U6, U7). Для получения отрицательного напряжения питания аналоговой части применён DC-DC инвертор (U15). Для получения требуемого напряжения для подсветки экрана применён повышающий преобразователь (U5).

В качестве АЦП я применил AD9203 так как он был в наличии и имел достаточную для меня максимальную частоту дискретизации и не большой потребляемый ток. В принципе он мог бы работать и на большей частоте, например на 50МГц (что было бы удобнее), но я не нашёл такого кварца. Кварц я использовал миниатюрный, снятый с нерабочего китайского Айфона. С него же была снята и миниатюрная кнопка включения питания (В1). Для снижения тока потребления АЦП включается только на время измерения.

ПЛИС – используется от Altera. Плата разводилась под EPM3064, а EPM3128 совместима с ней по ножкам. Сейчас в ПЛИС имеется достаточный резерв на расширение возможностей, если это потребуется.

Микроконтроллер выбрал STM8L151K6Т с объёмом флэш памяти 32кБ. Реально прошивка занимает около 13кБ, но разница в стоимости этого контроллера с контроллерами на 16кБ практически нулевая, да и не было их на момент покупки. Мне этот контроллер понравился тем, что помимо портов ввода-вывода имеет только 2 других ножки – питание. Кроме того, практически все порты могут иметь функцию аналогового входа для АЦП, что упрощает подведение аналоговых сигналов. Так же данная серия контроллеров имеет встроенный загрузчик с возможностью записи прошивки через UART, что позволяет обойтись без специализированного программатора-отладчика (ST-Link).

Тактируется контроллер от внешнего сигнала с выхода ПЛИС частотой 20МГц. Это небольшой разгон, но проблем в работе я не наблюдаю. Применение в данном приборе более мощных контроллеров, типа STM32F не имеет особого смысла, так как всё равно имеются программные задержки, а запись сигналов в ОЗУ производится аппаратно без участия контроллера.

ОЗУ – статическая память, такая микросхема была в наличии.

Преобразователь U5 – тоже был в наличии. Может быть применён любой другой для получения выходного напряжения порядка 10..11В с током нагрузки около 10мА – от него зависит яркость подсветки.

Микросхема U9 – специализированная, предназначена для создания кварцевых генераторов. Изначально её не было, но генератор, сформированный на ПЛИС, давал сигнал со скважностью примерно 3. Настроить его на скважность 2 у меня по-простому не получилось, поэтому применил эту микросхему. Скважность подбирается конденсаторами С28 и С28_1, но при указанных номиналах она практически равна 2. Можно поступить иначе – использовать кварц на 80Мгц, сделать генератор на ПЛИС с последующим делением частоты на 2 внутри ПЛИС. Тогда точно скважность будет равна 2. Либо применить миниатюрный генератор.

Экран – любой от Siemens-S65 или других Siemens с такими экранами. В исходниках уже присутствуют варианты собранных прошивок под все экраны в *.НЕХ формате. Могу добавить поддержку экрана от Siemens-C75 на жёлтой подложке, но он меньше по размеру. Экран к плате подпаивается на шлейфе. Я использовал фрагмент 80-и жильного IDE шлейфа – он тонкий и не пружинит после придания требуемой формы. У меня шлейф к плате подключен через разъём, но можно подпаять его напрямую к плате.

По аналоговому тракту – применил ОУ и компаратор, которые были в наличии. ОУ U10 должен быть ВЧ с JFET входом и желательно с небольшим напряжением смещения. Один из критериев выбора – минимальные габариты. Красным контуром на схеме выделен выходной ФНЧ. Сначала я его запаял, а потом убрал – без него лучше отображаются фронты импульсов. Когда ФНЧ был ещё распаян я полосу пропускання аналогового тракта не измерял. Желающие могут поэкспериментировать с его параметрами. Расчёт был такой: максимальная частота среза около 8МГц, затем при каждом 10-кратном увеличении времени развёртки частота среза уменьшается в 10 раз. Заложенная минимальная чувствительность аналогового входа – 2,5В/деление, то есть +-5В на экран, но есть возможность наблюдать сигналы с напряжением примерно до +-8В за счёт смещения луча по вертикали. Дальше начинается ограничение сигнала по входу. При пересчёте входного и промежуточного делителей диапазон входных напряжений может быть изменён.

Все межплатные разъёмы используются с шагом 1,27мм.

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

Входной разъём – снял со старого CD-ROM.

Аккумулятор – BST-37 от Sony-Ericson, располагается между платами и подсоединяется на проводах, подпаянных к его контактным площадкам. У меня для подключения аккумулятора к плате используется разъём и аккумулятор по толщине упирается именно в него, раздвигая платы на несколько десятых миллиметра, что теоретически может привести к потере контактов в межплатных разъёмах. Аккумулятор в длину располагается между входным разъёмом и переменными резисторами. Если планируется установка более длинного аккумулятора, то достаточно удлинить только аналоговую плату со стороны переменных резисторов. Аккумулятор между платами выполняет функцию дополнительного защитного экрана.

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

Конструктивно прибор выполнен на двух печатных платах – для цифровой и аналоговой части.

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

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

А вот такие «щупы» я применяю. С красным зажимом – для второго цифрового канала или для внешней синхронизации. Иголка – основной. В одном его положении задействуется аналоговый вход, а если развернуть в разъёме относительно общего провода – будет цифровой вход первого канала.

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

Так выглядит меандр 2.5МГц на полном экране и в максимально растянутом окне. Сигнал брал с адресной шины ОЗУ в режиме автоматической развёртки и подавал на аналоговый вход.

Так выглядит работа в 2-канальном режиме. Первая картинка – полноэкранный режим, аналоговый + цифровой сигналы. Вторая – те же сигналы, но в окне. Выбранное окно показано синим и красным курсором над осциллограммой. Третья картинка – два цифровых канала, первый канал – сигнал с выхода компаратора, поданный на цифровой вход.

А это реальный сигнал 1.25МГц, поданный на аналоговый вход. Это уже с другим экраном – на LS020. Он немного более контрастный и на этой фотке цветопередача практически нормальная.

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

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

Первая строка – название пункта меню для изменения параметра и величина напряжения аккумулятора. Если напряжение меньше 2,3В, цвет текста напряжения становится жёлтым на красном фоне.

Вторая строка – текущие значения параметров: Вольт/деление, Время/деление, фронт синхронизации, канал синхронизации, автоматический/нормальный (ждущий) режим развёртки.

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

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

Справа курсором жёлтого цвета отображается примерное положение уровня синхронизации.

Теперь режим частотомера.

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

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

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

Настройка.

На начальном этапе для удобства настройки лучше параллельно кнопке В1 временно подпаять выключатель с фиксацией. Монтаж и проверку работоспособности желательно начать с цепей питания, контролируя отсутствие замыканий по мере монтажа. Подключить заряженный аккумулятор или внешний источник питания, соединить платы между собой. Включить питание кнопкой В1, удерживая её нажатой. Измерить напряжения питания цифровой и аналоговой частей после стабилизаторов – должны быть +3В. Напряжение -3VA после преобразователя реально будет чуть меньше 3В. Напряжение подсветки экрана (LED+) – должно быть около 10В.

Пока не записан контроллер и ПЛИС на цифровой плате проверять больше нечего. На аналоговой плате при отсутствии сигналов на входе прибора на выходе U13B напряжение должно быть равно 0В, а на выходе U13A – около +1,5В (зависит от величины напряжения -3VA). При вращении движка переменного резистора «LEVEL» на выходе компаратора должен изменяться логический уровень сигнала.

Теперь нужно записать ПЛИС и контроллер.

ВАЖНО! До завершения записи ПЛИС или контроллера необходимо удерживать кнопку включения питания нажатой.

Что записывать первым – контроллер или ПЛИС – роли не играет. Я первой записывал ПЛИС. Она программируется через Byte-Blaster или USB-Blaster. На плате выведены площадки для подпайки проводников , так как на разъём нет места. Номера контактов стандартного Бластера приведены на схеме. Питание на Бластер снимал с блокировочного конденсатора возле ОЗУ – там место удобное. Для записи ПЛИС используется либо полный Quartus II, либо Quartus II Stand-Alone Programmer. Записывается файл microosc.pof.

В микроконтроллер прошивку можно записать или через интерфейс SWIM при помощи ST-Link или при помощи встроенного загрузчика через UART программой STM Flash Loader Demonstartor. Для работы со встроенным загрузчиком в FLD нужно правильно настроить порт, как показано на рисунке ниже.

После чего в течении первой секунды после сброса контролера (включения питания) необходимо успеть нажать «Next». Затем после соединения с контроллером выбрать из списка используемый контроллер. Файлы прошивки находяться в директории Release/Exe проекта под IAR. Для последующего возможного обновления прошивки посредством загрузчика необходимо перед включением прибора нажать джойстик вправо и, удерживая его в таком положении, включить прибор. При этом происходит циклический вход в загрузчик, что позволяет нажать кнопку «Next» в FLD в любое время. После соединения с контроллером джойстик можно отпустить. Так как обновление прошивки это процесс очень редкий, то для подключения внешнего UART я вывел немного удлиненные дорожки, а не штатные точки подключения.

После записи прошивки контролера и его перезагрузки на экране должна появиться картинка основного экрана осциллографа. Если яркость подсветки не соответствует желаемой, то её можно изменить подбором одного из резисторов делителя R9, R10.

По результатам работы с прибором был добавлен анализ напряжения смещения луча для синхронного изменения положения курсора уровня синхронизации. Для этого понадобилось подать на вход РС2 контроллера (вывод 27) напряжение смещения, для чего был добавлен резистор R45. Номинал этого резистора не критичен. Обратите внимание, что этот резистор соединён с выводом контроллера перемычкой (на схеме это цепь URX). Я поставил выводной резистор, припаянный непосредственно к выводам разъёма и контроллера, так как на уже изготовленной плате для него не было предусмотрено место.

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

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

При необходимости перекомпилировать прошивку контроллера необходимо выбрать требуемый тип экрана в файле global.h.

При использовании кварца на частоту, отличную от 40МГц, необходимо перекомпилировать прошивку микроконтроллера под требуемую частоту кварца, для чего в файле global.h необходимо её прописать в переменной REAL_QURZ и пересчитать все значения длительностей развёртки для выводимого текста в файле lcddata.h. Также нужно в файле timers.c подобрать значение переменной T1_PREDIV. Если частота кварца будет больше 40МГц, то понадобится дополнительно изменить содержимое ПЛИС – делитель на 2 для получения тактовой частоты процессора заменить на делитель на 3 с меандром на выходе и в файле global.h изменить переменную QUARZ_DIVIDER на 3.

В приложенном архиве находяться исходники прошивки контроллера под IAR, проект под Quartus II для Altera (я пользовался Quartus II 9.1) и проект под Altium Designer (12) со схемами и платами, в том числе в *.pdf формате.

Ну и не забывайте отмечаться внизу страницы.

Все вопросы в форум.


Файлы:
Архив RAR


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

146 19 7
5 0 2