Проблемы с подключением устройств по 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,948
627
45
Проверьте подтягивающие резисторы к питанию. Они должны быть только на одном устройстве.
 

LOSTLY

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

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

Геннадий П

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