Свежие обсуждения
Измерения

Осц.-пр. к ПК версия 2 (упрощенная)

1 8 44

>Ну для начала зачем больше 4 кило? На экране все равно все не влезет. Конечно если не делать экранную лупу.

1) Можно просматривать выборку, пользуясь горизонтальной прокруткой. Примерно так, как сделано в большинстве звуковых редакторов.

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

3) Как следствие, высокая частота дискретизации + большое ОЗУ = возможность наблюдать несколько периодов низкочастотного сигнала, содержащего ВЧ составляющую.

>Потом при использовании FIFO вся память занимает один корпус ~24 вывода. А при использовании SRAM?

Сама память тоже 1 корпус + ПЛИС 1 корпус. Даже если ставить FIFO, ПЛИС не помешает как замена нескольких корпусов мелкой логики. Так что "по корпусам" FIFO выигрыша не дает, хотя существенно уменьшается сложность разработки.

 

1) Если делать горизонтальную прокрутку на ХХХ кило.... То скока это будет передаваться на комп? Сколько раз в сек. обновлятся? На основе чего Вы собираетесь делать приставку (ком или усб)?

2) Тут согласен.

3) Тоже.

Но все же чем меньше "наукоемких" деталей применять, тем легче настроить, повторить, модернизировать.

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

 

>То скока это будет передаваться на комп?

С этим я уже наигрался на макете, через COM-порт 32КБ перекачиваются примерно 4 сек.

Когда требуется высокая скорость обновления -- передавать лишь часть содержимого ОЗУ (это кстати реализовано в моей приставке на ATMega8515/AD9281, хотя там ОЗУ смешного размера).
Иногда предпочтительнее вдумчивое изучение многокилобайтной выборки

Вообще наблюдать быстро обновляемую осциллограмму можно лишь при наличии схемы запуска (синхронизации), желательно с регулируемым порогом и наклоном (запуск по нарастанию/спаду). Делать ее аппаратно довольно муторно, а если программно на компьютере - часть полученных данных используется лишь для определения момента начала развертки и не отображается на экране. Это еще одна причина, по которой размер выборки по возможности должен быть больше, чем ширина экрана в пикселях.

>На основе чего Вы собираетесь делать приставку (ком или усб)?

Для отладки COM, потом можно прикрутить что-то типа FT232.

>Но все же чем меньше "наукоемких" деталей применять, тем легче настроить, повторить, модернизировать.

Насчет модернизировать это вряд ли, прошивку ПЛИС поменять куда проще, чем перепаивать кучу корпусов и переделывать разводку. В остальном кому как, я отговаривать/уговоривать никого не собираюсь Напротив, интересно узнать мнения других.

 

Делать ее аппаратно довольно муторно

??? Один компаратор + обвеска. (Как в каком-то радио, в статье одноименной с тредом )

Кстати, вы не думали о применении готовых модулей памяти для ПК?

 

>??? Один компаратор + обвеска.

Ну, гладко было на бумаге
Неполный список задач, которые придется так или иначе решать:
* Программная регулировка порога (нужен ЦАП).
* Программный выбор наклона (запуск по нарастанию или спаду).
* Малая задержка между "обнаружением" заданного уровня на входе и запуском оцифровки.
* Задержку, по хорошему, тоже не помешает программно регулировать -- это дает возможность как бы "прокручивать" осциллограмму.
* Все это хозяйство надо разместить и развести на плате.

Только кажется мне, ничего хорошего не выйдет. В смысле, проект умрет в зародыше из-за распыления сил на подобные примочки. Можно конечно упростить схему, отказавшись от некоторых возможностей (скажем, от программного управления), если это по каким-то соображаниям приемлимо. Но, по-моему, полностью программная реализация в любом случае на порядок проще.

>(Как в каком-то радио, в статье одноименной с тредом )

Если подразумевается "Двухканальная осциллографическая приставка к ПК", так это игрушка, или наглядное пособие для изучения принципа работы АЦП. И синхронизация там "игрушечная".

Кстати, вы не думали о применении готовых модулей памяти для ПК?

Если только кэш ковырять со старых материнок (быстродействующая SRAM). А модули DRAM, ну нафиг. Это надо контроллер DRAM ставить, разводку вылизывать до посинения. И так проблем хватит

 

Неполный список задач, которые придется так или иначе решать:
* Программная регулировка порога (нужен ЦАП).

Во многих МК уже е... (В смысле ЦАП)
С другой стороны некоторые органы управления удобней оставить все же на передней панели устройства. Кста, все органы управления налдо продумать, чтоб не наделать лишнего. Есть идея валкодер+микрокнопки+светодиоды(режим и т.д)+ЖКИ(?)

* Программный выбор наклона (запуск по нарастанию или спаду).
Аналогично тому, как сделано в "Осц. пр. к ПК". Не так там уж и плохо. Я думаю принципиально другого не придумали пока.

* Малая задержка между "обнаружением" заданного уровня на входе и запуском оцифровки.
Можно "циклически" писать, а при приходе синхроимпульса просто дописывать некоторое кол-во выборок. Получится, что можно будет "заглянуть" за синхроимпульс.
А можно по синхроимпульсу "разрешать" запись в память (при постоянной работе АЦП). А т.к. АЦП имеют задержку на несколько тактов, получаем "выигрыш" по времени.

* Задержку, по хорошему, тоже не помешает программно регулировать -- это дает возможность как бы "прокручивать" осциллограмму.
Это уже можно в программе реализовать.

* Все это хозяйство надо разместить и развести на плате.
Да уж...

Кстати тактировать это все можно, наверно, DDSом.. А то и двумя, при внутренней синхронизации.

 

>Во многих МК уже е... (В смысле ЦАП)

Обычно не ЦАП в чистом виде, а модуль ШИМ. Его конечно можно использовать как ЦАП (прикрутив ФНЧ).

Насчет синхронизации, к чему я клоню: аппаратная реализация это не только компаратор (датчик) , надо рассматривать всю систему.

>>* Задержку, по хорошему, тоже не помешает программно регулировать -- это дает возможность как бы "прокручивать" осциллограмму.
>Это уже можно в программе реализовать.

По сути получится обычная прокрутка. Смысл аппаратной задержки в том, что память используется полностью, т.к. ее заполнение начинается по истечении заданного интервала после синхроимпульса. А это оправдано лишь при малом объеме ОЗУ, imho.

 

Вот тут подумал (спасибо IDiod с его темой "Детям до 16..."). Можно ПЛИС и МК заменить одной микросхемой PSoC. Сегодня наконец таки докачал PSoC Designer, поковырял. Интерестно. Очень даже. Только не очень догнал, как свои блоки создавать? Или только "заводские" использовать можно.

 

"Модули пользователя" предполагается использовать уже готовые.

Создавать самим можно, но трудно (это нигде не описано, но можно поковырять готовые и все делать по аналогии). Например, недавно был разработан и выложен для скачивания приемопередатчик для 1-wire.

Вряд ли удастся придумать еще что-то принципиально новое (в рамках того, что в PSoCе можно реализовать).

Потенциал предлагаемых модулей несколько выше, чем кажется -- многие возможности реализуются на уровне программирования конкретных регистров PSoC (для этого надо читать datasheet).

Пример: у модуля CMPPRG(компаратор) сигнал с выводов микросхемы на инвертирующий вход завести нельзя. Но "посадочное место", в принципе, позволяет это сделать. Решение: размещаем CMPPRG со всеми нужными связями, а подключение инвертирующего входа организуем программно -- записью в соответствующий конфигурационный регистр.

А можно вообще не пользоваться модулями, а конфигурировать все с помощью регистров. Это до того круто, что так никто не делает.

 

Жаль, что все умерли...
Можно было бы поставить три АВРа, и получился бы пристойный осцил...