why some I2C-displays stop working ...

Post here first, or if you can't find a relevant section!
Post Reply
STM32ardui
Posts: 142
Joined: Mon May 06, 2024 1:46 pm
Answers: 1
Location: Germany

why some I2C-displays stop working ...

Post by STM32ardui »

Hi,

I see, some people have problems with their I²C displays.

I had similar problems 3 month ago. I made a temperature logger with a SAMD21-board - the important thing is, it's working with 3.3 V. There is a monochrome LCD display and a DS3231-RTC, both connected by I²C. First everything worked fine. Then it freezed after 30 minutes or 2 hours or nearly 3 days. Reset button on µC-board didn't help, I had to remove power supply.

Problems came from display!
Controller can work at 3.6 V maximum, but display board should work with 3.3 - 5.0 V.
There is a LDO to supply controller with 3.3 V, but no level shifter for SDA / SCL. I can't find a schematic, so I tried by my own to check out:
GM12864-59N.jpg
GM12864-59N.jpg (57.58 KiB) Viewed 3783 times
Diodes D1 and D2 have marking "Z14". That is a zener diode BZX84-C3V3, but in a SOT23 package with 3 pins. Diodes on board only have 2 pins. But I guess, developper of that display board wants to clamp voltages on SDA/SCL-lines.

A BZX84-C3V3 (and other small diodes for 3.3 V) have capacity of 450 pF, that's too much for I²C-lines according to I²C-bus specification UM10204. On my board these diodes clamped HIGH-logic level voltage to 2,4 V. From specification it must be more that 2,31 V. Also low-to-high transition is too long with nearly 600 ms.

After removing diodes D1 and D2 my temperature logger is working for now 3 months.
Here is the signal on SCL-line with diodes (cyan) and without (green):
IIC-SCL(Vergleich).jpg
IIC-SCL(Vergleich).jpg (57.12 KiB) Viewed 3783 times

So if you also have problems, that I²C-bus is freezing without a reason (missing pullup resistors, long lines or crazy Dupont-connectors), please check your board, how SCL and SDA lines are connected.
Post Reply

Return to “General discussion”