OLED 2.42' SSD1309 I2C (на плате только разъём I2C) работает только с одной библиотекой, с остальными не хочет


Брал вот здесь, Win Win
Не заводится.
В отзывах один чувак жаловался что заказал 2 шт. и оба не работают, i2c сканер их не видит. У других всё нормально. Наверное он всё же неправ.
В гугле нашёл что такие дисплеи работают с этой библиотекой OLED_I2C, А с остальными тоже проблемы.
Очень хотелось чтобы он работал с вот этой библиотекой iarduino_OLED_txt
Обычно всегда её использую, а тут такая засада.
Вот с таким

OLED 2.42’ SPI/I2C при подключении по I2C проблем нет. Но было лень паять 4 перемычки, чтобы подключать его по I2C, и заказал другой. Ну и попал.
Можно ли что-то сделать, чтобы он мог работать с другими библиотеками?

Я не понял - ваш то отображает, адрес отдаёт ???

Мой Win Win с моими библиотеками не отображает. Адрес не отдаёт.
С библиотекой OLED_I2C - отображает всё прекрасно.

С I2C так не бывает !!!

Если работает, то должен откликаться на адрес 0x3C или 0x3D…

1 лайк

Такая вот фигня получается, не откликается на I2C. Беру программу из примеров, i2c_scanner, запускаю - ничего не находит.
Может программа не того?
Подключаю маленький стандартный 0.96’ ssd1306 i2c мониторчик. Сканер его прекрасно видит и сообщает адрес 0x3C.
Получается программа нормальная.
Не могут тут играть роль подтяжки логических уровней? У меня сейчас Arduino Uno. Всё напрямую.

А вот эта библиотека не работает #include <U8g2lib.h> ?

Попробовал GitHub - olikraus/u8g2: U8glib library for monochrome displays, version 2 GraphicsTest.ino
ssd1306 в примере только SPI, поэтому взял вот эту строчку для дисплея:
U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/* clock=/ SCL, / data=/ SDA, / reset=*/ U8X8_PIN_NONE); // OLEDs without Reset of the Display
Работает однако !

Просто импоссибл кейс. I2C не определяется, но экран работает. Чипсет 1309, но инит от 1306. Может он ещё на 3.3v?

@Nesco , может он у Вас работает по SPI? (с той библиотекой, что работает)
Соответственно библиотеки, которые поддерживают только I2C, не могут к нему подключиться.

Но вообще, раз уж задаете вопрос, обязательно приводите:

  1. Схему.
  2. Скетч.

Есть вот такие схемы, для I2C и SPI. Их прикладывают продавцы торгующие моими полуработающими дисплеями. Схемы в стиле “найдите 3 отличия”. Скетч не привожу, потому что сгодится любой пример из общеизвестной библиотеки.
I2C


SPI

Я запитывал от 3.3v (Li-Ion18650) - работал. Вроде 1306, 1309 все на 3.3v .

А в сабже и на странице продавца что написано?

Продавец ничего не указал по питанию.

Я про чипсет.

По питанию чипсета и для 1306 и для 1309 - VDD = 1.65V ~ 3.3V for IC logic
На моей тоже стоит стаб, типа 662k на 3.3v.

Нашёл ещё одну схему с моей платой у другого продавца TZT.

У всех моих олед на плате стоит стабилизатор 3.3В При этом они и от 3.3В работают. Дроп на стабилизаторе небольшой.

На моей тоже стоит стаб, типа 662k на 3.3v.

Нашел похожую ситуацию
здесь
В последнем сообщении говорится про сигнал D/C#
У меня он через резистор 1к на землю.
А когда он притягивается к земле, то сканер I2C его не видит. Это пишет чел.
Иу меня такая фигня. Попробую его переставить на притяжку к 3.3v.
Переставил, но не помогло. Сканер I2C также не видит. И вообще перестала работать даже с библ. OLED_I2C
Вернул как было. Опять также работает с двумя библиотеками.

Заработала всё таки :+1:.
Пришлось закоротить входные диоды на схеме D1, D2.
Сравнил со старым рабочим OLED 2.42 ssd1309 (там другая плата, SPI переделанная в I2C, но смысл тот же). Вот на ней этих диодов не было, а также была подтяжка SCL, SDA к +3.3v через 4.5к . И также они шли на 13 и 14,15 выводы шлейфа.
Теперь все мои привычные библиотеки работают. И сканер I2C её видит, адрес 0x3C. Но как диоды могли повлиять на работоспособность библиотек?

Ну так и пользуйтесь примерами из любой известной библиотеки.
На форум-то зачем пришли?

А сравнивать со схемами из дэйташита не пробовали?

Этот сигнал не имеет никакого отношения к I2C, а относится исключительно к SPI.