I personally believe that when a test professional argues against Flash Programming at
ICT, this probably means that they lack the technical expertise to do so, or they have a
third party programmer or some expensive off-line station they are trying to sell you. Or
maybe they are trying to market an ICT that does not have this capability.
I keep no secrets. When I argue in favor of Flash at ICT, I have an
algorithm I am trying to sell you. However, I do want to keep my points as factual as
When I Google Flash at ICT I find an Intellitech paper
with some strong arguments against this practice. As you can see below, it is quite easy
to read between the lines and debunk all of these arguments.
Intellitech says: It can greatly
impact the design as it requires the designer to add test points for direct access to all
FLASH device pin. Maybe so for some large parallel flash devices. But if you
dont add the test points you cant test at ICT either. So whats the point
of ICT in the first place? Many of the large BGAs are Microcontroller Embedded Flash or
FPGAs, in which case they only need access to a few pins (JTAG, SPI, BDC, UART etc...) to
program the flash.
Intellitech says: ICT is not a highly flexible FLASH
programming platform because programming FLASH using ICT cannot be done outside of the
manufacturing facility. Just because you programmed flash at ICT does not
eliminate your ability to do so elsewhere. You can still reprogram your flash off-line or
in the field. This is like saying they should not put the tires on the cars in the factory
because you will need to carry a factory around with you for every time you get a flat.
Intellitech says: It requires that a new test program to be
developed and re-compiled each time there is a change in the FLASH memory contents.
Flat out not true! You recompile a new Deep Serial Memory .DDB file and copy it to the
tester, a 5 minute procedure that a penguin can do. No changes in the ICT program itself.
Thats about the same amount of work you would need to do for a firmware change at a
Intellitech says: Long on-board programming time increases the
cost of any PCB (although it has a very good benefit for the CM who charges for this ICT
test time). Many CM are actually opposed to Flash at ICT because they want to
charge you for a separate flash station with another operator and another handling of your
boards. Preprogrammed parts will also add another station or a premium to the price of the
Intellitech says: increases production line
balancing complexity. In the case where it adds only a few seconds,
this argument is just boloney. In the case where flash programming approaches a minute,
thats a good argument against In-Line ICT in the first place, as In-Line ICT also
limits your time allowance to do a meaningful test and produce a quality product. When
Flash at ICT exceeds a minute its time to revisit the algorithm you are using or the
programming speed of the device you have chosen for your design. I will admit that for
some very slow-to-program devices it makes sense to program elsewhere on lower cost
equipment. But 95% of the time it does not.