Цифровой осциллограф
|
|||||||||||||||||||
Цифровой осциллограф и не только...
|
|||||||||||||||||||
Дело было вечером, делать было нечего... и я сидел, читал форумы. Попалась мне ветка о том, как многие люди мечтали о цифровом осциллографе. Но кроме идей как и начем делать, разговоры заканчивались. Максимум до чего доходило, так это до изготовления несложных устройств, с частотой дискретизации не более 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 МГц.
|
|||||||||||||||||||
Ну и напоследок, фотографии того что получилось. Это очень сырой образец, макет, одним словом.
|
|||||||||||||||||||
Внешний вид макета
|
|||||||||||||||||||
Обратная сторона
|
|||||||||||||||||||
Фазовый шум генератора
|
|||||||||||||||||||
Гармоники генератора
|
|||||||||||||||||||
Режим осциллографа
|
|||||||||||||||||||
Ну и напоследок: Сейчас времени на хобби нехватает и работа над приборчиком временно приостановлена. Как будут еще продвижения - сообщу.
|