Путаница между SPI и I2C для SSD1306 OLED

Недавно я приобрел себе OLED-дисплей SSD1306: OLED-дисплей SSD1306

Однако мне не удалось успешно подключить его к Arduino (Mega 2560). Я читал об I2C и SPI и проверил некоторые библиотеки от Adafruit и U8G2.

Однако я в замешательстве, поскольку большая часть Интернета говорит о аналогичный OLED-дисплей с контактами с маркировкой GND - VDD - SCL - SDA, где у меня SCK вместо SCL.

Количество контактов заставляет меня поверить, что мне нужен интерфейс I2C, но метка SCK указывает на SPI, верно?

Кажется, у одного человека та же проблема, что и у меня, но решение, которое он нашел (подтягивающие резисторы), боюсь, мне не помогло.

Итак, у меня остается вопрос: как подключить этот OLED-дисплей к Mega 2560?

Буду признателен, если кто-нибудь укажет мне правильное направление.

Спасибо!

, 👍4

Обсуждение

производители ужасно печатают правильные этикетки на этих интерфейсных контактах. я видел SPI MOSI с маркировкой: MOSI/SPI/DO/SDI/SDA/AD/A0 и DC; некоторые из них даже близко не похожи! проводов всего 2, так что это I2C. попробуйте перевернуть булавки, если не получится; Я тоже видел, чтобы они были помечены наоборот., @dandavis


2 ответа


Лучший ответ:

7

SCK и SCL – это одно и то же.

  • Последовательные часы
  • Последовательные часы

Кажется, они взаимозаменяемы. Тот факт, что у вас есть SDA (Serial Data), а не отдельные контакты SDI/SDO или MOSI/MISO, означает, что это I2C.

Подключите его так же, как и любое другое устройство I2C.

,

Это i2c, но эти дисплеи известны тем, что нарушают работу шины i2c. Возможно, у них напряжение 3,3 В i2c или отсутствует подтверждение. Adafruit добавляет переключатель уровня i2c к аналогичным oled-дисплеям. U8g2 имеет опцию программного обеспечения i2c без подтверждения., @Jot

большое спасибо, это работает (также для справки: адрес I2C для этого дисплея — 0x3C), @Bart Van Loon

U8g2 в программном режиме I2C хорошо работает на GM009605 v4. Я могу использовать практически любую булавку. Выглядит тоже стабильно., @Jerther


1

У меня, похоже, один и тот же дисплей (GM009605 v4), и хотя SCL и SCK обозначают последовательную тактовую частоту, многие платы разработки имеют разные контакты SCK и SCL, которые вам необходимо соединить. Например, на Wemos d1 mini этот дисплей подключен к SDA => D2 & SCK => D5, где, как если бы это был SCL, он был бы направлен на D1.

Кстати, я использую библиотеки Wire.h и SSD1306.h (https://github.com/ThingPulse/esp8266- oled-ssd1306) для взаимодействия с дисплеем с помощью Wemos D1 mini.

,