All Errata Descriptions
[CPU-206] Possible Deadlock Due to Out-of-Order Execution of Instructions When Writing to LP SRAM Is Involved
Description
When HP CPU executes instructions (instruction A and instruction B successively) in LP SRAM, and instruction A and instruction B happen to follow the following patterns:
Instruction A involves writing to memory. Examples: sw/sh/sb
Instruction B involves only accessing the instruction bus. Examples: nop/jal/jalr/lui/auipc
The address of instruction B is not 4-byte aligned
The data written by instruction A to memory is only committed after instruction B has completed execution. This introduces a risk where, after instruction A writing to memory, if an infinite loop is executed in instruction B, the writing of instruction A will never complete.
Workarounds
When you experience this problem, or when you check the assembly code and see the above mentioned pattern,
Add a fence instruction between instruction A and the infinite loop. This can be achieved by using the rv_utils_memory_barrier interface in ESP-IDF.
Replace the infinite loop with instruction wfi. This can be achieved by using the rv_utils_wait_for_intr interface in ESP-IDF.
Disable the RV32C (compressed) extension when compiling code that to be executed in LP SRAM to avoid instructions with not 4-byte aligned addresses.
Solution
Fixed in chip revision v1.2.
[CLK-6996] Inaccurate Calibration of RC_FAST_CLK Clock
Description
In the ESP32-H2 chip, the frequency of the RC_FAST_CLK clock source is too close to the reference clock (32 MHz XTAL_CLK) frequency, making it impossible to calibrate accurately. This may affect peripherals that use RC_FAST_CLK and have stringent requirements for its accurate clock frequency.
For peripherals using RC_FAST_CLK, please refer to ESP32-H2 Technical Reference Manual > Chapter Reset and Clock [PDF].
Workarounds
Use other clock sources instead of RC_FAST_CLK.
Solution
Fixed in chip revision v1.2.
[ADC-1477] Loss of Precision in Lower Four Bits of SAR ADC
Description
The lower four bits of the SAR ADC data bits are missing, causing a loss of precision in the corresponding bits.
Workarounds
No workaround.
Solution
Fixed in chip revision v1.2.
[I2C-308] I2C Slave Fails in Multiple-read Under Non-FIFO Mode
Description
If the I2C slave non-FIFO mode is enabled and the master performs multiple-read operation on the slave, the master can not correctly read the data from the slave.
Workarounds
Set I2C_FIFO_ADDR_CFG_EN and I2C_SLV_TX_AUTO_START_EN to 1 and I2C_FIFO_PRT_EN to 0 for the slave. The master uses the RSTART -> WRITE (slave addr, fifo addr) -> RSTART -> WRITE (slave addr) -> READ (NACK) -> STOP command sequence. When using this method, ensure that the slave TX FIFO is always in a non-empty state.
Solution
Fixed in chip revision v1.2.
[SPI-304] Enabling Flash Auto Suspend May Cause Abnormalities in Data Read
Description
After the flash auto suspend feature is enabled, read operations on the SPI0 bus and erase/program operations on the SPI1 bus can be executed concurrently. When software performs erase or program operations on flash via SPI1, and the cache reads flash via SPI0 from time to time, if the erase or program operation is executed first, the expected request sequence is: ERASE or PROGRAM > SUSPEND or WFI (wait for idle) > READ.
In practice, when the erase or program operation is executed first, the request sequence is: ERASE or PROGRAM > READ, which may cause data read abnormalities and program execution issues.
Workarounds
Disable the auto suspend feature.
Solution
Fixed in chip revision v1.2.
[LEDC-253] Unable to Reach 100% Duty Cycle at Maximum Duty Resolution
Description
When the timer selects the maximum duty resolution, in such case, 100% duty cycle is not achievable. Setting duty to (2MAX_DUTY_RES) will break the internal duty calculation.
Workarounds
No workaround.
Solution
Fixed in chip revision v1.2.
[RMT-176] The Idle State Signal Level Might Run into Error in RMT Continuous TX Mode
Description
In ESP32-H2’s RMT module, if the continuous TX mode is enabled, it is expected that the data transmission stops after the data is sent for RMT_TX_LOOP_NUM_CHn rounds, and after that, the signal level in idle state should be controlled by the “level” field of the end-marker.
However, in real situation, after the data transmission stops, the channel’s idle state signal level is not controlled by the “level” field of the end-marker, but by the level in the data wrapped back, which is indeterminate.
Workarounds
Users are suggested to set RMT_IDLE_OUT_EN_CHn to 1 to only use registers to control the idle level.
This issue has been bypassed since the first ESP-IDF version that supports continuous TX mode (v5.1). In these versions of ESP-IDF, it is configured that the idle level can only be controlled by registers.
Solution
Fixed in chip revision v1.2.
[BOOT-9537] Accidentally Enter USB Download Boot Mode If the Power-up Duration Is Too Long
Description
During power-on, if the voltage rises from 0 V to 3.3 V in more than 12 ms, the chip may accidentally enter USB Download Boot mode.
Workarounds
Ensure that the power-up duration is less than 12 ms.
Solution
Fixed in chip revision v1.2.
[802.15.4-9538] TX Power Variation in Certain RF Certification
Description
In certain RF certification channels, the transmit power of chip revisions prior to v1.2 may be slightly lower than the design expectation. However, it still meets the certification requirements.
Workarounds
No workaround.
Solution
Fixed in chip revision v1.2. The transmit spectrum band edge has been optimized in this revision.
[PCNT-249] Unable to Trigger Step Interrupts
Description
When the step counter is enabled and the step counter reaches the low limit or high limit, step interrupts are not generated properly.
Workarounds
Configure the system to notify the application every time the counter increases or decreases by a specified value (x). When this condition is met, the program enters the interrupt, reads the current counter value, and calls the user’s callback, passing the counter value to the caller.
Solution
No fix scheduled.