EMX not starting not booting

I have EMX modules in production hardware where the EMX modules are not reliably starting or not booting at all on powerup. This is a serious problem. Can someone help me to get this solved?

I posted on this subject before and the feedback was that some floating pins or power supply could be the problem: http://www.tinyclr.com/forum/topic?id=5880

I’ve since had the problem develop on other units. I have tried actively pulling up or asserting the various EMX control pins so far with no success.

Here’s the situation:

EMX module pins RESET (70), DN (3), UP (7), Select/EN (53) and LMODE (J2) are left floating, setting COM interface on UART0 (pins 5/6).
3.3V power supply rise time is 2.4 milliseconds.

On most units this works perfect and the EMX modules boot well.

On one unit that I’m looking at now (not the only one with trouble), I can get the EMX to boot only 2 ways: (1) after power up by pressing the UP+DOWN+RESET buttons (temporarily shorting these pins to ground and then releasing) several times. I want to reiterate that more than one attempt is needed typically to get this EMX to boot by asserting the UP/DOWN/RESET pins or (2) by holding the % key in a terminal program window as power is turned up putting the unit to GHI loader mode and then pressing R to boot the module.

I have tried the following things to try to get the EMX module to boot reliably on power up each time and none of these have worked:

  1. actively pulling LMODE pin high to +3.3V
  2. actively pulling RESET pin high to +3.3V
  3. holding RESET pin to ground on power up and then releasing to float a few seconds after power up
  4. holding RESET+UP+DN pins to ground on power up and then releasing to float a few seconds after power up
  5. actively pulling UP+DN pins high to +3.3V

I know it’s not just a simple LMODE selection issue, because when the unit doesn’t boot and I don’t see anything on UART0 output, I know the module and my code isn’t starting because I also can’t get to it via ethernet link.

Sometimes asserting RESET+UP+DN takes the unit to TinyBooter, othertimes/most-times asserting the pins and releasing starts the module up as normal. Monitoring output on UART0 I see:

EMX TinyBooter Mode Version: 4.1.3.0 Debug: COM1 LCD: 320x240 IP: 0.0.0.0 MAC: 00.00.00.00.00.00 Managed heap size: 1048580 Custom heap size: 0 TinyBooter v4.1.2821.0 EMX Build Date: Oct 15 2010 09:49:41 ARM Compiler version 310739

or

Estimated Network RAM usage: 129667 (bytes) ip address from interface info: 10.10.25.185 mac addrress from interface info: 0.21.3.80.21.b0 EMX Version: 4.1.6.0 Debug: COM1 LCD: 320x240 IP: 10.10.25.185 MAC: 00.21.03.80.21.B0 Managed heap size: 13631488 Custom heap size: 1048576 .NetMF v4.1.2821.0 EMX, Build Date: Jun 30 2011 11:05:47 ARM Compiler version 410561

TinyCLR (Build 4.1.2821.0)

Starting…
Created EE.
Started Hardware.

I’ve measured the pin voltages on my EMX module in my system when things are floating: LMODE(J2)= UP(7)= DN(3)= Select/EN(53)= 2.35V, RESET#(70)= 3.27V

How can I debug what’s going on with the voltage supervision chip on the EMX module to see what’s going on there or what else I can I try to get the module to boot reliably?

Al

Let us concentrate on one and only one board whit problem and do not go off any previous tests, basically all fresh troubleshooting.

This is simply impossible and if it did then there are bad connections. This one is easy to trace as there are only 2 pins only that you need to check, the ones going to UP and DN buttons. Please trace them all the way to the module and check that the connections between the module and your board look clean and solid. Measuring things with voltmeter will not give you best results as the pad on the module can be touching your main board but not soldered properly.

Hi Gus, appreciate the fast response. Will this resolve why the module is not booting?

If the various pins I reported are normally floating, then should it matter if the pads are soldered or not?

I just double checked and the UP + DN pads are soldered well.

Also, just double checked and the result I reported it consistent.

Al

Let me try again. Set DN + UP low and reset the board. Does it always enter tinybooter?

The focus is that we want the EMX module to start up reliably, right? It seems like we’ve latched onto a tangent.

If I hold UP+DOWN low and power the board (RESET floating), the board does not boot at all into tinybooter or normal. This is the same as if I leave UP+DOWN floating.

If I hold UP+DOWN low and power the board and then assert RESET# by temporarily grounding and releasing, then the module always enters Tinybooter.

There are certain cases (it takes several tries) where if I power the EMX with UP+DN+RESET floating and then press UP+DN and then RESET# and then let go of the 3 all at about the same time, I can get the module to start normally. I think this is probably not relevant to the fact that the EMX module is not always booting, is it?

[quote]If I hold UP+DOWN low and power the board (RESET floating), the board does not boot at all into tinybooter or normal. This is the same as if I leave UP+DOWN floating.

If I hold UP+DOWN low and power the board and then assert RESET# by temporarily grounding and releasing, then the module always enters Tinybooter.
[/quote]

So UP+DN has nothign to do with what we are talking about. EMX doesn’t boot on power up but then if you reset the board using reset pin then it boots?

I managed to get a second board to work with that boots just fine all the time. Pressing reset button on this good board will reliably restart the EMX module.

On the ‘bad’ board, the one that is representative of a subset of all EMX modules I have, the one that I’m asking about in this thread, and the reason for the ‘problem’:

  1. holding up+down grounded and pressing reset button always boots this to Tinybooter (good)
  2. with up+down floating or up+down pulled high to 3.3V, pressing reset button alone does nothing (<- problem)

Reset button line is soldered just fine. Reset button works all the time to go to Tinybooter when up+down are grounded. But Reset button doesn’t function when up+down are floating or pulled high.

I inspected all the solder joints to the EMX module and they look good.

What would cause this failure of module to boot? Is there any way I can debug this to get it fixed?