Device have Serial NOR Flash chip MX25L6406E located on the rear of the PCB (SO-8/SOIC-8 Package). Is it possible to program chip without desoldering it? (In-system programming). As I know, it depends mainly on specific design.

SPI NOR flash


closed as unclear what you're asking by Marcus Müller, winny, Dmitry Grigoryev, Nick Alexeev Aug 14 '18 at 23:49

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    \$\begingroup\$ "as I know, it depends on system design". Exactly. So, your answer is "it depends, we can't know", but you already knew that. I don't really understand what your question is, then? \$\endgroup\$ – Marcus Müller Aug 12 '18 at 10:03
  • \$\begingroup\$ @Marcus Müller But I did not say that I know what exactly it depends on. \$\endgroup\$ – fxgreen Aug 12 '18 at 10:07
  • \$\begingroup\$ Ah, so you're asking what the in-system programmability depends on? \$\endgroup\$ – Marcus Müller Aug 12 '18 at 10:08
  • \$\begingroup\$ A serial NOR flash chip is self-evidently programmable. A programming system can program it. You have provided no information about your system, its capabilities, or the extent to which you have access to those capabilities. \$\endgroup\$ – amb Aug 12 '18 at 10:09
  • 1
    \$\begingroup\$ By the way in-system programming is not the same as in-situ programming. The latter term is often referred to a design (not a chip) which allows an external programmer to write to the chip. \$\endgroup\$ – Oldfart Aug 12 '18 at 10:36

So you're asking how to determine whether a chip can be in-system programmed.

There's a lot of factors to that, but the ones I can think of are:

  • selective powering: Can you power the memory IC without starting the rest of the system? If giving power to that IC means you power the microcontroller it's connected to, and you have no way of stopping that microcontroller from using the SPI lines you want to connect to to talk to the memory chip, then this can't work. In essence, you'll have a hard time if the memory IC and the microcontroller run from the same power supply, and the microcontroller doesn't have an externally accessible reset pin. Also, if the same power supply powers other components, what will happen?
  • Side effects of the programming itself: are there other devices on the SPI bus? When the microcontroller is powered of, will these have a chip select line that is deasserted, i.e. will they know that they're not "meant" to be talked to?
  • Pin direction problems: Now, your MCU is powered off or in reset, but you power your memory and do some communication on the SPI bus. In which state are the pins of the MCU that connect to the memory when powered off/ in reset? Are they shorted to ground, pulled up to VCC? Is it OK to apply e.g. 3.3V to pins when the MCU is powered off, or will it be damaged?
  • \$\begingroup\$ Just to clarify, when we do in-system programming, I assume that board should be powered Off, as we want to talk directly with the memory chip, and +3.3V Power Supply will be applied to flash chip VCC pin from an external programmer. The flash chip connected via MCU which control whole device, yes. MCU have an externally accessible reset pin. As I have no schematic diagram of circuit board or detailed specs, I can't be more specific than that. I can't tell about p.1, p.2, p.3 since circuit diagram is not available. But I can take risks in hope that MCU will not be burnt.. \$\endgroup\$ – fxgreen Aug 13 '18 at 22:03

In-system programming a chip without knowledge of the rest of the design is fraud with dangers.

First the device needs to have power. If the board works with it's own supply you are lucky.
If not you you have to supply the voltage. The power pin (lets assume 3V3) will be connected to the power of all other 3V3 pins. Thus you have to provide enough current to drive all the 3V3 logic. This is your first chance to blow up the board as the 3V3 supply might not like it to have power driven INTO its output. Also there may be other chips on the board which run of a different supply. Only partial powering the board may damage them.

Lets's assume you have safely supplied power. Next you have to drive the SPI signals: CS, SCLK and MOSI. But these pins will already be connected to other chips on the board*. Here is your second chance to blow up the board. If you drive them externally, you have two outputs working against each other. To get a good quality signal, you probably have to drive the signals harder then the existing chips. Therefore you are likely to damage the existing signal driver chips.

*The existing in-system driver software may be able to disconnect (tri-state) the normal driver chips if the device is to be programmed. However the board may be designed for the SPI chip to be programmed before it is soldered soldered. IN which case the board will not be designed for in-system prorgamming.


Not the answer you're looking for? Browse other questions tagged or ask your own question.