Ну вот - не прошло и двух лет!
А вдруг кому интересно - маленький отчет. Осцилл я таки сделал!
На STM32F103C8T6 Экран - 3.2'
Параметры - чувствительность 5mV - 5V на клетку(левый энкодер), развертки 100mS - 2uS на клетку(правый энкодер). Полоса пропускания аналогового тракта - около 5 MHz, реально нормально видимый сигнал - 1MHz., при этом еще можно отличить прямоугольник от синуса. Автоизмерение верхнего и нижнего напряжения по экрану и частоты срабатывания триггера развертки (ну точность там не ахти - несколько %, ибо подсчет ведется по пикселям, только чтобы по клеточкам вручную не считать
, режимы развертки - авто и норм (ждущий), однократный отсутствует, что в некоторых случаях компенсируется ждущим с последующим остановом (Hold). Вход - закрытый/открытый (переменка/постоянка), уровень GND отмечен левым маркером и сдвигается в пределах экрана вверх/вниз (левый энкодер после нажатия на него), уровень триггера отмечен правым маркером и сдвигается в пределах экрана вверх/вниз (правый энкодер после нажатия на него). С помощью кнопок можно выбрать режим и фронт срабатывания триггера, заморозить изображение (Hold/Run) и переключить режим входа (переменка/постоянка). Точка срабатывания триггера отмечена на экране белой линией (первая клетка от левой стороны экрана) и двигаться не может, кольцевой буфер экрана отсутствует - двигать остановленное изображение по экрану вправо/влево нельзя. "Красивостей" в виде менюшек и разнообразных измерительно-вычислительных режимов нет.
http://img.radiokot.ru/files/99520/24cu1edyk0.jpgПрямоугольник не лучшего качества - ну это с самодельного DDS, он такой и есть - с выхода Attiny 2313
.
Почему именно такой набор функций и органов управления?
Ну - во-первых была поставлена цель - сделать как можно проще схему, потому в ней отсутствуют внешний АЦП, память FIFO и компаратор триггера, как следствие однократный режим развертки реализовать не получилось (я вообще крайне редко его использую, даже когда он есть
- в основном я занимаюсь звуковыми устройствами).
Во-вторых - я делал прибор "под себя" - мне хотелось сделать удобный осциллограф с привычным (мне) интерфейсом в "аналоговом стиле" - это когда не приходится для переключения входа "на переменный ток" заходить в две менюшки, а потом выходить из них обратно (RIGOL), об "удовольствии" изменить уровень GND в DSO138 я вообще молчу...
Потому у меня два энкодера (как на "больших" осциллографах
и по кнопке на каждый режим. При том удобство цифрового прибора мне хотелось тоже сохранить, потому есть режим Hold, позволяющий в сочетании со ждущим режимом триггера "поймать" нужную волну и разглядывать ее сколько угодно. Да, на медленных развертках там еще и "антиалиасинг" есть..
Что касается экранных измерений - опыт работы с RIGOL'ом показал, что точность там неважная, да и основное назначение осциллографа - визуализация сигналов, потому у меня измеряются только размах напряжения и частота.
Ну и последнее - дома RIGOL'а у меня нет, а DSO138 - все же слабоват - при 100 kHz он уже форму сигнала не отображает - все переводит на синус, все, что выше 10-20 kHz - сплошная аппроксимация, да и синхронизация у него на этих частотах никакая. Да, у него есть однократный режим, токо он не работает на этих частотах...
Потому я "выжал" почти на порядок лучшую частотку - на развертке 2uS на клетку АЦП снимает 12 точек и линейно аппроксимируется до 24 точек на клетку.
Питание - аккумулятор (пока от старой Нокии
, зарядка - по микроЮСБ (контроллер зарядки ТР4056). Потребление - около 200 мА, на плате стоит DC-DC, повышает до 7.5v, отрицательное напряжение для аналоговой части преобразуется на 7660. В аналоговой части - 2 ОУ AD8065 (поначалу купил подделки, потом перезаказал и заменил первый ОУ, второй так и остался подделкой
и пара коммутаторов CD4051/53.
Ну как-то так...