Page 1 of 1

MODM7AE70 GPIO Pin States at Boot

Posted: Fri Mar 29, 2024 11:01 am
by jordantkirby
Good Afternoon,

I'm using a MODM7AE70 to handle switching on/off components in a system through a custom power distribution board. The regulators and FET's being actuated on that power distribution board are 3.3V logic high. What I'm seeing on boot of the Netburner is that all of the GPIO pins are being pulled high to 3.3V for a few seconds and then they settle out to their commanded states. In the UserMain task, I'm setting the pin state, then setting the selected pins to having the PullDown resistors enabled, and then setting the pin functions to Output.

My question is what can be done (if anything) to prevent the all the pins from being set high at boot? I apologize if the question is too vague or I'm missing any relevant details.

Thanks,
Jordan

Re: MODM7AE70 GPIO Pin States at Boot

Posted: Fri Mar 29, 2024 2:56 pm
by wbradley
Hi there! The default state for many chips like ours is to be internally pulled high with relatively weak impedance by default. Your circuit should be designed so that it fails-safe when the pins aren't being actively driven, in your case probably with a moderate pull-down resistor. This also helps in cases where perhaps a module is unplugged or frozen or lacking a secure connection: a floating pin could be just as dangerous, so your circuit should include these safeties regardless. See the relevant chip specifications for appropriately sizing these resistors.

Additionally, for really critical stuff you can consider an additional fail-safe method like having a charge pump that enables the operation of any dangerous stuff, and the charge pump requires that a pin go up/down in pulses. If this pulse is generated in software, then the presence of the pulse is an indication that the control system is running and under control. If you're unfamiliar with safe robotic control design principles, it's a whole industry that's worth further study plus design review and failure mode testing.

Re: MODM7AE70 GPIO Pin States at Boot

Posted: Tue Apr 02, 2024 12:30 pm
by jordantkirby
wbradley wrote: Fri Mar 29, 2024 2:56 pm Hi there! The default state for many chips like ours is to be internally pulled high with relatively weak impedance by default. Your circuit should be designed so that it fails-safe when the pins aren't being actively driven, in your case probably with a moderate pull-down resistor. This also helps in cases where perhaps a module is unplugged or frozen or lacking a secure connection: a floating pin could be just as dangerous, so your circuit should include these safeties regardless. See the relevant chip specifications for appropriately sizing these resistors.

Additionally, for really critical stuff you can consider an additional fail-safe method like having a charge pump that enables the operation of any dangerous stuff, and the charge pump requires that a pin go up/down in pulses. If this pulse is generated in software, then the presence of the pulse is an indication that the control system is running and under control. If you're unfamiliar with safe robotic control design principles, it's a whole industry that's worth further study plus design review and failure mode testing.
wbradley,

Thanks for the response, that's kinda what I figured, but wasn't sure and was having a hard time finding that in literature. I'll check back on the schematic for the board design and see if there are any unpopulated pull-downs that I could use.

Additionally, thanks for the detail about the implementation of a charge pump circuit for this scenario -- makes sense!

Thanks,
Jordan

Re: MODM7AE70 GPIO Pin States at Boot

Posted: Wed Apr 03, 2024 12:03 pm
by jordantkirby
wbradley,

Just wanted to post a final update -- I was able to add a heavier pulldown to the enable pins on that power distribution board and that mitigated my issue.

Thanks again,
Jordan

Re: MODM7AE70 GPIO Pin States at Boot

Posted: Wed Apr 03, 2024 3:09 pm
by TomNB
Thanks for the follow up! Always good to know when a suggestion works.