dworfik 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 (изменено) · Жалоба Есть вот такая особенность ПЛИС Фирмы 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 резисторов, или будет резисторная матрица. Но может есть вариант получше? Изменено 24 ноября, 2010 пользователем Дварфик Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Уточните микросхему - интересно, который из виртексов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dworfik 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Уточните микросхему - интересно, который из виртексов. Первый виртекс. Т.е. без номера поколения Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Есть вот такая особенность ПЛИС Фирмы Xilinx Virtex (первый) на 400 вентилей. Неужели у Virtex нет внутренних подтягивающих резисторов на vcc i/o в интервале конфигурации и инициализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба 2 Дварфик А вы запаяйте подтягивающие резисторы на землю. pull-down. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Проблема в следующем: сначала ЦАПы принимают уровень на этих выводах за ноль, а последние 70мкс - за единицу. Соответственно у меня громадных размеров всплеск, и убрать его проблематично: VHDL-код в тот момент ещё не работает и впаять на каждый вход ЦАПа резистор затруднительно (( Обычно у цапов есть вход, устанавливающий регистры цапа или в 0 или в середину шкалы. Сигнал, отвечающий за интервал конфигурации плиса туда просится. А в регистрах плиса по включению - прописать теже значения. Всплеска не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Кое-что можно попробовать, правда решение для 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 на плате. Интересно, этот вывод и его разводка успеет к этому моменту сконфигурироваться? К сожалению, не знаю в каком порядке что загружается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dworfik 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Неужели у Virtex нет внутренних подтягивающих резисторов на vcc i/o в интервале конфигурации и инициализации. В настройках конфигурации загрузки множество всяких пунктов, но они либо не подходят, либо мне непонятны. Описание на них я ещё не нашёл. К сожалению. Большую часть загрузки на выходах чистый ноль (напоминаю загрузка длится больше секунды), а последние 70мкс сигнал подтягивается к единице при этом не 3.2 В а только 1.5 В, что для срабатывания ЦАПа достаточно. И только потом поднимается сигнал DONE и выводы наконец-то становятся нулевыми, как и было запрограмировано на VHDL. Кое-что можно попробовать, правда решение для Virtex-II/IIpro. Но мало ли... Вариант интересный, обязательно проверю. А пока что нашёл только "железный" способ. На плате есть злая собака -- Watch Dog, он срабатывает через 200мкс после подачи питания. Возможно, мне удастся с помощью его заткнуть ЦАП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shtirlits 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба 1.5V получается скорее всего из-за подтяжки слабыми PULL-UP-ами, а чтобы 3.2V сделать у них силы не хватает. Если это так, то подтяжка к земле может решить проблему и не создать новую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Большую часть загрузки на выходах чистый ноль (напоминаю загрузка длится больше секунды), а последние 70мкс сигнал подтягивается к единице при этом не 3.2 В а только 1.5 В, что для срабатывания ЦАПа достаточно. Не может там быть нуля. Это наверно неподтянутое z состояние. Непонятно на что цап реагирует, если клок на него плисом после конфигурации выдается. Повторюсь. У Цапа clr должен быть. На него можно подать "служебный" сигнал окончания конфигурации плис. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
oleg_v_ 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба А какие у Вас уровни на контактах M2, M1 и M0 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvgenyNik 0 24 ноября, 2010 Опубликовано 24 ноября, 2010 · Жалоба Если у ЦАПа есть вход навроде OutEnable, то достаточно завести управление на него и только его подтянуть резистором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dworfik 0 25 ноября, 2010 Опубликовано 25 ноября, 2010 (изменено) · Жалоба Не может там быть нуля. Это наверно неподтянутое 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 за проявленный интерес и нахождение "красивого" решения )) Изменено 25 ноября, 2010 пользователем Дварфик Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться