You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
): When the I2C controller is not driving SCL, wait a small delay and see if someone else is holding it low. The problem in the context of our QSFP controller is that each module's power supply is only enabled when a module is installed. That rail also energizes the pull-up resistors on the module's I2C rail, so the SCL line will go low. We erroneously detect this as a SCL stretch.
The text was updated successfully, but these errors were encountered:
This commit fixes a couple of bugs related to SCL stretching. First off,
in the `I2CBitController` I adjusted how we sample SCL to detect
stretching so we're not errantly sampling. Then in the `I2CCore` I added
a mechanism to handle the SCL stretch timeouts when we see them. Before
we lacked this and that meant if that was seen, we were wedged. The rest
of the changes were to test cases in order to mimic the behavior
observed that brought the problems to our attention.
Fixes#246Fixes#247
The I2C SCL stretch detection is very simple (
quartz/hdl/ip/bsv/I2C/I2CBitController.bsv
Lines 155 to 161 in e5f3844
The text was updated successfully, but these errors were encountered: