IDF 5.2 and 5.1.2 (stable): legacy i2c driver slowdown from another task

cpehonk
Posts: 16
Joined: Sat Nov 09, 2019 3:41 pm

IDF 5.2 and 5.1.2 (stable): legacy i2c driver slowdown from another task

Postby cpehonk » Sun Jan 21, 2024 9:23 am

Hi All!

Consider following situation: main task creates legacy i2c driver, initializes and uses it from time to time. A second task is responsible to accept and to answer TCP connect requests. On thing to do within the TCP task is to do a full OTA update. During update an i2c connected LCD display shows the progress. The following behaviour I observed:
- indicating the OTA update via queue and doing the staff within the main task => fast LCD update display
- calling the same functions from within the TCP task => LCD communication is slowed down by a factor of 100 (approx.) (850µs => 65ms)
for each write cycle.

Any hints what the reason is?

My hope is with IDF 5.2 and the new i2c master driver this behaviour is gone. Unfortunately, no reading is possible at the moment (see my other post).

Greetings
Christoph

yves123
Posts: 1
Joined: Wed Aug 28, 2024 9:58 am

Re: IDF 5.2 and 5.1.2 (stable): legacy i2c driver slowdown from another task

Postby yves123 » Wed Aug 28, 2024 11:05 am

Hi,
I've got the same problem: expected speed with the i2c legacy driver, extremely slow in another task. As a workaround, I've created the task with a higher priority, 1 instead of tskIDLE_PRIORITY (0).
Yves

Who is online

Users browsing this forum: Basalt, Bing [Bot] and 316 guests