Проблемы с подключением устройств по I2C

LOSTLY

✩✩✩✩✩✩✩
3 Май 2024
7
1
Добрый день, комрады.

Дано:
1. Arduino Nano, питание от 5В.
2. Экран на базе SH1107, питаем от Arduino, адрес 0х3С.
3. Устройство с установленной EEPROM AT24C02, адрес 0х50, адрес контроллера 0х61. На входе устройства 12В, на входе памяти 5В.

Если подключать по отдельности, I2C сканер нормально видит что экран, что память.

Стоит их оба включить в одну цепь:
1. 12В подано - сканер видит EEPROM.
2. 12В не подано - сканер не видит ничего.

В обоих случаях на экран приходит 5В питания и на SDA/SCL тоже висит по 5В.
Земля объединена. На экран 5В от Ардуино через 10кОм на SDA/SCL подтянуто.

В чем может быть проблема? Куда копать то?
 

Вложения

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
Проверьте подтягивающие резисторы к питанию. Они должны быть только на одном устройстве.
 

LOSTLY

✩✩✩✩✩✩✩
3 Май 2024
7
1
@Геннадий П, Спасибо за совет. Я так понимаю, они же в Ардуино по умолчанию есть на i2c? В приемнике то точно стоят, но если убрать с экрана, проблему это не решает.

Зато помогло накатить программный i2c
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
Я так понимаю, они же в Ардуино по умолчанию есть на i2c?
В ардуиновских модулях нет никакой гарантии, кто то ставит, кто то нет, нужно всегда проверять. Подтяжка должна быть одна, 4.7 кОм, желательно на ведущем устройстве (контроллере).
Есть разные заумные формулы для расчета номинала сопротивления, но на практике проще ткнуться осциллографом и посмотреть на сигнал.
 
  • Лойс +1
Реакции: LOSTLY