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:
- actively pulling LMODE pin high to +3.3V
- actively pulling RESET pin high to +3.3V
- holding RESET pin to ground on power up and then releasing to float a few seconds after power up
- holding RESET+UP+DN pins to ground on power up and then releasing to float a few seconds after power up
- 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