Я использую одну шину SPI от ЦП к двум ПЛИС с разными (то есть индивидуальными) сигналами CS.
Центральный процессор и первая FPGA включены, а вторая FPGA обесточена.
Когда я отправляю сигналы SPI на обе FPGA, вторая (без питания) FPGA закорачивает общие сигналы SPI, а первая (с питанием) FPGA не может распознавать сигналы с низкой амплитудой.
Почему это может происходить и как это исправить?
Хотя некоторые части этой истории мне не совсем ясны, общая ситуация кажется известной проблемой.
Почему это может произойти
Подключение сигналов к микросхеме без питания (в вашем случае ко второй ПЛИС) обычно выходит за рамки спецификации этой микросхемы (за некоторыми исключениями, как правило, для микросхем, специально разработанных для изоляции шины - см. ниже). Проверьте техническое описание этого устройства, чтобы узнать, упоминается ли в спецификации входного напряжения Vcc / Vdd или конкретное напряжение. Если в нем упоминаются напряжения, относящиеся к Vcc / Vdd, подумайте, что это значит, когда устройство обесточено.
Если вам нужна помощь в интерпретации технического описания вашей ПЛИС, предоставьте ссылку на страницу с ее электрическими характеристиками, и мы постараемся найти для вас соответствующую деталь.
Если вы подключаете сигналы к такой ИС без питания, то это имеет тенденцию пытаться подать питание на ИС без питания через структуры защиты от электростатического разряда на этих сигнальных выводах ИС без питания. Однако ИС никогда не предназначалась для питания через свои сигнальные контакты, эти сигналы могут быть не в состоянии обеспечить ток, необходимый для питания ИС (конечно, они никогда не были предназначены для этого), и поэтому сигнальные напряжения могут выйти за допустимые пределы. -спецификация, ИС может быть запитана неправильно (поскольку этот метод подачи питания никогда не предполагался) и может быть замечено множество неправильного поведения. Смотрите вопросы и ответы к этим предыдущим темам, для похожих проблем:
Изолируйте микроконтроллер от платы и используйте другой
Устройства без питания на шине I2C/SPI
как это исправить?
Используйте соответствующие микросхемы изоляции шины, которые предназначены для обесточивания одной части шины без воздействия на другие устройства на питаемой части шины. Например, TI и Analog Devices (среди многих других производителей) делают такие устройства в зависимости от вашей скорости, тока, комплектации, стоимости, доступности и прочих требований.
В некоторых случаях 74LCX125 (с техническими характеристиками, допускающими активные входные сигналы даже при отсутствии питания) является примером типа ИС, который можно использовать для буферизации сигналов на устройство без питания, т. е. 74LCX125 и устройство без питания. будут подключены к одной и той же шине питания и, следовательно, одновременно будут получать питание или обесточиваться.
Вы можете использовать микросхему преобразователя напряжения, которая гарантированно будет вести себя хорошо (не нагружать входы) при отсутствии питания (двух).
В некоторых случаях вы можете просто использовать последовательные резисторы на SCK и данных и / CS для вашей второй FPGA, но это не лучшая практика.
Также возможно, что определенные входные структуры FPGA (сконструированные таким образом, чтобы выдерживать входные напряжения выше, чем у соответствующего источника ввода-вывода) могут не иметь этой проблемы, но очень внимательно прочитайте спецификации в отношении допустимых входных напряжений. Вы этого не сделали, поэтому вы видите эту проблему - возможно, существует абсолютное максимальное входное напряжение Vddio + 0,3 В или что-то подобное, и вы нарушаете эту спецификацию.
Сэм Гибсон
Илья А
Сэм Гибсон