If the ATWINC Flash is marginally programmed, the ATWINC Flash corruption may occur
where random Flash bytes can randomly show ‘
0
’ or
‘
1
’ logic upon Flash read. Marginal programming means that the
ATWINC Flash was subject to an unstable voltage level on its VDDIO rail during the
programming process. Its symptoms are as follows:
- ATWINC part is unable to
boot
- ATWINC part is unable to
start
- ATWINC part is unable to
complete initialization
- ATWINC part hangs during run
time due to fetching incorrect/incomplete instructions from the Flash
The ATWINC Flash is usually programmed during a firmware upgrade, which is done via a
host MCU over SPI, host PC tools over I2C/serial bridge or built-in OTA.
Additionally, the ATWINC firmware uses the Flash to save hashed AP credentials for
fast reconnection.
Affected Versions
- A part that is running 1.2.2 or
earlier firmware or driver
- A part that is upgraded to any
version using 1.2.2 or earlier built-in OTA
- A part that is upgraded to any
version using 1.2.2 or earlier host driver SPI Flash APIs
- A part that is upgraded to any
version using 1.2.2 or earlier PC tools
Fix Version
- ATWINC 1.2.3+ firmware, driver
and PC tools
Work around
Follow either of the following two actions/recommendations:
- The ATWINC 1.2.3+ firmware,
driver and PC tools double program the Flash to strengthen the Flash cells
electrical level and minimize or mitigate the impact of unstable VDDIO
levels. To protect a working ATWINC part or to recover a
marginally-programmed ATWINC part, upgrade to the 1.2.3+ firmware and
driver. The firmware upgrade must be done using:
- PC tools from 1.2.3+
release package
- SPI Flash APIs from
1.2.3+ host driver
Note: OTA does not
protect a working part against a possible marginally-programmed Flash,
nor does it recover a marginally-programmed part. This is a one-time
action; OTA can be used later to update to other, newer versions of the
ATWINC firmware.
- Make sure that the ATWINC
VDDIO that supplies the ATWINC Flash voltage is stable all the time within
the recommended operating range: 2.7V – 3.6V (typical 3.3V).