Могу ли я использовать протокол I2C для продуктов с интерфейсными ИС SPI?

Я работаю над проектом FPGA, где мне нужно настроить встроенные микросхемы с интерфейсом SPI, указанным в их таблицах данных, и несколько с интерфейсом I2C. Мне было интересно, можно ли подключить эти интерфейсы SPI к интерфейсу I2C? Я навсегда включу вывод Latch Enable для логической «1» (VCC) и буду использовать интерфейс контактов SCLK и SDATA для контактов интерфейса I2C, потому что эти 2 контакта — это то, что мне нужно! Позже логика протокола My HDL позаботится об этом внутри FPGA.

Я изучаю это впервые, так что кто-нибудь пробовал это раньше с этими стандартными отраслевыми протоколами? Это вообще осуществимо? Особенно, когда в техническом описании продукта указано, что у него есть SPI, а не I2C?

Устройства SPI не должны реагировать ни на что, что происходит, когда они не выбраны. Проблема в том, будут ли устройства I2C реагировать на транзакцию SPI.

Ответы (1)

Вместо этого я бы предложил что-то вроде этого, если вы можете немного изменить свой дизайн: https://www.nxp.com/docs/en/data-sheet/SC18IS602B.pdf

Это мост I2C-SPI. Он отвечает на транзакции I2C по определенному адресу и в ответ выполняет транзакции SPI. Вы бы повесили это на шину I2C и сделали бы его мастером вашей шины SPI. Он имеет 4 ведомых выхода.

Чтобы пойти наоборот (отключить все устройства I2C от интерфейса SPI), есть вот это: https://www.nxp.com/docs/en/data-sheet/SC18IS600.pdf

Это мост SPI-I2C. Я думаю, что если вы делаете FPGA, это на самом деле будет проще сделать, поскольку тогда вам не нужно беспокоиться об открытом стоке (особенно в сочетании с необходимой логикой растяжения тактовой частоты) с FPGA. Как правило, интерфейсы SPI легче правильно реализовать на ПЛИС.