EmbeddedRelated.com
Forums
Memfault Beyond the Launch

LPC2368 does not start up (intermittent)

Started by Joe October 19, 2011
I have been having intermittent problems with an LPC2368 design in that the processor sometimes fails to start up when power is applied. There is an ethernet MAC on the same power plane that does start up (indicated by speed & activity LEDs), but on the 2368 my code does not run, and attempting to connect via JTAG fails.

I have observed this on several different units, it is not particular to a specific unit. It only seems to affect about 5% of the builds. All chips are revision B.

Does anyone have any idea what sort of power anomaly at start-up would cause the 2368 to not boot properly? Or any suggestions for determining what state the processor is in when it doesn't boot my code or allow JTAG connection?

- Joe

An Engineer's Guide to the LPC2100 Series

In my experience this is more likely a SW bug due to using some
uninitialized variable or not setting up the HW properly than a HW bug.

Good examples are setting the PLL incorrectly, or enabling the CPU to run
from a high speed clock without enabling the flash accelerator with the
correct timings.

It depends on what you did with the exception handlers, but I've seen that
it is not possible to gain access with the debugger if the CPU enters a
fault handler which simply branches to itself, or kills the clock.

I don't use the 2368 but have seen similar behaviour on the LPC11xx, and
LPC17xx devices so I'm speculating here but a good test for the HW is to
boot the device so that it enters the on chip programmer code then connect
with the debugger to regain control. If you can do this reliably then it's
not a HW fault, I guess it depends on how reliably the devices normally
boot.

Also a good indicator may be if the device struggles to boot after power
down, but once running can be reset reliably, this would be more likely if
something was used before initializing as presumably once the code runs it
is not a problem and would be unlikely to affect the next boot after reset
so long as power was not removed.

Regards

Phil.
--- In l..., "Phil Young" wrote:
>
> In my experience this is more likely a SW bug due to using some
> uninitialized variable or not setting up the HW properly than a HW
> bug.

To expand, the device has a Pover-Over-Ethernet input and an aux power input. Both the POE circuit and the aux power input feed a 5V dc-dc converter which feeds a 3.3v regulator for the 2368 and National 83848 PHY.

The boot-up problem observed only happens when using the POE supply.

I changed my bootloader code so that the very first thing that happens is to turn on an LED. The LED does not come on.

Next, I tried booting the internal ISP code (i.e power up with p2.10 low). And I see the same thing. The PHY's LEDs light up, but the 2368 appears to be dead. (I can not connect via JTAG.)

I have only started to see this problem recently. Date codes of the chips where I have seen this problem are 0740B and 0741B. Never seen this on a rev A chip.

I was just made aware of errata on VBAT. Says you can not leave VBAT floating, or else boot-up problems may happen. We have always connected VBAT to ground, although it is now suggested that VBAT be tied to VDD when not used. I'll switch this over on a couple problem units to see if the problem goes away.
I'm thinking this is a Power-On-Reset issue. I do not have a reset controller on the board. When the 2368 doesn't boot at power on, toggling external reset always makes it come to life.

There was a major layout change to this board (went from parts on both sides to parts on one side), which may explain why we are seeing the problem much more now. There were 6 problem boards of 100 with the new layout as opposed to about 2/200 problem boards with the previous layout.
Have you ruled out your clock source yet? Maybe do a test using an internal clock to see if it starts up. If it does work you might have to adjust your XTAL load capacitance.
--- In l..., "jhvdb" wrote:

> Have you ruled out your clock source yet? Maybe do a test
> using an internal clock to see if it starts up. If it does
> work you might have to adjust your XTAL load capacitance.

I think so. I changed the code so an LED is turned on before attempting to start up the PLL off the external crystal. The LED would never come on. Could a faulty start-up of the PLL affect GPIO output turning the LED off???
I don't know about PLL-setup affecting GPIO. However a logic-analyzer or a digital oscilloscope (on single trigger) could tell you if the led does come on, even if its a very short pulse.

Memfault Beyond the Launch