I have a Boron can reset a micro-controller device using it’s reset pin as needed. The issue is when the Boron boots up it takes that pin low and it resets it every time. I can’t have that happen. I have a pull up resistor on that pin. Do you have any ideas on how I can make the pin default to high on boot up? It is set high immediately after pinMode setup, but it never reaches that point.
Invert the signal through a Mosfet - something like this:
or use a inverter gate like http://www.ti.com/lit/ds/symlink/sn74lvc1g04.pdf
Thank you very much for your response. I was hoping that there is a software solution to this, perhaps in the firmware. I already have the boards developed and manufactured. I want to try to avoid doing that again.
By convention most MCU’s start with I/O pins set to input and low so that you have a known state to work with - to change this is probably too complicated and it will be easier and quicker to cut new PCB’s.
Perhaps post more information about the connection to the managed device and someone may have an idea for you ?
What pin are you talking about?
I’m not sure where this behaviour comes from on a Boron but with Gen1&2 devices we know of that behaviour due to the controller’s JTAG interface applying pull-resistors on boot-up till the device OS can disable JTAG - the only way to work around that was to use other pins.
Are you using the macro STARTUP? If you did pinMode assignment quick enough in would that work. Otherwise, if this is an immediate/ timing issue then as @shanevanj suggests a PCB track change may be required. From experience I specify designs with no fit pull-up pull-down resistors where there is likely to be an issue - depending upon how many boards you have made a retro-fit resistor might be a solution?
Definitely echo what @armor is saying about sprinkling no-stuff pull-up/downs on control and input pins. Test points, 0 ohm resistors and no stuff parts are your friends.
Being dependent on the startup state of a device is tricky. Sometimes you can make modifications in the bootloader/early code but it’s tough in this case.
Depending on how you designed your board, you may be able to salvage the situation by reworking a pull-up on that line. (I’ve definitely done my fair share of that!!)
Plus after reworking 10 boards you’ll know better for next time.