In my design for PCIE to USB converter board. I use VL805 Host Controller to do the conversion.
the chip needs a firmware that I flash it to SPI FLASH (U25) using DediProg. I added a special 6-pin header (J14) to which I connect wires to DediProg.
my plan is to flash the firmware through the header, and supply voltage to the SPI by using Dediprog VCC.
at the flashing time, VL805 won't be connected to power. the signals {SPICS#, SPICK, SPISI, SPISO} are connected to that Host controller.
I was wondering if there could be a problem with the connection at the intersection between the SPI FLASH and the HEADER although the signals {SPICS#, SPICK, SPISI, SPISO} will be connected to a device that has no power.
My Solution:
Note: the VL805 sits on a PCB that will be connected as an external device to mini-PC motherboard.
Since there is a possibility of having ESD protection diodes at the SPI pins inside VL805 Chip, if we decide that we turn off the motherboard (3V3AUX_IN will be off) then turn on the programmer (DEDIPROG) in order to flash, we can risk powering up the chip again by supplying voltage to 3V3AUX_IN when the SPI signals {SPICS#, SPCIK, SPISI, SPISO} are high:
NOTE: that's just an image for clarification, I still have no information about whether ESD protection diodes exist in the VL805 or not.
So, to fix that, I thought of adding an N-MOSFET transistor that will pull down the (Power on Reset - PONRST) pin which will reset the chip at the time the Programmer device (DEDIPROG) is ON and is delivering VCC_DEDIPROG (which eventually will turn ON 3V3AUX_IN, and that's O.K because we want the CHIP to be ON when we do reset):
This means VCC_DEDIPROG will supply voltage to 3V3AUX_IN (which in a normal mode it should come the motherboard, but the motherboard at the flashing time is turned off) and that will help the transistor pull the PONRST node down.
the DIODE 101 will prevent current from passing to the programming device when 3v3AUX_IN is supplied from the motherboard (which we will turn it on after we finish flashing the SPI ROM).
Diode D100 will help discharging the C601 capacitor in cases where 3V3AUX_IN is suddenly down as result of power being cut-off or noise, in that case a system reset should be performed through PONRST pin.
What do you think of my solution?