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

Поведение I/O выводов FPGA при подаче и сбросе питания

Проблема следующая: при подаче питания на FPGA (Cyclone 4 E) на выводах I/O банков появляется единица (подтяжка к Vcc) на время инициализации (загрузки прошивки из EPCS16). Длится это безобразие ~100-200 us, что ни в какие ворота... Банки питаются от 3.3В. Где-то читал, что выводы якобы должны быть в третьем состоянии и что порядок установки напряжений не важен для современных ПЛИС Altera или Intel, как Вам угодно)).

 

Вторая проблема, пока менее важная, это выбросы на I/O выходах во время сброса питания. Кто сталкивался с подобным? Куда тут копнуть?

 

ПЛИС находится на отладочной плате, схема питания (и всего остального) прилагается в PDF Development_board_schematic_diagram_V2.1.pdf

 

P.S. Посоветовали перетянуть подтяжку к питанию резистором на землю - как вариант, но не очень. В идеале хочется иметь Z состояние, так как выводов используется много и все по разной логике работают. Ведь даже в микроконтроллерах изначально стоит Z-вход на выводах, не думаю что проектировщики ПЛИС не позаботились об этом, тем более программно есть возможность переводить вывод в третье состояние. Вот и думаю, может можно как то предустановить? Напряжение ядра раньше подавать смысла не вижу, подтяжка присутствует на аппаратном уровне.

Изменено пользователем Nerevarine

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


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

в FPGA это называется hot-socketing

ножка переводится в высокоимпедансное состояние - если есть питание и подтяжка к нему, то должна быть 1 - все честно

 

но еще у Альтеры по-моему всегда проблемы с этим были, какие-то утечки, броски во время повер секвенса

 

у Латтиса, например, в ECP5 часть ножек это умеет, часть нет

настоящий труЪ хотсокетинг кончился на Виртексах 2 (мне ксайлинская поддержка объяснила, что на это нужно много кремния, поэтому делают всякие хитрости, через которые ток подтекать может)

 

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


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

Судя по документу про Hot-Socketing подтяжка железная. Наплывает единственное более-менее решение это использовать транзисторы (нормально открытые при подаче питания), которые будут сажать на землю вывода (которые не должны скакать). Ну и потом, к примеру, отдельной ножкой их закрывать.

 

Довольно неприятная особенность, особенно когда о ней не знаешь. Обычно разводил микроконтроллеры, там с этим проблем нет. А тут скоро придется развести ПЛИСину, так вот не накосячить бы в таких тонкостях)

 

А по поводу выбросов после сброса питания думаю завести с источника сигнал BIAS, по нему определять что питания нет -> делать общий ресет (транзисторы обратно притянут вывода на землю).

Изменено пользователем Nerevarine

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


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

Во время сброса ножки FPGA в высокоимпедансном состоянии, до и в процессе конфигурирования слабо подтянуты к питанию, после - как сконфигурировали. Если это почему-то неприемлемо, боритесь, как фантазия выдаст. Включайте устройства раньше или позже. Никогда не переживал на этот счет.

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


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

В моем случае это фатально, поэтому тему и поднял) в общем теперь все понятно

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


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

разверну свой комент - в альтеровском (да и в новых ксайлинских тоже) хотсокете по ножкам данных может затекать ток в шину питания IO (через esd-диод и подобные структуры), при этом будет подниматься питание и на ножках данных тоже может быть не 0 и даже пересиливать высокоомные резисторы подтяжки

 

upd - может лучше транзисторов поставить что-то типа TXB0102 и даже TXB0108 (но если скорости хватит)

или 245 / 125 двунаправленые из 74-й серии буфера, если есть возможность управлять направлением ножки

имхо, сильно лучше, чем мудрить с токами при закорачивании на землю

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


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

может лучше транзисторов поставить что-то типа TXB0102 и даже TXB0108

Как то использовались изоляторы, но у них не было управляющего вывода. А использовать наподобие этих микросхем позволяет решить проблемы (в том числе и с затеканием тока через I/O), тем более что таких критических цепей не так уж и много. Остальные цепи как нибудь переживут подтяжку. Спасибо за наводку ;)

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


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

Подниму темку. Столкнулся с тем, что куча подтягивающих резисторов, в том числе и по 16 LVDS каналам сильно влияют на правильность работы схемы с Cyclone V. Попытка получить поддержку у Intel не увенчалась успехом. Предлагается воспользоваться форумом, а мне надо именно поддержку от производителя. Т.к. ответа на мой вопрос в документах я не нашел. Судя по единственному ответу там пытаются отвечать люди, которые ни разу не лазили осциллографом в плату с FPGA и пытающиеся найти информацию в документах, которой нет.

Поддержка от Intel по FPGA для простых смертных не доступна?

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


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

Ответ на ваш вопрос - нет. Это не отключаемая вещь.

Изменено пользователем dvlwork

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


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

Извините, но я не понял ваш ответ.

Мой вопрос на этом форуме состоял в том, могут ли простые смертные получить ответ от разработчиков FPGA? А не от людей, которые консультируют по datasheet и прочим документам.

Если вы смотрели вопрос на буржуйском форуме, то я спрашивал можно ли НЕ подавать VCCIO на время подачи напряжений питания и загрузки прошивки?

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


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

2 minutes ago, dinam said:

могут ли простые смертные получить ответ от разработчиков FPGA?

 Может не совсем от разработчиков, но от инженеров по применению - да.

3 minutes ago, dinam said:

можно ли НЕ подавать VCCIO на время подачи напряжений питания и загрузки прошивки?

Это как - на все-все банки не подавать VCCIO во время загрузки прошивки? А как же она загрузится, если ноги, чрез которые загружается прошивка, питаются от одного из банков?!

Есть рекомендованный порядок подачи напряжений питания. Если его не соблюдать, то в 5-м Циклоне, например, это грозит увеличением пикового тока при старте, как пишут в доках. Если это некритично (стабилизаторы в состоянии его отдать) - то можно подавать в любом порядке (я так понимаю). Т.е. получается, на некоторые банки VCCIO можно не торопиться подавать питание. Если внутри ПЛИС отсутствует мониторинг питания этих банков - т.к. если нет нужных напряжений, ПЛИС просто не начнет загружаться.

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


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

Где найти этих инженеров по применению? Они тусуются на форуме Intel? Если это один из них мне ответил, то я в тихом ауте. Просто раньше я не раз обращался в support Altera и впечатление было нормальным.

Насколько я понял, то для загрузки прошивки мне не нужны напряжения питания VCCIO. Мне достаточно подавать напряжение после загрузки прошивки на 3-4 банка. На остальные пусть подаются сразу. VCCIO не "мониторятся".

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


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

Извините, видимо не понял ваш вопрос.

Что касается "VCCIO не мониторятся", то там сделано как-то хитро. Для срабатывания POR питания нужны, а потом пропадание питания на банках не мониторится. (я так, чисто по памяти)

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


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

Ну не знаю, я вижу в Cyclone V Device Handbook на стр. 321, что "VCCIO не мониторятся".

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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