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.
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.
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?
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.