<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Flash reliability problems</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/25680/flash-reliability-problems</link><description> 
We are using a LPC2138 
I have just received a batch of boards that fail functional test. 
When I reprogram the binary, they work perfectly. 
So I have read back the contents of a failing board and compared it
to a binary read back after I reprogram</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Flash reliability problems</title><link>https://community.arm.com/thread/139599?ContentTypeID=1</link><pubDate>Thu, 10 Jun 2010 07:51:42 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:2fc02b47-b602-4950-9c47-0bda042df193</guid><dc:creator>edPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
Yes. With marginal contents, it can read back correct 9999 times
of 10000. If it affects your main loop, every iteration may then have
1/10000 to fail. And if the processor gets hot when running, that
failure rate may suddenly become 1/100 for every iteration.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash reliability problems</title><link>https://community.arm.com/thread/130649?ContentTypeID=1</link><pubDate>Thu, 10 Jun 2010 07:19:40 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f5962121-1a34-4c3f-bb3a-13f8ee2a2e4d</guid><dc:creator>Andrew Kelly</dc:creator><description>&lt;p&gt;&lt;p&gt;
In that case I wouldn&amp;#39;t read back the program correctly though? Is
it possible that the program looks correct but hasn&amp;#39;t been programmed
correctly?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash reliability problems</title><link>https://community.arm.com/thread/126210?ContentTypeID=1</link><pubDate>Thu, 10 Jun 2010 07:17:12 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:288faa72-baf7-44af-8074-69271a742785</guid><dc:creator>edPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
You can&amp;#39;t control the programming voltage. It is generated
internally. But it is important that the processor has a reasonable
temperature, and a stable (and correct) external supply voltage and
that the clock frequency is correct (and matches what is assumed)
during the programming.&lt;/p&gt;

&lt;p&gt;
If the external voltage varies, the internal voltage pump may not
be able to produce a stable programming voltage.&lt;/p&gt;

&lt;p&gt;
If the temperature is too high, the programming algorithm may
fail.&lt;/p&gt;

&lt;p&gt;
If the clock frequency is wrong, then the programming algorithm
may erase the flash sector for too short time or may write the data
with wrong timing.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash reliability problems</title><link>https://community.arm.com/thread/115808?ContentTypeID=1</link><pubDate>Thu, 10 Jun 2010 06:38:06 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:79488810-fc2a-46df-b4aa-f544c43dafe6</guid><dc:creator>Andrew Kelly</dc:creator><description>&lt;p&gt;&lt;p&gt;
It does not give data abort, application appears to run
partially.&lt;/p&gt;

&lt;p&gt;
I am reading the full 512K bytes as that is what is
programmed.&lt;/p&gt;

&lt;p&gt;
I am puzzled that I can read back the 512K correctly (binary
compare is same), but after re-programming everything works
perfectly.&lt;/p&gt;

&lt;p&gt;
I am interested in the power/programming voltage. I cannot verify
this becasue it is done in India.&lt;/p&gt;

&lt;p&gt;
I do remember that years ago, when programming E2, we used to
write over and over serveral times then read back.&lt;/p&gt;

&lt;p&gt;
Is it possible to the program , but ECC information causes a
problem because there are too many errors? This is something I know
nothing about.&lt;br /&gt;
Any information would be very welcome.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash reliability problems</title><link>https://community.arm.com/thread/104018?ContentTypeID=1</link><pubDate>Thu, 10 Jun 2010 06:29:31 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:25447090-0ea4-4ccd-9383-f3db72d4a839</guid><dc:creator>edPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
One thing - was it just the size of the application you read out,
or did you read out every single bit?&lt;/p&gt;

&lt;p&gt;
Another thing - the flash doesn&amp;#39;t just store your application.
Every sector also contains ECC information to allow it to detect and
autocorrect bit errors. If you have marginal data, then you may
sometimes fail such autocorrection. Too many bits gets the wrong
value, so the ECC information can&amp;#39;t compute the correction. This is
very much affected by the temperature of the device. The device
temperature when you programmed the units also affects the safety
margin.&lt;/p&gt;

&lt;p&gt;
Another thing - are you 100% sure that your devices always have
proper supply voltage? In case the supply voltage is affected by the
quality of the external supply voltage, you can get into troubles
when programming the flash. Maybe the factory had a broken PSU?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash reliability problems</title><link>https://community.arm.com/thread/90450?ContentTypeID=1</link><pubDate>Thu, 10 Jun 2010 05:25:19 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:24a49acc-0a71-4dbf-911a-64cb8f5c22f5</guid><dc:creator>Tamir Michael</dc:creator><description>&lt;p&gt;&lt;p&gt;
what is &amp;quot;fail&amp;quot;? data abort? have you tried to recreate this using
the debugger?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Flash reliability problems</title><link>https://community.arm.com/thread/58288?ContentTypeID=1</link><pubDate>Thu, 10 Jun 2010 05:24:19 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:a2c12c92-e9f6-45c2-9f55-f59f80656f36</guid><dc:creator>Tamir Michael</dc:creator><description>&lt;p&gt;&lt;p&gt;
your problems can be due to a bad supply, for example. what makes
you so sure it is internal flash at fault here?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>