All Errata Descriptions

[中文]

[CPU-206] Possible Deadlock Due to Out-of-Order Execution of Instructions When Writing to LP SRAM Is Involved

Affected revisions: v0.0 v0.1

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

Affected revisions: v0.0 v0.1

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-7227] Unavailable Channel 4 in SRA ADC1

Affected revisions: v0.0 v0.1

Description

Channel 4 (ADC1_CH4) of ADC1 is not operational in the ESP32-H2 chip.

Workarounds

Use other channels instead of ADC1_CH4.

Solution

Fixed in chip revision v1.2.

[ADC-1477] Loss of Precision in Lower Four Bits of SAR ADC

Affected revisions: v0.0 v0.1

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

Affected revisions: v0.0 v0.1

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

Affected revisions: v0.0 v0.1

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

Affected revisions: v0.0 v0.1

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

Affected revisions: v0.0 v0.1

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

Affected revisions: v0.0 v0.1

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

Affected revisions: v0.0 v0.1

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

Affected revisions: v0.0 v0.1 v1.2

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.