Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выбор, подборка ПЛИС под задачу
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Andrew34
Салют!)
Помогите мне в следующей задаче: мне необходимо, гененрировать
4 крутых импульса:
первые 3 с длительностями до 100 мкС и фронтами от 3 до 10 мкс, а 4ый с
длительностью 100 - 200 мкс с фронтом от 10 до 100 нс...
Плюс ко всему этому необходимо как-то сделать произвольную перестраиваемость
внутри этих временных диапазонах по желанию юзера...
Соответственно у меня 2 вопроса:
Во-первых = что выбрать, для такой малой длительности , можно ли это реализовать
на плис EPM7064s (до этого я работал только с AVR, опыта с плис вообще НИКАКОГО).
Если например использовать кварц.генератор на 150 МГц (6,7 нс) то вроде подходит...
Однако смогу ли я в дальнейшем аккуратно играться таймерами чтобы перестраивать
временные задержки с точностью хотябы до 50 нс??? И понадобится для этого контроллер
для управления плис?

Во-вторых = каким образом можно регулировать задержки, подскажите каким образом
мне надо будет играть таймерами, хотябы направление работы подскажите...

Буду благодарен всем ответам, в том числе ссылкам где можно достать полезную для
этой задачи инфу!)
Maverick
Цитата(Andrew34 @ Sep 20 2010, 17:30) *
Салют!)
Помогите мне в следующей задаче: мне необходимо, гененрировать
4 крутых импульса:
первые 3 с длительностями до 100 мкС и фронтами от 3 до 10 мкс, а 4ый с
длительностью 100 - 200 мкс с фронтом от 10 до 100 нс...
Плюс ко всему этому необходимо как-то сделать произвольную перестраиваемость
внутри этих временных диапазонах по желанию юзера...

Буду благодарен всем ответам, в том числе ссылкам где можно достать полезную для
этой задачи инфу!)

сделать формирование импульсов различной длительности на ПЛИС не вопрос, а вот сделать фронты у импульса на ПЛИС не возможно (на сколько я знаю)

Цитата(Andrew34 @ Sep 20 2010, 17:30) *
Во-первых = что выбрать, для такой малой длительности , можно ли это реализовать
на плис EPM7064s (до этого я работал только с AVR, опыта с плис вообще НИКАКОГО).
Если например использовать кварц.генератор на 150 МГц (6,7 нс) то вроде подходит...
Однако смогу ли я в дальнейшем аккуратно играться таймерами чтобы перестраивать
временные задержки с точностью хотя бы до 50 нс??? И понадобится для этого контроллер
для управления плис?

Во-вторых = каким образом можно регулировать задержки, подскажите каким образом
мне надо будет играть таймерами, хотя бы направление работы подскажите...

Буду благодарен всем ответам, в том числе ссылкам где можно достать полезную для
этой задачи инфу!)

Для начала почитать литературу про ПЛИС, которая которая находиться в шапке данной ветки
А эту книгу обязательно!
Andrew34
Извини, но я не понял, что значит "сделать фронты у импульса на ПЛИС не возможно " ведь
не может же плис сделать мгновенный скачок?
И еще, каким образом можно было бы задавать длительности между импульсами, длительность
их самих? Как-то через клавиатуру (динамич опрос)? Или подсадить микрокнтроллер и дёргать им
Плис???
toweroff
Цитата(Andrew34 @ Sep 20 2010, 21:24) *
Извини, но я не понял, что значит "сделать фронты у импульса на ПЛИС не возможно " ведь
не может же плис сделать мгновенный скачок?
И еще, каким образом можно было бы задавать длительности между импульсами, длительность
их самих? Как-то через клавиатуру (динамич опрос)? Или подсадить микрокнтроллер и дёргать им
Плис???

nastraivat' PLIS po dlitel'nosti ne problema, menyaem schet i vse
a vot fronty u EPM7xxx mozhno izmentit' tol'ko pri proshivke, vystavlyaa "slow_slew_rate" dlya konkretnyh pinov
muravei
Цитата(Andrew34 @ Sep 20 2010, 21:24) *
И еще, каким образом можно было бы задавать длительности между импульсами, длительность
их самих? Как-то через клавиатуру (динамич опрос)? Или подсадить микрокнтроллер и дёргать им
Плис???

Регистр, счетчик и компаратор. Микроконтроллером "дергать" регистр "унутре" плиса.
toweroff
Цитата(muravei @ Sep 20 2010, 21:58) *
Регистр, счетчик и компаратор. Микроконтроллером "дергать" регистр "унутре" плиса.

nu "komparator" skoree k analogovym shemam smile.gif
prosto REG ^ REG_MAX == 0
REG schetchik, REG_MAX - kuda pishet kontroller
muravei
Цитата(toweroff @ Sep 20 2010, 22:03) *
nu "komparator" skoree k analogovym shemam smile.gif

Подеремся? smile.gif
Логический компаратор-схема сравнения. например
Andrew34
Блин ребята, я как на уроке китайского...%)
Вы наверное не представляете НАСКОЛЬКО я новичок

1= Maverick - я скачал Уэйкерли, там довольно большой разброс в инфе, советуете прочитать
от корки до корки или ...?
Про шапку ветки вы имели ввиду 2 книги на английском, но мой аглицкий не настолько хорош
чтобы их осилить ;(

2= "nastraivat' PLIS po dlitel'nosti ne problema, menyaem schet i vse" -

т.е. реализовать импульсы с длительностями 200-550мкс и интерактивно играться с этими
длительностями с некоторой точностью (с некторым шагом изменения по времени, например
10 мкс) посредством НАПРИМЕР контроллера+клавиатуры (по нажатию соотвествующ. кнопок,
контроллер будет дёргать плис) ВОЗМОЖНО ? (Хотя я пока себе это смутно представляю,
с архитектурой ПЛИС я пока не на ты)

3= a vot fronty u EPM7xxx mozhno izmentit' tol'ko pri proshivke,
vystavlyaa "slow_slew_rate" dlya konkretnyh pinov

Теперь о фронтах. Я так понял
вы имеете ввиду что нельзя интерактивно играться длительностью фронтов
(т.е. как зашили такой и будет фронт). Что значит выставляя "slow_slew_rate"
что это за среда разработки для плис (урок китайского продолжается!)?
Дайте ПОЖАЛУЙСТА наводку: ссылки на интернет-ресурсы,на книги,
просто названия книг...
и что значит для конкретных пинов, т.е. именно с ЭТИХ пинов будет фронт соответсв.
длительности?

4= о каком компараторе идёт речь? о периферии микроконтроллера? Извините, честно говоря,
пока я и не соображу зачем он ВООБЩЕ нужен?
toweroff - извините, но без знаний я не понимаю что значит:
"prosto REG ^ REG_MAX == 0
REG schetchik, REG_MAX - kuda pishet kontroller " подскажите где можно поискать инфу чтоб
задавать вам не такие зелёные вопросы и говорить на одном языке

И контрольный вопрос в голову: на чём это можно сделать ?
Плис EPM7064s + кварц.генератор 150 МГц + ну и например Мега16?0 МГц + ну и напр Мега16?
VladimirB
Цитата(Andrew34 @ Sep 20 2010, 23:05) *
И контрольный вопрос в голову: на чём это можно сделать ?
Плис EPM7064s + кварц.генератор 150 МГц + ну и например Мега16?0 МГц + ну и напр Мега16?

Сомнительно, что EPM7064s на 150МГц заработает.
Но если частоту раза в два поменьше взять, то можно и на ней - проще некуда.
toweroff
Цитата(muravei @ Sep 20 2010, 22:26) *
Подеремся? smile.gif

i ne sobiraus' smile.gif kogda-to eto nazyvali "shema sravneniya" ili chto-to tipa togo smile.gif
tol'ko zachem nam <, <=, >, >=, kogda edinstvennaya nuzhnaya funkciya vyrozhdaetsya v prostoy XOR?

Цитата(VladimirB @ Sep 21 2010, 00:09) *
Сомнительно, что EPM7064s на 150МГц заработает.

posmotrite datasheet
EPM7064S - fCNT (MHz) 175.4
BarsMonster
ИМХО, задача отлично решается на микроконтроллере, без плис.
Импульсы нужной ширины отмерить на МК не проблема, так?

Каждый из 4-х импульсов пропускаем через буффер, дальше резистор Омм так на 100, и к каждому выходу - мелкими полевиками/аналоговыми мультиплексорами/демультиплексорами подключаем конденсаторы. Полевиками управляем с МК. Номиналы кондеров подбираем с осцилографом.

Подобную схему пришлось бы делать и на ПЛИС.
toweroff
Цитата(BarsMonster @ Sep 21 2010, 01:54) *
ИМХО, задача отлично решается на микроконтроллере, без плис.
Импульсы нужной ширины отмерить на МК не проблема, так?

Каждый из 4-х импульсов пропускаем через буффер, дальше резистор Омм так на 100, и к каждому выходу - мелкими полевиками/аналоговыми мультиплексорами/демультиплексорами подключаем конденсаторы. Полевиками управляем с МК. Номиналы кондеров подбираем с осцилографом.

Подобную схему пришлось бы делать и на ПЛИС.

topicstarter ne ukazal - dolzhny li menyat'sa fronty programmno... a tak ono koneshno smile.gif
vopros v tom - chto predpochtitel'ney? mozhet MCU zanyat?
rezident
toweroff, уважайте других пользователей, которым приходится ломать глаза и мозг для обратной транслитерации ваших сообщений. Воспользуйтесь, пожалуйста, он-лайн сервисом translit.ru.
Andrew34
Цитата(BarsMonster @ Sep 21 2010, 00:54) *
ИМХО, задача отлично решается на микроконтроллере, без плис.
Импульсы нужной ширины отмерить на МК не проблема, так?

Каждый из 4-х импульсов пропускаем через буффер, дальше резистор Омм так на 100, и к каждому выходу - мелкими полевиками/аналоговыми мультиплексорами/демультиплексорами подключаем конденсаторы. Полевиками управляем с МК. Номиналы кондеров подбираем с осцилографом.

Подобную схему пришлось бы делать и на ПЛИС.


Привет BarsMonster!)
ИМХО - это проблема! На каком легкодоступном контроллере можно сварганить длительности импульсов и задержек в 100-500 мкс и + сделать оч короткие фронты 10-100 нс ?
По поводу " пропускаем через буффер, дальше резистор Омм так на 100, и к каждому выходу - мелкими полевиками/аналоговыми мультиплексорами/демультиплексорами подключаем конденсаторы. Полевиками управляем с МК. Номиналы кондеров подбираем с осцилографом" не могли бы привести схему, или ссылку, а то не пойму как эта обвязка работает

Цитата(toweroff @ Sep 21 2010, 01:22) *
topicstarter ne ukazal - dolzhny li menyat'sa fronty programmno... a tak ono koneshno smile.gif
vopros v tom - chto predpochtitel'ney? mozhet MCU zanyat?

topicstarter считает что предпочтительней то - что легче реализовать...
По поводу фронтов: если для 4х импульсов сделать фиксированными фронты (первые 3 по 1-10мкс, а 4й 10-100 нс) то этого будет достаточно...
Нужно будет лишь играться длительностью импульсов и задержками между ними... не знаю тольк посредством чего..

По поводу МСU, ну от него нужно сперва отследить раскрутку зеркала до 30 тыс. оборотов, откл. двигатель, а потом пуститть 4 импульса
XVR
Цитата
По поводу фронтов: если для 4х импульсов сделать фиксированными фронты (первые 3 по 1-10мкс, а 4й 10-100 нс)
Так все таки 'фиксированные' или 'от 1 до 10мкс'? Если длину фронтов не надо динамически менять, то можно с выхода ПЛИС генерить обычные импульсы (цифровые), и делать нужную длину снаружи RC цепочками

А начинать нужно со среды разработки - Quartus для Alter'ы или WebPACK ISE для Xilinx
Скачиваете, устанавливаете, берете примеры и изучаете
des00
Цитата(XVR @ Sep 21 2010, 01:41) *
Так все таки 'фиксированные' или 'от 1 до 10мкс'? Если длину фронтов не надо динамически менять, то можно с выхода ПЛИС генерить обычные импульсы (цифровые), и делать нужную длину снаружи RC цепочками

вдруг ему еще нужны сверх линейные фронты, без экспоненциального загиба %)
XVR
Цитата(des00 @ Sep 21 2010, 11:44) *
вдруг ему еще нужны сверх линейные фронты, без экспоненциального загиба %)
Тогда ему сюда - http://www.zakatigubu.com/index.php
или сюда - http://sport.infotree.ru/index.php?m=descr...iew_all_reports
BarsMonster
Цитата(Andrew34 @ Sep 21 2010, 06:49) *
Привет BarsMonster!)
ИМХО - это проблема! На каком легкодоступном контроллере можно сварганить длительности импульсов и задержек в 100-500 мкс и + сделать оч короткие фронты 10-100 нс ?

topicstarter считает что предпочтительней то - что легче реализовать...
По поводу фронтов: если для 4х импульсов сделать фиксированными фронты (первые 3 по 1-10мкс, а 4й 10-100 нс) то этого будет достаточно...
Нужно будет лишь играться длительностью импульсов и задержками между ними... не знаю тольк посредством чего..

По поводу МСU, ну от него нужно сперва отследить раскрутку зеркала до 30 тыс. оборотов, откл. двигатель, а потом пуститть 4 импульса


100мкс - это ж черепашья скорость, тут вообще любой МК прокатит с частотой 5-10Мгц и выше, с кварца тактуем и готово.
После скоростного буфера(Обычная 16-и ногая ТТЛ-совместимая микруха последних серий, вроде LVC) у Вас получатся фронты порядка 1нс.
Непосредственно на выводы земли и питания буфера (ну и МК само собой) - обязательно керамика 0.1мкф выводы как можно короче, а то шум по всей плате будет.

Раз менять крутизну фронтов не надо, то все эти полевики/мульиплексоры не понадобятся, просто после буфера резистор последовательно, и конденсатор от выхода резистора до земли, номинал подбираем (10нф и ниже).
toweroff
Цитата(Andrew34 @ Sep 20 2010, 23:05) *
2= "nastraivat' PLIS po dlitel'nosti ne problema, menyaem schet i vse" -

т.е. реализовать импульсы с длительностями 200-550мкс и интерактивно играться с этими
длительностями с некоторой точностью (с некторым шагом изменения по времени, например
10 мкс) посредством НАПРИМЕР контроллера+клавиатуры (по нажатию соотвествующ. кнопок,
контроллер будет дёргать плис) ВОЗМОЖНО ? (Хотя я пока себе это смутно представляю,
с архитектурой ПЛИС я пока не на ты)

в ПЛИС реализован счётчик, считающий (делящий) на некоторое значение. Это значение можно записать в созданный в ПЛИС регистр.
Зная частоту генератора, задаем делитель "на ходу"
По поводу реализации всех этих вещей читаем любой освоябельный xHDL (для Altera - AHDL, VHDL, Verilog - Quartus это все кушает)

Цитата(Andrew34 @ Sep 20 2010, 23:05) *
3= a vot fronty u EPM7xxx mozhno izmentit' tol'ko pri proshivke,
vystavlyaa "slow_slew_rate" dlya konkretnyh pinov

Теперь о фронтах. Я так понял
вы имеете ввиду что нельзя интерактивно играться длительностью фронтов
(т.е. как зашили такой и будет фронт). Что значит выставляя "slow_slew_rate"
что это за среда разработки для плис (урок китайского продолжается!)?
Дайте ПОЖАЛУЙСТА наводку: ссылки на интернет-ресурсы,на книги,
просто названия книг...

Это о Quartus. Там есть такой параметр. Читать - поищите в разделе по ПЛИС, там много раз приводились ссылки на литературу

Цитата(Andrew34 @ Sep 20 2010, 23:05) *
и что значит для конкретных пинов, т.е. именно с ЭТИХ пинов будет фронт соответсв.
длительности?

Именно, для конкретного пина

Цитата(Andrew34 @ Sep 20 2010, 23:05) *
toweroff - извините, но без знаний я не понимаю что значит:
"prosto REG ^ REG_MAX == 0
REG schetchik, REG_MAX - kuda pishet kontroller " подскажите где можно поискать инфу чтоб
задавать вам не такие зелёные вопросы и говорить на одном языке

Это как раз значения текущего состояния счетчика и значения регистра, ограничивающего счет.
Интерфейс связи с МК на первых порах лучше сделать параллельный (A, D, /R (? если надо), /W, /CS)
Если представляете, как устроены счетчики, регистры, дешифраторы, буферы и как как ко всему этому делу иметь доступ через внешнюю шину МК - проблем в освоении ПЛИС вряд ли появится
Andrew34
Чудок легче...Спасибо ВСЕМ!)
Я некорректно сформулировал задачу, упустив существенные детали:
(в скобках будут диапазоны в пределах которых необходимо перестраиваться
с некоторым шагом)

сперва мне необходимо отследить контроллером разгон двигателя до
30тыс.оборотов и затем отключить его.

Далее пауза 200 мкс, и 1ый импульс +12В (20-40 мкс) с фронтом (3-10мкс)

Далее пауза (450-550 мкс), и 2й импульс +12В (20-40 мкс) с фронтом (3-10мкс)

Далее пауза 300 мкс, и 3й импульс +5В (100-200 мкс) с фронтом (1-10мкс)

Далее пауза 200 мкс, и 4ый импульс (20-200 мкс) с фронтом (10-100 нс)

Насколько я понял реализовать на ПЛИС всю эту игру таймерами, не сложно,
надо несколько дней посвятить глубокому изучению...
Однако если существует более простой способ внимательно выслушаю, хотя отсчитывать
мкС/нС надо бы сделать интерактивно в цифре,т.е. сделать внешний вид доступный даже
постороннему юзеру (типа нажимаешь кнопку увеличив/уменьш длительность
импульса/паузы/фронта))
Maverick
Цитата(Andrew34 @ Sep 21 2010, 17:42) *
Чудок легче...Спасибо ВСЕМ!)
Я некорректно сформулировал задачу, упустив существенные детали:
(в скобках будут диапазоны в пределах которых необходимо перестраиваться
с некоторым шагом)

сперва мне необходимо отследить контроллером разгон двигателя до
30тыс.оборотов и затем отключить его.

Далее пауза 200 мкс, и 1ый импульс +12В (20-40 мкс) с фронтом (3-10мкс)

Далее пауза (450-550 мкс), и 2й импульс +12В (20-40 мкс) с фронтом (3-10мкс)

Далее пауза 300 мкс, и 3й импульс +5В (100-200 мкс) с фронтом (1-10мкс)

Далее пауза 200 мкс, и 4ый импульс (20-200 мкс) с фронтом (10-100 нс)

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

все да кроме импульсов уровня +12В; +5В с фронтом (3-10мкс) или с фронтом (1-10мкс) или с фронтом (10-100 нс) - одной ПЛИС нет
В общем:
Сформировать импульсы различной длительности и различной скважности на ПЛИС проблем нет, т.е. логику работы

PS Книгу которую я Вам рекомендовал - полностью, если Вы хотите понять что такое ПЛИС и как с ней работать/программировать
des00
Цитата(Andrew34 @ Sep 21 2010, 08:42) *
(в скобках будут диапазоны в пределах которых необходимо перестраиваться
с некоторым шагом)

попробуйте себе представить схему динамического изменения фронта сигнала? при этом задайте еще требования к характеру этого фронта %)
если нужен линейный фронт, то резистор + кондер не вариант, если мне память не изменяет, генератор хорошей пилы делается на источнике тока + кондер
Andrew34
Цитата(Maverick @ Sep 21 2010, 19:38) *
все да кроме импульсов уровня +12В; +5В с фронтом (3-10мкс) или с фронтом (1-10мкс) или с фронтом (10-100 нс) - одной ПЛИС нет
В общем:
Сформировать импульсы различной длительности и различной скважности на ПЛИС проблем нет, т.е. логику работы

PS Книгу которую я Вам рекомендовал - полностью, если Вы хотите понять что такое ПЛИС и как с ней работать/программировать


Насколько я понимаю динамически играться фронтами на ПЛИС невозможно...
Однако задать хороший фронт в 10-100 нС до следующей прошивки можно...
а для 12В надо какойто усилительн. элемент ставить...
Подправьте если я не прав)
XVR
Цитата(Andrew34 @ Sep 21 2010, 22:41) *
Насколько я понимаю динамически играться фронтами на ПЛИС невозможно...
Вообще невозможно
Цитата
Однако задать хороший фронт в 10-100 нС до следующей прошивки можно...
Нет.
ПЛИС - это чисто цифровое устройство. Она не умеет формировать фронты с заданными параметрами. То, что вам тут рекомендовать slow/fast slew rate вам не подойдет, т.к. собственно скорость нарастания точно не задается, а лишь в терминах быстро/медленно. И предназначенно это не для формирования треугольников, а для уменьшения EMI и звона в проводах.
Вам нужна аналоговая схема для формирования фронтов
Цитата
а для 12В надо какойто усилительн. элемент ставить...
Угу. И просто усилителем не обойдется. Если надо регулировать фронты, то понадобится интегратор (аналоговый), ЦАП и ключи (аналоговые)

Кстати, какой ток в нагрузке?
toweroff
Цитата(XVR @ Sep 21 2010, 23:35) *
То, что вам тут рекомендовать slow/fast slew rate вам не подойдет, т.к. собственно скорость нарастания точно не задается, а лишь в терминах быстро/медленно. И предназначенно это не для формирования треугольников, а для уменьшения EMI и звона в проводах.

я и не рекомендовал, лишь указал, что это возможно сделать, и производится это только при при прошивке и фронты все равно будут, согласно даташиту, +-
Vitaliy_ARM
Всем доброго времени.

Есть задача подключения АЦП 14 бит 160 МГц к ПЛИС, в качестве которой хочу выбрать EP3C25E144C8N. Шина данных - CMOS.
Вопрос, можно ли шину данных цеплять на разные банки плис при такой тактовой? (p.s. нужно ли в разрыв шины ставить низкоомные резисторы?).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.