Embedded Sharing #36: RK3576 Flashing Failure? A Step-by-Step Guide to Troubleshoot Core Issues

Cover Image

Embedded Sharing #36: RK3576 Flashing Failure? A Step-by-Step Guide to Troubleshoot Core IssuesThe Yuan Dynasty capital, Shangdu, located in the Inner Mongolia grasslands, has a history of about 750 years, predating the capital’s establishment in Beijing. It was here that Marco Polo first met Kublai Khan, the founder of the Yuan Dynasty.

Main Content

When encountering a system that cannot be flashed during board-level debugging, how should you respond?

Believe it or not, I recently faced such a situation.

Let’s take a look at the schematic directly to see if there are any issues.

Embedded Sharing #36: RK3576 Flashing Failure? A Step-by-Step Guide to Troubleshoot Core Issues

Problem Description:Pressing the button does not enter Maskrom mode for flashing the system.

Problem Analysis: When a function fails, it can be helpful to think in reverse about why it should work. Understanding the principles of operation will provide a basis for troubleshooting when it fails.

According to the official RK documentation, the reason pressing the Maskrom button can enter flashing mode is that the BOOTROM code (pre-programmed at the factory) detects the ADC value of the SARADC_VIN0_BOOT pin when powered on. If the ADC value is 0 (i.e., shorted to ground), the chip will enter Maskrom mode.

The different ADC values of this pin correspond to different boot sequences or states:

Embedded Sharing #36: RK3576 Flashing Failure? A Step-by-Step Guide to Troubleshoot Core Issues

Now that we understand the working principle of entering Maskrom mode for flashing the system, we can analyze the schematic.

Embedded Sharing #36: RK3576 Flashing Failure? A Step-by-Step Guide to Troubleshoot Core Issues

Let’s check what the voltage is at SARADC_VIN0_BOOT when the button is pressed. The calculated value is 1 / (1 + 10) * 1.8V ≈ 0.16V. This is a calculated value, and actual resistors have tolerances.

Of course, in practical work, we don’t need to calculate the voltage with a pen; we have tools as advanced engineers — a multimeter, which we can use to measure directly.

The multimeter shows about 0.3V, which clearly indicates that the voltage at SARADC_VIN0_BOOT is not zero when the button is pressed, so it will not enter Maskrom mode.

Problem Resolution:Remove the 1K resistor R71 directly.

It is worth mentioning that the SARADC_VIN0_BOOT pin detects the ADC value, so it has a high precision requirement for voltage. This needs to be considered during hardware design.

In the RK platform flashing system, besides Maskrom mode, there is also Loader mode. What are the differences between them? Why are there two modes? Stay tuned for our next discussion.

(End)

Welcome to follow “Embedded Sharing” for continuous updates! ☞

Leave a Comment