srf55 2 29 июня, 2023 Опубликовано 29 июня, 2023 · Жалоба Имеется плата со связкой ПЛИС(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 Как правильно сформировать сигнал сброса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 29 июня, 2023 Опубликовано 29 июня, 2023 · Жалоба 12 minutes ago, srf55 said: Была мысль вместо CONF_DONE использовать пользовательские выходы ПЛИС для формирования сброса после подачи питания. Но останавливает, что USER I/O находятся в tristate в то время пока ПЛИС конфигурируется. Резистор подтяжки жалко? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srf55 2 29 июня, 2023 Опубликовано 29 июня, 2023 · Жалоба В даташите на 3-й циклон пишут, что в ПЛИС есть weak pull-up (от 7 кОм до 41 кОм) и еще есть weak pull-down (от 6 кОм до 30 кОм). Видимо номинал зависит от температуры. Не понятно, какой внешний резистор подтяжки выбрать. И как внутри ПЛИС подтяжки работают при включении питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 29 июня, 2023 Опубликовано 29 июня, 2023 · Жалоба 27 minutes ago, srf55 said: Не понятно, какой внешний резистор подтяжки выбрать. По нужному току посчитать, в любом учебнике по схемотехнике есть. 27 minutes ago, srf55 said: И как внутри ПЛИС подтяжки работают при включении питания. cyclone III раздел Cyclone III Device I/O Features Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srf55 2 29 июня, 2023 Опубликовано 29 июня, 2023 · Жалоба 5 часов назад, des00 сказал: cyclone III раздел Cyclone III Device I/O Features в этом разделе не нашел, какая из подтяжек включена (pull-up или pull-down) до момента пока ПЛИС еще не сконфигурировалась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 29 июня, 2023 Опубликовано 29 июня, 2023 (изменено) · Жалоба а почему бы не использовать для управления сбросом процессора любой свободный IO пин ПЛИС... При старте - высокоимпедансное состояние - внешний резистор подтяжки, килоом 1-10 к нужному уровню (сопротивление - в зависимости от того, сколько энергии не жалко потратить на управление ногой reset процессора и от параметров этого входа процессора - возможно, у него внутри уже есть подтяжка). После конфигурирования ПЛИС она запускается и разрешает работу процессора... Изменено 29 июня, 2023 пользователем Yuri124 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srf55 2 29 июня, 2023 Опубликовано 29 июня, 2023 · Жалоба Yuri124, я так и собираюсь сделать. Смущают только внутренние подтяжки, которые уже есть в ПЛИС. И непонятно как они себя ведут до запуска прошивки ПЛИС и при различной температуре. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 29 июня, 2023 Опубликовано 29 июня, 2023 (изменено) · Жалоба Разброс величины этих подтяжек, как я понимаю - это технологический разброс при изготовлении, вряд ли от температуры так сильно зависит. Просто в цифровой технике этот разброс допустим с точностью +- километр - т.е. некритичен абсолютно, лишь бы обеспечивал нужный логический потенциал независимо от возможных допустимых токов утечек в полупроводниках. До прошивки ПЛИС кмк ее выводы отключены (в высокоимпедансном состоянии), а подтяжку (вверх или вниз) - включает уже прошивка, после загрузки. Могу ошибаться, или в разных сериях микросхем это может быть по-разному. Но если, предположим, при начале прошивки в ПЛИС включена подтяжка не к тому уровню, что необходим, то внешним резистором меньшего сопротивления напряжение на выводе ПЛИС можно "перетянуть" в нужную сторону, без опасности для ПЛИС. Главное - чтобы потом после ее старта ток в этом выводе был в пределах даташита и настроек этого вывода ПЛИС (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к до полутысячи Ом... Или добавить снаружи транзистор или логич. элемент для усиления дополнительно, если не жалко/есть место/плата еще в проекте. Изменено 29 июня, 2023 пользователем Yuri124 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 29 июня, 2023 Опубликовано 29 июня, 2023 · Жалоба 2 hours ago, srf55 said: в этом разделе не нашел, какая из подтяжек включена (pull-up или pull-down) до момента пока ПЛИС еще не сконфигурировалась. потому что никакая. вся подтяжка внутри IO после конфигурации. Исключение было на CPLD 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
krux 8 29 июня, 2023 Опубликовано 29 июня, 2023 · Жалоба у циклона-III на IO как у всех нормальных FPGA до конфигурирования висит Hi-Z вешаете IO на затвор полевика, подтажку 10к на затвор, Светодиод с токоограничивающим резистором на выход полевика - вот вам и сброс на DSP, и его индикация, и приведение от уровня питания банка IO к необходимому уровню напряжения сброса DSP. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yuri124 4 30 июня, 2023 Опубликовано 30 июня, 2023 · Жалоба On 6/29/2023 at 3:01 PM, krux said: Светодиод с токоограничивающим резистором на выход полевика - вот вам и сброс на DSP, и его индикация, и приведение от уровня питания банка IO к необходимому уровню Только со светодиодом посоветовал бы быть аккуратнее - если на входе reset процессора нет встроенной подтяжки, посоветовал бы еще один резистор параллельно светодиоду, чтобы на входе reset гарантированно появился необходимый уровень. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 30 июня, 2023 Опубликовано 30 июня, 2023 · Жалоба В 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 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srf55 2 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба В 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) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 3 июля, 2023 Опубликовано 3 июля, 2023 · Жалоба В 03.07.2023 в 07:39, srf55 сказал: Поэтому останавливаюсь на втором варианте ( использование User I/O) Если будете использовать схемотехнику типа файла power_up, обязательно после разводки кристалла убедитесь, что под эту схему выделены необходимые ресурсы. Вполне может случиться, что при использовании установок по умолчанию синтезатор может минимизировать такую однократно срабатываемую схему и посадить пин плис сразу на 1, игнорируя счетчик. Тогда надо поработать с установками синтезатора и запретить ему такую оптимизацию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться