RM0401
In case of a misplaced START or RESTART detection in slave mode, the FMPI2C enters
address recognition state like for a correct START condition.
When a bus error is detected, the BERR flag is set in the FMPI2C_ISR register, and an
interrupt is generated if the ERRIE bit is set in the FMPI2C_CR1 register.
Arbitration lost (ARLO)
An arbitration loss is detected when a high level is sent on the SDA line, but a low level is
sampled on the SCL rising edge.
•
In master mode, arbitration loss is detected during the address phase, data phase and
data acknowledge phase. In this case, the SDA and SCL lines are released, the
START control bit is cleared by hardware and the master switches automatically to
slave mode.
•
In slave mode, arbitration loss is detected during data phase and data acknowledge
phase. In this case, the transfer is stopped, and the SCL and SDA lines are released.
When an arbitration loss is detected, the ARLO flag is set in the FMPI2C_ISR register, and
an interrupt is generated if the ERRIE bit is set in the FMPI2C_CR1 register.
Overrun/underrun error (OVR)
An overrun or underrun error is detected in slave mode when NOSTRETCH=1 and:
•
In reception when a new byte is received and the RXDR register has not been read yet.
The new received byte is lost, and a NACK is automatically sent as a response to the
new byte.
•
In transmission:
–
–
When an overrun or underrun error is detected, the OVR flag is set in the FMPI2C_ISR
register, and an interrupt is generated if the ERRIE bit is set in the FMPI2C_CR1 register.
Packet Error Checking Error (PECERR)
This section is relevant only when the SMBus feature is supported. Refer to
FMPI2C
A PEC error is detected when the received PEC byte does not match with the
FMPI2C_PECR register content. A NACK is automatically sent after the wrong PEC
reception.
When a PEC error is detected, the PECERR flag is set in the FMPI2C_ISR register, and an
interrupt is generated if the ERRIE bit is set in the FMPI2C_CR1 register.
Fast-mode Plus Inter-integrated circuit (FMPI2C) interface
When STOPF=1 and the first data byte should be sent. The content of the
FMPI2C_TXDR register is sent if TXE=0, 0xFF if not.
When a new byte must be sent and the FMPI2C_TXDR register has not been
written yet, 0xFF is sent.
implementation.
RM0401 Rev 3
Section 22.3:
571/771
591
Need help?
Do you have a question about the STM32F410 and is the answer not in the manual?
Questions and answers