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

Cyclone III. Формирование сброса.

Имеется плата со связкой ПЛИС(Cyclone III) + DSP.

ПЛИС должна быть уже сконфигурирована и работать перед запуском DSP, т.к у DSP доступ к FLASH и ОЗУ идет не напрямую, а через ПЛИС.

Сброс DSP осуществляется с ПЛИС, сигналом CONF_DONE. Активный низкий уровень. Необходимо, чтобы сигнал сброса был в "0" с момента подачи питания до того момента пока ПЛИС сконфигурируется.

 

В Cyclone III Handbook есть такая фраза:

Цитата

Driving CONF_DONE low after configuration and initialization does not affect the configured device. Do not connect bus holds or ADC to the CONF_DONE pin.

Это значит, что к выводу CONF_DONE нельзя ничего подключать? 

 

Была мысль вместо CONF_DONE использовать пользовательские выходы ПЛИС для формирования сброса после подачи питания. Но останавливает, что USER I/O находятся в tristate в то время пока ПЛИС конфигурируется.

Цитата

During POR, the device resets, holds nSTATUS and CONF_DONE low, and tri-states all user I/O pins

 

Как правильно сформировать сигнал сброса?

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


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

12 minutes ago, srf55 said:

Была мысль вместо CONF_DONE использовать пользовательские выходы ПЛИС для формирования сброса после подачи питания. Но останавливает, что USER I/O находятся в tristate в то время пока ПЛИС конфигурируется.

Резистор подтяжки жалко? 

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


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

В даташите на 3-й циклон пишут, что в ПЛИС есть weak pull-up (от 7 кОм до 41 кОм) и еще есть weak pull-down (от 6 кОм до 30 кОм). Видимо номинал зависит от температуры.

Не понятно, какой внешний резистор подтяжки выбрать. И как внутри ПЛИС  подтяжки работают при включении питания.

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


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

27 minutes ago, srf55 said:

Не понятно, какой внешний резистор подтяжки выбрать.

По нужному току посчитать, в любом учебнике по схемотехнике есть.

27 minutes ago, srf55 said:

И как внутри ПЛИС  подтяжки работают при включении питания.

cyclone III раздел Cyclone III Device I/O Features

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


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

5 часов назад, des00 сказал:

cyclone III раздел Cyclone III Device I/O Features

в этом разделе не нашел, какая из подтяжек включена (pull-up или pull-down) до момента пока ПЛИС еще  не сконфигурировалась.

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


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

а почему бы не использовать для управления сбросом процессора любой свободный IO пин ПЛИС...  

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

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

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


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

Yuri124, я так и собираюсь сделать. Смущают только внутренние подтяжки, которые уже есть в ПЛИС. И непонятно как они себя ведут до запуска прошивки ПЛИС и при различной температуре.

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


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

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

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

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

Например, нужно получить после старта ПЛИС на ее ноге лог. 1. По даташиту - есть weak pull-up (от 7 кОм до 41 кОм), а нам до старта ПЛИС нужен лог. 0. 

Вешаем снаружи на GND резистор 1кОм. При этом в худшем случае (если внутр. подтяжка в ненужную сторону все же включена, и там оказалось худшее для нас сопротивление 7 к) получип до старта ПЛИС напряжение на ноге 1/8 от питания (это без учета влияния подключенной ноги reset  процессора, там тоже может быть подтяжка или генератор тока)  - гарантированный логич. 0. После старта ПЛИС ее вывод переключаем в лог 1 - при этом через вывод ПЛИС пойдет ток Vcc/1кОм   - при питании 3,3В это будет всего лишь 3,3 мА...

 

Если reset процессора еще привносит что-то свое - ну, уменьшаем резистор 1к до полутысячи Ом... Или добавить снаружи транзистор или логич. элемент для усиления дополнительно, если не жалко/есть место/плата еще в проекте.

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

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


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

2 hours ago, srf55 said:

в этом разделе не нашел, какая из подтяжек включена (pull-up или pull-down) до момента пока ПЛИС еще  не сконфигурировалась.

потому что никакая. вся подтяжка внутри IO после конфигурации. Исключение было на CPLD

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


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

у циклона-III на IO как у всех нормальных FPGA до конфигурирования висит Hi-Z 

 

вешаете IO на затвор полевика, подтажку 10к на затвор, Светодиод с токоограничивающим резистором на выход полевика - вот вам и сброс на DSP, и его индикация, и приведение от уровня питания банка IO к необходимому уровню напряжения сброса DSP.

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


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

On 6/29/2023 at 3:01 PM, krux said:

Светодиод с токоограничивающим резистором на выход полевика - вот вам и сброс на DSP, и его индикация, и приведение от уровня питания банка IO к необходимому уровню

Только со светодиодом посоветовал бы быть аккуратнее - если на входе reset процессора нет встроенной подтяжки, посоветовал бы еще один резистор параллельно светодиоду, чтобы на входе reset гарантированно появился необходимый уровень.

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


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

В 29.06.2023 в 05:33, srf55 сказал:

 

Сброс DSP осуществляется с ПЛИС, сигналом CONF_DONE. Активный низкий уровень. Необходимо, чтобы сигнал сброса был в "0" с момента подачи питания до того момента пока ПЛИС сконфигурируется.

 

Как правильно сформировать сигнал сброса?

Сигнала с CONF_DONE недостаточно. Он гуляет по 0 и 1. Пины  I/O FPGA переходят в пользовательские  согласно проекта только после временного интервала инициализации после конфигурации. Стандартное и проверенное решение при использовании FPGA для внешнего ресета это активирование в проекте пина INIT_DONE.

Пины CONF_DONE и  активированный INIT_DONE - с открытым стоком, поэтому должны быть подтянуты к питанию через резисторы.

Ну и нужна букашка внешняя 2И. Чтобы реализовать функцию (CONF_DONE && INIT_DONE). Эта комбинация гарантировано даст уровень нуля в интервале от включения питания до активирования пинов плис.

 

2. Можно задействовать пользовательский пин. Опираясь на факт того, что Ваша плис fpga реализована на базе статической ячейки памяти.

И после конфигурации и инициализации регистровая структура устанавливается гарантировано в 0. Можно после инициализации пользовательский пин удержать в нуле сколько пожелаете. Однократно.

Можно выставить любое значения регистра по включению, опираясь на этот факт. (триггер  по включению питания в нуле. если по включению питания нужна единица, на входе и выходе этого триггера ставите инвертор).

power_up.v

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


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

В 01.07.2023 в 00:36, sazh сказал:

Сигнала с CONF_DONE недостаточно. Он гуляет по 0 и 1. Пины  I/O FPGA переходят в пользовательские  согласно проекта только после временного интервала инициализации после конфигурации. Стандартное и проверенное решение при использовании FPGA для внешнего ресета это активирование в проекте пина INIT_DONE.

Пины CONF_DONE и  активированный INIT_DONE - с открытым стоком, поэтому должны быть подтянуты к питанию через резисторы.

Ну и нужна букашка внешняя 2И. Чтобы реализовать функцию (CONF_DONE && INIT_DONE). Эта комбинация гарантировано даст уровень нуля в интервале от включения питания до активирования пинов плис.

Спасибо за такое красивое решение задачи 🙂

Останавливает от применения только указание в handbook насчет CONF_DONE. Микросхема логики, это конечно не АЦП, но эта фраза смущает:

Цитата

 Do not connect bus holds or ADC to the CONF_DONE pin.

 

Поэтому останавливаюсь на втором варианте ( использование User I/O)

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


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

В 03.07.2023 в 07:39, srf55 сказал:

Поэтому останавливаюсь на втором варианте ( использование User I/O)

Если будете использовать схемотехнику типа файла power_up, обязательно после разводки кристалла убедитесь, что под эту схему выделены необходимые ресурсы.

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

Тогда надо поработать с установками синтезатора и запретить ему такую оптимизацию.

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


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

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

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

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

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

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

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

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

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

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