Делитесь контактами I2C с другими устройствами при отсутствии GPIO

Мы используем ESP12E в качестве нашего MCU, и у нас есть три функции :

  • SIM800 подключен к TX(GPIO1), RX(GPIO3)
  • Матричная клавиатура, подключенная к GPIOs: 14,13,2,10,0,4,5,16
  • GLCD, подключенный к GPIOs: 15,12

А еще нам нужно общаться с модулем RTC(DS3231) по шине I2C!

Поэтому мне интересно, как мы могли бы это сделать?

Можно ли совместно использовать контакты I2C с любыми другими контактами ?

И кстати по какой то причине мы не можем использовать IO expander такой как PCF8574

, 👍-1

Обсуждение

*Почему* вы не можете использовать расширитель ввода-вывода? Это сэкономит вам те 8 контактов, которые необходимы для матричного ввода. Можете ли вы использовать какую-либо другую внешнюю микросхему?, @ratchet freak

Да, я знаю, это отличная "микросхема", но сейчас у нас есть некоторые ограничения на печатную плату и некоторые другие проблемы с поставками, @IMAN4K

GLCD (графический жидкокристаллический дисплей) соединен двумя проводами? Как это возможно, ведь обычно требуется гораздо больше проводов? Если это уже устройство шины I2C, просто поместите модуль RTC на точно такие же линии? В конце концов, I2C-это **шина**.., @Maximilian Gerhardt

@MaximilianGerhardt Это ST7920 ' GLCD с 3-проводным программным обеспечением SPI, использующим этот хороший lib:https://github.com/olikraus/u8g2 , также мы находимся в последовательном режиме, так что cs` является чипом enable и подключен к логике 1, @IMAN4K

Тогда, если бы вы использовали другой дисплей с теми же характеристиками (столбцы, строки и т. д.), но с интерфейсом I2C, разве ваши проблемы не были бы решены? Тогда у вас есть еще 2 провода, но с 2 устройствами на шине I2C. Или добавьте чип-преобразователь I2C в SPI, например NXP SC18IS602B., @Maximilian Gerhardt


2 ответа


0

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

Например, вы можете переместить клавиатуру на специальный интерфейсный чип с матричным интерфейсом, такой как MAX7365 (вероятно, излишество для маленькой клавиатуры), или обычный расширитель ввода-вывода I2C GPIO, такой как MCP23017.

,

0

Наконец-то мы нашли 74C922! без какого-либо другого выбора.

Дешевая, доступная, надежная и простая в настройке микросхема.

Простая схема, которую мы используем:

вот хорошая тема для начала

,