Как отправить данные с Мастера на другой Мастер?

Я использую ESP32 для получения данных из Интернета. Однако в связи I2C EPS32 не работает как ведомое устройство, и у меня уже есть Atmega в качестве ведущего устройства.

Я видел сайты, на которых говорилось, что соединение Master-Master I2C возможно, однако, как мне это сделать? или есть другие решения для связи ESP32 с ATMega?

, 👍0

Обсуждение

У меня нет большого опыта работы с I2C, но есть и другие способы, такие как UART или SPI., @Michel Keijzers


1 ответ


1

Оба ваших ведущих устройства должны поддерживать режим нескольких мастеров, т. е. арбитраж и синхронизацию. См. спецификацию I2C здесь для описания арбитражного процесса.
Вы должны справиться с проигранным арбитражем в своем программном обеспечении.

Или есть другие решения для связи ESP32 с АТМега?

Конечно. Поскольку вы считаете, что I2C будет достаточно, UART и SPI являются возможными альтернативами, поддерживаемыми почти всеми микроконтроллерами.

,

что вы рекомендуете мне делать здесь? использовать несколько стилей общения? I2C и SPI? Поскольку все, что мне нужно, это иметь 2 ведущих устройства для связи, в то время как только другое ведущее устройство взаимодействует с ведомыми., @Julius Noel Banayo

@JuliusNoelBanayo Зависит от ваших требований. Если вам нужно передавать только несколько байтов каждые 100 мс, I2C может быть наиболее экономичным решением (режим Multimaster поддерживается ESL32 и Atmega). Если данных намного больше и/или они нужны вам быстро, вам следует рассмотреть SPI., @mic