@@ -36,7 +36,7 @@ If the `ALTERNATE_OD` mode is setted but no pull-up circuit is implemented the d
# _Deadlocks are a feature, not a bug!_
Kidding, they are not. Unluckly the I2C bus can get in a locked state in particular conditions. If we are in the situation where the slave is pulling down the SDA but is no longer receiving clock signals, the slave won't ever stop pulling SDA down, causing all the other devices to see the bus as busy. This means that no device can become a master, so on the SCL line nobody will issue the clock cycles the slave is expecting. This could happen when the state machine inside the slave is messed up due to lost clock cycles; in real life this could happen for:
Kidding, they are not. Unluckily the I2C bus can get in a locked state in particular conditions. If we are in the situation where the slave is pulling down the SDA but is no longer receiving clock signals, the slave won't ever stop pulling SDA down, causing all the other devices to see the bus as busy. This means that no device can become a master, so on the SCL line nobody will issue the clock cycles the slave is expecting. This could happen when the state machine inside the slave is messed up due to lost clock cycles; in real life this could happen for:
- A reset of the master without a power-cycle;
- A glitch on the SCL line, causing a loss of at least one clock cycle;