STM32F405, ChibiOS-RT 18.2: I2C always busy
Posted: Thu Aug 23, 2018 10:42 am
Hi,
In our project, we recently upgraded from ChibiOS-RT 17.6 to 18.2. We use an STM32F405 microcontroller. Using 18.2 the I2C status register 2 always has a value of 2 (the busy flag is set). As a result, the I2C driver gets stuck in a while loop when trying to transmit a message via I2C (LLD/I2Cv1/hal_i2c_lld.c: the while loop in i2c_lld_master_transmit_timeout).
I tried restarting the board and executing a software reset of the I2C bus (using the CR1 SWRST flag), but that didn't solve the problem.
On a different board we are using an STM32F103 microcontroller and the I2C bus works fine with both ChibiOS 17.6 and 18.2. The I2C also worked fine on the STM32F405 microcontroller when we used ChibiOS 17.6.
Do you have any idea why we see this behavior on the STM32F405 microcontroller?
Thank you in advance!
In our project, we recently upgraded from ChibiOS-RT 17.6 to 18.2. We use an STM32F405 microcontroller. Using 18.2 the I2C status register 2 always has a value of 2 (the busy flag is set). As a result, the I2C driver gets stuck in a while loop when trying to transmit a message via I2C (LLD/I2Cv1/hal_i2c_lld.c: the while loop in i2c_lld_master_transmit_timeout).
I tried restarting the board and executing a software reset of the I2C bus (using the CR1 SWRST flag), but that didn't solve the problem.
On a different board we are using an STM32F103 microcontroller and the I2C bus works fine with both ChibiOS 17.6 and 18.2. The I2C also worked fine on the STM32F405 microcontroller when we used ChibiOS 17.6.
Do you have any idea why we see this behavior on the STM32F405 microcontroller?
Thank you in advance!