сформировать управляющее воздействие

Обсуждаем цифровые устройства...
Ответить
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Сообщение Open »

Добрый день! Понадобилось мне сформировать управляющее воздействие (цифровое 1-0) для оптимального управление пьезоэлементом. Элемент этот работает на частоте 2.2 - 2.6 мгц. Управляющее воздействие должно быть логического уровня. Смена с 1 на ноль за все время управления ограничивается 16 переключениями. Дискретность переключения по времени должна быть порядка 20нс. Микроконтроллер (я планирую использовать STM32F100 - 24МГц для непосредственной генерации явно не хватает, а ставить более мощные сильно накладно) играет роль программирования некого девайса, "плеера последовательности".
Подскажите, есть ли элегантное решение?
Внешний кварц допустим.
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Что вы имеете в виду под
Дискретность переключения по времени должна быть порядка 20нс.
Изменение частоты/периода с шагом 20нс? Если да, то вам нужен чип DDS.
Реклама
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Сообщение SmarTrunk »

Известные мне микросхемы DDS же делают синус. Ну еще треугольник и меандр. Если некая произвольная последовательность нулей и единиц, то можно на ПЛИС (если МК не справляется). Что автор имеет в виду под "длительностью переключения", не ясно - время между переключениями или длительность фронта.
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Прямоугольник из синуса сделать большого ума не надо. А вот обратно фарш прокрутить там да, что-то уметь и соображать надо.
Реклама
Эиком - электронные компоненты и радиодетали
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Сообщение Open »

В общем, мне надо сформировать меандр (2.5мгц+\-) на несколько периодов. но это не совсем меандр - время переключения конкретного фронта из 0 в 1 и наоборот может плавать (с дискретностью в 20 нс).
иначе говоря надо примерно это:
Изображение
Плис конечно хорошо, но для этой цели накладно :) Ибо дешевые чипы не пойдут - в них последовательность придется зашивать намертво, либо городить внешнюю память.
А вот DDS выглядит заманчиво - в конце концов аналоговое задающее воздействие всегда гибче.
Сейчас прогуглю!
Последний раз редактировалось Open Вс авг 03, 2014 08:58:24, всего редактировалось 1 раз.
Реклама
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Сообщение Open »

Идеально подошло бы что нибудь функционально вроде этого с последовательным интерфейсом программирования памяти.
Изображение
На худой конец можно обойтись однобитной памятью без ЦАП (первоначальный вариант)
Реклама
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

То что есть на рисунке называется широтно-импульсная модуляция.
Для получения дискретности установки ширины импульсов в 20нс необходимо иметь тактовый генератор не менее 50МГц.
Помнится у микроконтроллеров TMS320 были какие-то хитрые таймеры, позволяющие регулировать ширину импульсов до наносекундного диапазона.
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Сообщение Open »

uk8amk писал(а):То что есть на рисунке называется широтно-импульсная модуляция.
да ладно, оно просто похоже. Там нет постоянства периода. Таймеры надо перепрограммировать каждый раз на лету. А скорости такие, что даже МК с >100МГц в диаграмму не попадет. Другое дело, что можно задействовать DMA (программно в цикле в порт писать так быстро не выйдет) , но опять же частота шины периферии должна быть более либо равной 50МГц. Как правило это МК с частотой от 100 МГц. На такую задачу немного избыточно :) Вот если б его кроме этого достойной работой нагрузить - тогда дело другое.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 960
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда

Сообщение GARMIN »

Интересно, какой длины нужна последовательность? Думаю, простой CPLD можно обойтись легко.
И второе - чем и как будете загружать управляющее воздействие? Есть ли МК, с каким интерфейсом, в каком формате?
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 30
Зарегистрирован: Пн авг 19, 2013 13:50:49

Сообщение Open »

ну, если использовать CPLD то формат может быть любым. Естественно, это будет последовательный интерфейс. UART вполне достаточно. Последовательность будет достаточно короткой - порядка 8 импульсов. т.е. ресурса плисины должно хватать на 1 счетчик(либо же 16, если в искомой реализации плис нету драйверов 3го состояния в достаточном количестве) + 16 регистров для хранения задержек (8 бит вполне хватит, а скорее даже 6) + сдвиговый регистр на интерфейс + регистр хранения адреса (номер счетчика в который грузить) + немного контрольной логики.

в крайнем случае можно отказаться от регистров и загружать счетчики каждый раз перед проигрыванием последовательности, благо она активируется не так уж и часто. Однако это нежелательно.

Что же, похоже CPLD подойдет. Вначале я отмел этот вариант из за неправильной предпосылки, что к плис придется паять память и задавать последовательность таблично на каждые 20 ns.

в этом случае получится память порядка 256 бит + система адресации тоже неплохо отъест ресурса.

Какая плис подойдет под такие требования? Понятное дело: 50МГц не обсуждается:)
CPLD не занимался, поэтому имею слабое представление о логических емкостях их блоков.

Посмотрел CPLD от Xilinx - xc9500 вообще никто уже не продает, а кулранер еле еле... как то стремно на них завязываться - завтра вообще не сыщешь :) а с альтерой не работал вообще
Держит паяльник хвостом
Аватара пользователя
Сообщения: 960
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда

Сообщение GARMIN »

Количество логических элементов 16 * 8 бит память, 20 LUT UART, 8 счётчик и 20-50 управление. Итого 206.
EPM240 может хватить, если будет мало, то EPM570 от Altera. Это дешёвая серия MAX II. Внешний генератор 50 или 100 МГЦ. Питание 3,3В. Можно использовать плату от Марсохода: http://marsohod.org/index.php/howtostart/plata
Контактная информация:
Ответить

Вернуться в «Цифровая техника»