Свежие обсуждения
Прочее

Осциллограф-приставка к ПК

1 8
Недавно проникся идеей изготовления, и сейчас этим по мере возможностей занимаюсь. Пока - на стадии выбора концепции/компонентов. Требования примерно такие: разрядность АЦП 8-10бит (включая знак), не менее 5 MSPS, 1 канал, стоимость < 1Крубля.

На данный момент вырисовывается вот такая ситуевина:
АЦП - никак не определюсь с выбором. Вроде есть неплохие от AD (например, AD9050, AD9057, AD9281), но для 5-10 MSPS они избыточны, и потому изрядно портят стоимость всего девайса. Если кто-знает что-то более подходящее и легко доставаемое в Москве в розницу - подскажите.

Передача данных на ПК - выборками по несколько тысяч сэмплов, т.е. пропускная способность интерфейса не критична. Размер выборок - где-то до 32-128КБ (разумеется, потребуется ОЗУ на самом осциллографе). Интерфейс - скорее всего RS-232.

Организация записи сэмплов с АЦП в ОЗУ - вот где порылась собака. С одной стороны, все просто - по сигналу синхронизации АЦП происходит инкремент адреса ОЗУ, и туда пишется байт. Как это реализовать без особого изврата - вопрос. Идеально подошли бы микросхемы FIFO, но они по сравнению с обычной ОЗУ слишком дорогие. Остается прилепить к ОЗУ сколько-то-там-разрядный счетчик (16 разрядов = 64КБ, и т.д.). Быстродействие (точнее, задержка распространения от счетного входа до выхода старшего разряда) весьма критично, желательно не более 50нс. Увы, я таких счетчиков в виде одного корпуса не нашел. Есть вариант сварганить на ПЛИС, но опять таки это попортит цену изделия (а слишком большая цена ставит под вопрос целесообразность изготовления - проще купить готовый).

Само ОЗУ - вероятно, потянет 62ххх (62256 etc.) Если нет, тогда что-нибудь от Cypress.

Софт на ПК - по идее, самая простая часть проекта.

В общем, интересны рацпредложения по всем пунктам.

 
У меня тут родилось несколько "безумных" идей.

Идея 1.
Для сканирования ОЗУ используем не только контроллер относительно старенькой видеокарты, но и ее штатное ОЗУ, у которого отрываем от схемы линии данных. Чтобы иметь возможность считывать эти данные, придется в разрыв городить какой-нибудь мультиплексор.
Современные ОСи позволяют, вроде бы, устанавливать в компьютер одновременно две видюхи.
Вот только не знаю, можно ли настроить контроллер на отображение строки длиной в 32 килоточки.

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

Идея 3 (дальнейшее развитие).
А так ли уж важны непрерывные выборки длиной 32 килослов и более? Может хватит длины, например, 320 (640, 800)? Или несколько раз по 320?
Тогда отдельным устройством формируем синхросмесь и замешиваем туда исследуемый сигнал, а далее цифруем по видеовходу.

 
Идея 1 - Брррр... Ужас

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

Но у меня идея-фикс: сделать внешний девайс из доступных компонентов, с хорошей повторяемостью. Иначе - не интересно. Причем 5-10 MSPS - это для начала, вполне реально поднять до 40 (хотя бы).

По поводу размера выборок: кроме очевидных преимуществ [надеюсь, очевидные преимущества очевидны? ], это дает больше возможностей для частотного анализа (БПФ).

На выбор АПЦ пока забил, тем более что AD9057 уже имеется. Реальная заморочка - процесс заполнения ОЗУ. Точнее, счетчик. На стандартной мелкой логике ТТЛ получается куча корпусов, у КМОП (а-ля К561) явно не хватит быстродействия (хотя есть счетчики до 14 двоичных разрядов). Пока склоняюсь все-таки к ПЛИС (например, EPM7032). Если не обнаружится лучших вариантов...

 
Загляните на http://www.velleman.be/ там, кроме продажи есть и схемы и шаривари проги. Сам не занимался, но соседи по этажу уже печатки разводят.  
А подо что конкретно разводят? Можно указующим перстом (только не средним), если не сложно?  
DVM, по быстродействующим счетчикам.
Не особо слежу (даже совсем не слежу) за новинками элементной базы, но помнится, что быстродействие сдвиговых регистров гораздо выше счетчиков с таким же количеством разрядов.

А ведь на сдвиговом регистре (и сумматоре по мод.2) можно сделать быстродействующий счетчик, точнее, не счетчик в привычном понимании, а переборщик всех (кроме запрещенных) кодовых комбинаций. Какая нам разница -- перебирать адреса в строгом порядке или псевдослучайно?

Я имею в виду генераторы М-последовательностей.
Для нас важно, чтобы у регистра сдвига каждый разряд имел бы свой выход. Из "классики" всплывает 155ИР13. Для установки в "отправную" точку удобно использовать сигнал сброса, а чтобы комбинация 0000 не являлась запрещенной, сумматор по мод.2 должен быть с инверсией по выходу (тогда запр. комбинация -- 1111).

 
Так проблемы с быстродействием счетчиков нет, есть проблема с количеством корпусов. Например, на 4-х 74AC161 (функциональный аналог 555ИЕ10, но быстродействие на порядок выше) можно реализовать 16-разрядный счетчик с задержкой распространения от счетного входа до выхода старшего разряда не более 15нс (это если я правильно подсчитал). Но с соответвующими последствиями для размера ПП и сложности трассировки... Похоже, более подходящих микросхем "мелкой" лигики нет (я спрашивал не только на этом форуме). Буду покупать ПЛИС, софт под это дело уже закачал. В идеале весь осцил можно сделать на 5 МС - АЦП, ОЗУ, ПЛИС, МК и преобразователь уровней для RS-232.  
To IDiod: Для нас важно, чтобы у регистра сдвига каждый разряд имел бы свой выход. В общем случае верно. Но чем длиннее регистр, тем больше у него библиотека образующих полиномов, а среди них можно найти с минимальным числом единиц, т.е. выходов триггеров. Например, для n=11 существует 100000000101. По ссылке Velleman - я ее взял у ребят, точно знаю, что под одну из схем они собирали комплектацию, делали печатку, сильно увлеклись именно процессом изготовления ПП, потом им дали по рукам за непрофильную деятельность, потом у них появились карманные осциллографы, короче, все заглохло...  
Mastak, наличие ВСЕХ выходов нужно не для генерации последовательности (достаточно и 2-х, в "правильных" точках), а для съема кодовой комбинации -- адреса для ОЗУ.

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

Интересно, на чем DVM сделал бы прочую обвеску, если бы нашел подходящий счетчик? Все равно, пришлось бы ставить логику.

DVM, а не смущает низкая скорость RS-232?

 
У счетчиков, при их каскадном включении по цепям переноса, времена задержек распространения будут складываться
Если счетчики не синхронные.