analogdevicesinc / msdk

Software Development Kit for Analog Device's MAX-series microcontrollers
Apache License 2.0
60 stars 75 forks source link

fix(PeriphDrivers): Fix MAX32690 I2C Recovery Failures for TQFN Package #1065

Open Jake-Carter opened 4 days ago

Jake-Carter commented 4 days ago

Description

This PR adds a check for the MAX32690GTK_PACKAGE_TQFN compiler definition to work around MAX32690 Rev A2 Errata #16 (See https://www.analog.com/media/en/technical-documentation/data-sheets/max32690_a2_errata_rev2.pdf)

Testing found that the MXC_I2C_Recover function would fail for this package, but only if the unrouted set of pins were enabled.

The new definition is added to the board.mk file in the BSP for the EVKIT. In this way, BSPs that use the TQFN package can match the hardware.

As implemented in #958, the WLP package enables both sets as recommended by the errata. However, for the TQFN this seems to be problematic. The I2C "scl" status bit in the control register always indicates the pin is at logic level 0 if the unrouted GPIOs are configured.