|
|
  |
выводы при загрузке ПЛИС, Состояние выводов изменяется |
|
|
|
Nov 24 2010, 08:06
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 16-06-09
Пользователь №: 50 327

|
Есть вот такая особенность ПЛИС Фирмы Xilinx Virtex (первый) на 400 вентилей. Во время загрузки (около секунды) состояние на выходах нулевое. НО в последние 70мкс выводы принимают какое-то странное третье состояние 1.5В (логика 0-3.3). Только после этого происходит поднятие сигнала DONE, сигнализирующего, что загрузка завершена. Проблема в следующем: сначала ЦАПы принимают уровень на этих выводах за ноль, а последние 70мкс - за единицу. Соответственно у меня громадных размеров всплеск, и убрать его проблематично: VHDL-код в тот момент ещё не работает и впаять на каждый вход ЦАПа резистор затруднительно ((
Облазил и форум и настройки в ISE Вот доп информация: Внутренний клок (CCLK) равен 4МГц по дефолту, как и всё остальное. Unused IOB pins: Pull Down.
Может кто даст читабельную ссылку по настройкам начального состояния ПЛИС? Есть вариант не запаивать на все 12 входов ЦАПа подтягивающий резистор, а запаять два-три верхних, то вплеск уменьшится 2-4 раза. ЦАПов на плате их аж два, соответственно вместо 24 будет 6-8 резисторов, или будет резисторная матрица. Но может есть вариант получше?
Сообщение отредактировал Дварфик - Nov 24 2010, 08:09
|
|
|
|
|
Nov 24 2010, 08:10
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 16-06-09
Пользователь №: 50 327

|
Цитата(Shtirlits @ Nov 24 2010, 11:07)  Уточните микросхему - интересно, который из виртексов. Первый виртекс. Т.е. без номера поколения
|
|
|
|
|
Nov 24 2010, 09:37
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Кое-что можно попробовать, правда решение для Virtex-II/IIpro. Но мало ли... http://direct.xilinx.com/support/answers/18277.htmQUOTE Insert OBUFEs on the outputs that are transitioning during configuration. Bring the 3-state control signal of the OBUFE to an external I/O pin. Ensure that the system drives this pin Low prior to pulsing the PROG pin Low. Как я понял, природа явления заключается в том, что в выходах активируются PULL-UP резисторы по мере загрузки. А решение неожиданное - на тех выходах, которые глитчат/глючат предлагается сделать tri-state, управляющий сигнал вывести наружу и подключить к ножке PROG на плате. Интересно, этот вывод и его разводка успеет к этому моменту сконфигурироваться? К сожалению, не знаю в каком порядке что загружается.
|
|
|
|
|
Nov 24 2010, 11:45
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 16-06-09
Пользователь №: 50 327

|
Цитата(sazh @ Nov 24 2010, 11:19)  Неужели у Virtex нет внутренних подтягивающих резисторов на vcc i/o в интервале конфигурации и инициализации. В настройках конфигурации загрузки множество всяких пунктов, но они либо не подходят, либо мне непонятны. Описание на них я ещё не нашёл. К сожалению. Большую часть загрузки на выходах чистый ноль (напоминаю загрузка длится больше секунды), а последние 70мкс сигнал подтягивается к единице при этом не 3.2 В а только 1.5 В, что для срабатывания ЦАПа достаточно. И только потом поднимается сигнал DONE и выводы наконец-то становятся нулевыми, как и было запрограмировано на VHDL. Цитата(Shtirlits @ Nov 24 2010, 12:37)  Кое-что можно попробовать, правда решение для Virtex-II/IIpro. Но мало ли... Вариант интересный, обязательно проверю. А пока что нашёл только "железный" способ. На плате есть злая собака -- Watch Dog, он срабатывает через 200мкс после подачи питания. Возможно, мне удастся с помощью его заткнуть ЦАП.
|
|
|
|
|
Nov 24 2010, 13:32
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 6-07-06
Из: Санкт-Петербург
Пользователь №: 18 635

|
А какие у Вас уровни на контактах M2, M1 и M0 ?
|
|
|
|
|
Nov 25 2010, 10:07
|
Участник

Группа: Участник
Сообщений: 51
Регистрация: 16-06-09
Пользователь №: 50 327

|
Цитата(sazh @ Nov 24 2010, 15:37)  Не может там быть нуля. Это наверно неподтянутое z состояние. Непонятно на что цап реагирует, если клок на него плисом после конфигурации выдается. Повторюсь. У Цапа clr должен быть. На него можно подать "служебный" сигнал окончания конфигурации плис. Выход ПЛИС сначала подтянут на ноль, потом подтягивается к единице. Соответственно появляются странные напряжения, потипу 0.3В или 1.5В. Занулить ЦАП в моём случае можно, но сложно. ЦАП не простой, используется связка ЦАП-ДЗУ. M0 M1 M2 в нуле, соответственно не в этом дело. По даташиту Configuration Pull-ups = NO Цитата(Shtirlits @ Nov 24 2010, 12:37)  1.5V получается скорее всего из-за подтяжки слабыми PULL-UP-ами, а чтобы 3.2V сделать у них силы не хватает. Если это так, то подтяжка к земле может решить проблему и не создать новую.
А решение неожиданное - на тех выходах, которые глитчат/глючат предлагается сделать tri-state, управляющий сигнал вывести наружу и подключить к ножке PROG на плате. Догадка правильная: в ПЛИС подтягивающий резистор равен 50 КОм, входной ток у ЦАП 100мкА, по закону Ома будет потеря до 1.6В. Как и было измеряно. ДАННОЕ РЕШЕНИЕ ПОЛНОСТЬЮ РАБОТАЕТ. И в моём случае даже желательнее. Иначе мне пришлось бы использовать и логику и ДЗУ и вотч дог. Благодарю всех участников темы, особенно Shtirlits за проявленный интерес и нахождение "красивого" решения ))
Сообщение отредактировал Дварфик - Nov 25 2010, 10:15
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|