cancel
Showing results for 
Search instead for 
Did you mean: 

HAL raises NAK error interrupt at the end of the I2C Slave receiving while it finished correctly.

Takemasa
Associate III

HI

I have problem during the programming with HAL_I2C_Slave_Receive_IT(). At the end of the receiving without error, the HAL calls HAL_I2C_ErrorCallback(), instead of HAL_I2C_SlaveRxCpltCallback(). The error status is AF ( NAK received ). On the other hand, my logic analyzer shows there is no NAK on the translation.

Would you give me some advice to avoid this problem? The HAL_I2C_SlaveRxCpltCallback() should be called at the end of correct transfer.

CubeMX version 5.0.0 for Linux

SW4STM32 version 1.15.0.201708311556 for Linux 64bit

STM32CubeFW_L1 version 1.8.1

Platform : Nucleo L152

I attached a demonstration program of this problem. It runs on a Nucleo L152 board.with some additional wires and registered.

The details of connections and how program works are described in the README file of the program.

The program can be imported from SW4STM32.

Regards,

Takemasa

3 REPLIES 3
Takemasa
Associate III

Hi Any update on this issue?

I checked with Nucleo F722. It works without this problem. ​So, I guess this is STM32L1 HAL bug or STM32L1 I2C IP errata.

Takemasa

Takemasa
Associate III

Hi Any update on this issue?

Takemasa
Associate III

Any update?