Цифровой осциллограф
Цифровой осциллограф и не только...
    Дело было вечером, делать было нечего... и я сидел, читал форумы. Попалась мне ветка о том, как многие люди мечтали о цифровом осциллографе. Но кроме идей как и начем делать, разговоры заканчивались. Максимум до чего доходило, так это до изготовления несложных устройств, с частотой дискретизации не более 5 МГц. Не говоря уж о входном сопротивлении и сервисе. Ну что-ж, уже неплохо, подумал я и начал прикидывать, а что-же могу сделать я ? Порывшись с своих закромах достал китайский КИТ на котором была распаяна ПЛИС Altera Cyclone II EP2C8 и ОЗУ 8 Мб. Которая когда-то покупалась на известном аукционе eBay.
    ПЛИС - это-же отличная вещь, которую можно взять за основу для осциллогафа. Но как-же на логике рисовать графику, обрабатывать сигнал, спросите вы ? Да все просто ! На логике реализуется процессор NIOS II, который разработала Altera. К нему прилагается богатый набор перефирии и среда разработки. В результате получается система на кристалле, которую вы создаете сами под ваши требования.
    Итак, идея родилась, осталась реализация. Порывшись еще в закромах, был найден сеносорный LCD дисплей 320*240 точек и SD картридером на борту, тоже с eBay. Забегая вперед, скажу, что сенсор не использовался.
    И вот, начало положено. Следующим шагом было изготовление органов управления. С ними я заморачиваться не стал, купил примерно десяток кнопок и экодер с кнопкой. Собрал все это на куске старой платы. Получился макет, под который можно было пробовать написать софт. Чтобы не изобретать велосипед, с графическими библиотеками было решено использовать что-то готовое. Порывшись на просторах интернета, нашел исходники ucGUI от Micrium. Версия была очень старая, но пойдет. Пришлось немного потрудиться, чтобы перенести и собрать ее под NIOS и написать драйвер дисплея. Получилось. Потренировавшись с выводом информации, нужно было продолжать работу над задумкой. Пораскинув мозгами написал себе ТЗ на приборчик. Вот примерно что я хотел сделать:
Режимы: осциллограф 2 канала, генератор сигнала. Ну а раз два прибора стоят в одном корпусе и есть единые мозги для управления, то почему бы и не добавить АЧХометр ? Ну еще добавим  анализатор SPI посылок, я его часто использую для реверсинжиниринга :)
 
Теперь о параметрах осцилла:
-2 канала, по 100 МГц дискретизации или один 200 МГц, полоса пропускания, получилась около 50 МГц. (но выяснил, что налажал во входном усилителе, так что полоска будет поуже)
- Вход 1 МОм, 15-20 pF, AC/DC.
- Возможность подачи внутреннего напряжения на щуп для проверки устройств, требующих питание по сигнальному проводу. Мне например, эта опция достаточно часто требуется.
- Измерение и отображение параметров сигнала (Vmin, Vmax, Vmean, Частота до 49,999 МГц) Можно добавить еще много чего, это несложно.
- Отображение маркеров уровня 0, триггера.
- захват сигнала до срабатывания триггера и после.
- синхронизация: одиночный запуск, нормальный, автоматический и автоматическое слежение за сигналом.
- математические функции: A+B, A-B, FFT.
Остальное будет добавляться по ходу дела.
 
Генератор: ну особых требований я к нему не предъявлял.
- диапазон частот от 100 кГц до 200 МГц, мин шаг перестройки 1 Гц. Можно сделать и от 0 Гц, но потом.
- выходной уровень от 100 uV - 2V (меньший уровень можно получить используя внешний аттенюатор)
- модуляция от внутр генератора синус, треугольник, прямоуг. с несколькими фиксироваными частотами (AM, ЧМ)
 
АЧХометр:
- Диапазон 100 кГц - 100 МГц.
- динамический диапазон около 60 дб.
 
 
Немного об архитектуре системы в ПЛИС. Картинки к сожалению нет, так что расскажу на словах. Начну с канала АЦП. Данные с АЦП на частоте 100 МГц поступают на цифровой компаратор, который обеспечивает синхронизацию и на дециматор. С выхода дециматора данные на нужной тактовой частоте складываются в  FIFO память объемом 1024 байта. После ее заполнения выставляется флаг готовности и процессор забирает данные. Частотомер измеряет частоту срабатывания компаратора синхронизации. И раз в 0,5 сек отправляет частоту в процессор. Все остальные операции выполняет процессор, работающий на частоте 100 МГц.
Ну и напоследок, фотографии того что получилось. Это очень сырой образец, макет, одним словом. 
Внешний вид макета
Обратная сторона
Фазовый шум генератора
Гармоники генератора
Режим осциллографа
Ну и напоследок: Сейчас времени на хобби нехватает и работа над приборчиком временно приостановлена. Как будут еще продвижения - сообщу.