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:
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):
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.
why some I2C-displays stop working ...
Post here first, or if you can't find a relevant section!
-
- Posts: 142
- Joined: Mon May 06, 2024 1:46 pm
-
Answers: 1
- Location: Germany
Return to “General discussion”
Jump to
- Announcements
- New users start here
- ↳ Forum rules, FAQs and HowTo's
- ↳ Let us know a bit about you and your projects
- Arduino for STM32
- ↳ General discussion
- ↳ Ideas & suggestions
- ↳ Cores
- ↳ STM32 Core
- ↳ Builds and Announcements
- ↳ Code snippets
- ↳ Ideas & suggestions
- ↳ General discussion
- ↳ Installation and OS related
- ↳ Libraries & Hardware
- ↳ PR's bugs and enhancements
- ↳ LibMaple
- ↳ Builds and Announcements
- ↳ Code snippets
- ↳ General discussion
- ↳ Ideas & suggestions
- ↳ Installation and OS related
- ↳ Libraries & Hardware
- ↳ PR's bugs and enhancements
- ↳ Steve's LibMaple core
- ↳ General discussion
- ↳ PR's bugs and enhancements
- ↳ Projects
- ↳ IDE's
- ↳ Off topic
- Arduino for STM8
- ↳ General discussion
- ↳ Cores
- ↳ STM8 Core
- ↳ Other
- Boards
- ↳ Custom design boards
- ↳ Maple & Maple mini etc
- ↳ STM boards (Discovery, Eval, Nucleo, ...)
- ↳ All other boards
- ↳ STM32F0 based boards
- ↳ STM32F1 based boards
- ↳ STM32F2 based boards
- ↳ STM32F3 based boards
- ↳ STM32F4 based boards
- ↳ STM32F7 based boards
- ↳ STM32G0 based boards
- ↳ STM32G4 based boards
- ↳ STM32H7 based boards
- ↳ STM32L0 based boards
- ↳ STM32L1 based boards
- ↳ STM32L4 based boards
- ↳ STM32L5 based boards
- ↳ STM32MP1 based boards
- ↳ STM32WB based boards
- Bootloaders
- ↳ STM32 HID bootloader
- ↳ USB bootloader
- ↳ STM32 SD-Bootloader
- ↳ STM32 USB CDC bootloader
- Uploaders and debuggers
- ↳ STLink
- ↳ USB to Serial adaptors
- ↳ Black Magic Probe & other
- Dead Thread Graveyard
- ↳ Dead Thread Graveyard