Перейти к содержанию
    

выводы при загрузке ПЛИС

Есть вот такая особенность ПЛИС Фирмы 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 резисторов, или будет резисторная матрица. Но может есть вариант получше?

Изменено пользователем Дварфик

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уточните микросхему - интересно, который из виртексов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уточните микросхему - интересно, который из виртексов.

Первый виртекс. Т.е. без номера поколения

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть вот такая особенность ПЛИС Фирмы Xilinx Virtex (первый) на 400 вентилей.

 

Неужели у Virtex нет внутренних подтягивающих резисторов на vcc i/o в интервале конфигурации и инициализации.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 Дварфик

А вы запаяйте подтягивающие резисторы на землю. pull-down.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема в следующем: сначала ЦАПы принимают уровень на этих выводах за ноль, а последние 70мкс - за единицу. Соответственно у меня громадных размеров всплеск, и убрать его проблематично: VHDL-код в тот момент ещё не работает и впаять на каждый вход ЦАПа резистор затруднительно ((

 

Обычно у цапов есть вход, устанавливающий регистры цапа или в 0 или в середину шкалы.

Сигнал, отвечающий за интервал конфигурации плиса туда просится. А в регистрах плиса по включению - прописать теже значения.

Всплеска не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кое-что можно попробовать, правда решение для Virtex-II/IIpro. Но мало ли...

 

http://direct.xilinx.com/support/answers/18277.htm

 

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 на плате.

 

Интересно, этот вывод и его разводка успеет к этому моменту сконфигурироваться?

К сожалению, не знаю в каком порядке что загружается.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели у Virtex нет внутренних подтягивающих резисторов на vcc i/o в интервале конфигурации и инициализации.

В настройках конфигурации загрузки множество всяких пунктов, но они либо не подходят, либо мне непонятны. Описание на них я ещё не нашёл.

К сожалению.

Большую часть загрузки на выходах чистый ноль (напоминаю загрузка длится больше секунды), а последние 70мкс сигнал подтягивается к единице при этом не 3.2 В а только 1.5 В, что для срабатывания ЦАПа достаточно. И только потом поднимается сигнал DONE и выводы наконец-то становятся нулевыми, как и было запрограмировано на VHDL.

 

 

Кое-что можно попробовать, правда решение для Virtex-II/IIpro. Но мало ли...

Вариант интересный, обязательно проверю. А пока что нашёл только "железный" способ. На плате есть злая собака -- Watch Dog, он срабатывает через 200мкс после подачи питания. Возможно, мне удастся с помощью его заткнуть ЦАП.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1.5V получается скорее всего из-за подтяжки слабыми PULL-UP-ами, а чтобы 3.2V сделать у них силы не хватает.

Если это так, то подтяжка к земле может решить проблему и не создать новую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большую часть загрузки на выходах чистый ноль (напоминаю загрузка длится больше секунды), а последние 70мкс сигнал подтягивается к единице при этом не 3.2 В а только 1.5 В, что для срабатывания ЦАПа достаточно.

 

Не может там быть нуля. Это наверно неподтянутое z состояние.

Непонятно на что цап реагирует, если клок на него плисом после конфигурации выдается.

Повторюсь. У Цапа clr должен быть. На него можно подать "служебный" сигнал окончания конфигурации плис.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если у ЦАПа есть вход навроде OutEnable, то достаточно завести управление на него и только его подтянуть резистором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не может там быть нуля. Это наверно неподтянутое z состояние.

Непонятно на что цап реагирует, если клок на него плисом после конфигурации выдается.

Повторюсь. У Цапа clr должен быть. На него можно подать "служебный" сигнал окончания конфигурации плис.

Выход ПЛИС сначала подтянут на ноль, потом подтягивается к единице. Соответственно появляются странные напряжения, потипу 0.3В или 1.5В. Занулить ЦАП в моём случае можно, но сложно. ЦАП не простой, используется связка ЦАП-ДЗУ.

 

M0 M1 M2 в нуле, соответственно не в этом дело. По даташиту Configuration Pull-ups = NO

 

1.5V получается скорее всего из-за подтяжки слабыми PULL-UP-ами, а чтобы 3.2V сделать у них силы не хватает.

Если это так, то подтяжка к земле может решить проблему и не создать новую.

 

А решение неожиданное - на тех выходах, которые глитчат/глючат предлагается сделать tri-state,

управляющий сигнал вывести наружу и подключить к ножке PROG на плате.

Догадка правильная: в ПЛИС подтягивающий резистор равен 50 КОм, входной ток у ЦАП 100мкА, по закону Ома будет потеря до 1.6В. Как и было измеряно.

 

ДАННОЕ РЕШЕНИЕ ПОЛНОСТЬЮ РАБОТАЕТ. И в моём случае даже желательнее. Иначе мне пришлось бы использовать и логику и ДЗУ и вотч дог.

 

Благодарю всех участников темы, особенно Shtirlits за проявленный интерес и нахождение "красивого" решения ))

Изменено пользователем Дварфик

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...