I want to use an MP5010B Electronic Fuse IC. I will enable or disable it by using the Enable/Fault pin which is billed as a bi-directional three state IO.

I will enable or disable this pin using a microprocessor such as an AVR with a GPIO pin.

I also want to monitor the status of the efuse with the same microprocessor.

The relevant part of the IC data sheet that explains the functioning of the enable/fault pin is extraced here:

The Enable/Fault pin is a bi-directional, three- level I/O with a weak pull-up current (25μA, typ.). The three levels are LOW, MID, and HIGH. It
functions to enable/disable the part and to relay
fault information.

Enable/Fault as an input:

  1. LOW and MID disable the part.
  2. LOW, in addition to disabling the part,
    clears the fault flag.
  3. HIGH enables the part (if the fault flag is clear).

Enable/Fault as an output:

  1. The pull-up current will allow a “wired
    nor” pull-up to enable the part (if not
  2. An under-voltage condition will cause a
    LOW on the Enable/Fault pin, and will
    clear the fault flag.
  3. A thermal fault will set a MID on the
    Enable/Fault pin, and will set the fault

I do not understand how to employ both this input and this output function at the same time on the AVR. Could someone explain how this interface will look electrically between a 3.3V Arduino and this electronic fuse chip including the state of any internal pullups if needed on the AVR pin ?

  • \$\begingroup\$ Use an ADC input to measure the voltage. This can also be used as gpio. \$\endgroup\$
    – Kartman
    Aug 23, 2021 at 8:27
  • \$\begingroup\$ The datasheet has a circuit diagram that is quite straightforward when considered with the text. I would drive the pin with an open drain output GPIO as an internal fault can drive the pin low. \$\endgroup\$ Aug 23, 2021 at 9:12

1 Answer 1


The "pin functions" table shows what you should do:

Enable/Fault. A tri-state, bi-directional interface. Leave floating to enable the output. Pull to ground (using an open drain or open collector device) to disable the output. If a thermal fault occurs, this voltage enters an intermediate state to signal that the device is in thermal shutdown.

So your GPIO must never actively drive high.

  • When you want to disable the fuse, configure the GPIO as low output.
  • When you want to enable the fuse, configure the GPIO as an input (this is the only way to prevent it from driving high).
  • Using the ACR's ADC to monitor for the fault condition would be difficult because the ADC requires a signal with an impedance of less than 10 kΩ. You can use a digital input if the switching threshold is below 1.95 V.
  • \$\begingroup\$ just because the impedance is higher than the nominal 10k does not preclude the use of the ADC. The ADC input impedance is specified as beyond that the ADC errors will increase due to the RC time constant of the sampling capacitor. Besides, putting a couple of nF of capacitance on the ADC input satisfies the impedance requirement. \$\endgroup\$
    – Kartman
    Aug 23, 2021 at 9:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.