I am using a voltage supervisor from MAXIAM (MAX6734A).I am confused about design notes in page 11. Logic contention so,what is logic contention? the uP that I want to monitor is STM32F103ZET6.I read its datasheet:STM32F103.On page 30, it says that NRST pin is a IO type. Does it mean that I should consider it as a bidirection pin and use a resistor in series? what if I do not follow this design? I have no idea what the logic contention is.


Note that this is talking about a bi-directional reset pin. That means that under some circumstances the processor could drive the pin instead of it being a input. This means that under just the right circumstances both the voltage supervisor and the processor could be trying to drive the same line, possibly in opposite directions. This is called a logic contention.

I am not familiar with the particular processor you are using, but I don't recall using a microcontroller where the reset input could also be driven by the processor. All Microchip PICs, for example, don't have the ability to drive the reset (called MCLR on PICs) line. Some can apply a weak internal pullup to that line, but being weak, it doesn't cause a problem. Such a line is meant to allow driving it low by a "strong" output.

A different issue the datasheet didn't mention but is a lot more common is that the reset input might need to be driven by other circuitry, like a programmer. In that case the possible contention isn't with the processor but this additional hardware also connected to the reset line. The 10 kΩ in series with the reset supervisor is low enough to easily drive a CMOS input, but high enough to not cause excessive current when connected to a CMOS output set to the opposite polarity.


There seems to be some confusion about how a series resistor can get around the problem caused by contention.

Ideally, each digital output is a voltage source. That means it would source or sink whatever current is required to maintain the desired output voltage. Connecting two of these together that are trying to drive to different voltage levels would be bad. Large current would flow (infinite current in the idea case), which is bad from a current consumption point of view, but it could also damage the parts.

Real parts have real upper limits, which are found in the datasheet. For example, a particular digital output may only be able to maintain the output voltage within the guaranteed high range when no more than 10 mA is drawn from it. If you draw more, the voltage could sag to the point where digital inputs connected to it no longer see it as a logic high level, and the part could also be damaged by the excessive current.

The series resistor limits the current. In the case of 5 V logic and a 10 kΩ resistance, the current is limited to 5V / 10kΩ = 500µA. That is well within the safe source or sink range of any normal digital output. In this case, the reset supervisor can source 500 µA indefinitely without damage.

This how the resistor limits current and protects the part. However, it must also be able to pass the signal in the normal case where the reset supervisor is driving and the micro's reset line is a input. Such CMOS inputs have very hign impedance, usually specified in terms of maximum leakage current, which is typically around 1 µA. This means that when the reset supervisor is driving its output high and the reset line on the micro is a input, that no more than 1 µA will flow. This causes a voltage accross the series resistor of 1 µA x 10 kΩ = 10 mV. This is essentially the error in the voltage as seen at the micro relative to what the reset supervisor is producing. Such a tiny error won't cause any problems.

  • 2
    \$\begingroup\$ Shame on you, Olin (and ex-Apollo, too)! A Motorola 68000 has a bidirectional RESET line. If it executes a RESET instruction, it drives the pin low to reset peripherals, but its internal state is unaffected. \$\endgroup\$ – Dave Tweed May 28 '13 at 12:36
  • \$\begingroup\$ Hi, @Dave :-) I never used a 68000 in a circuit, so I didn't know that. At Apollo I was working on the DN10000 graphics hardware, never on any 68000 hardware at that level like you did. But if we're going to be picky, I did say "microcontroller" which the 68000 is certainly not. However, I wasn't trying to say that all microcontrollers work that way, only that I haven't run accross it, but then I do mostly PICs. Maybe today's decendents of the 68xx line, which is now Freescale, can drive their reset lines low? \$\endgroup\$ – Olin Lathrop May 28 '13 at 12:44
  • \$\begingroup\$ @DaveTweed,can you descrive how a 10K ohm resistor prevents a logic contention? \$\endgroup\$ – oilpig May 28 '13 at 13:03
  • \$\begingroup\$ As Olin explained, the resistor doesn't prevent contention, it just keeps the current limited to reasonable values when it occurs. \$\endgroup\$ – Dave Tweed May 28 '13 at 13:21
  • \$\begingroup\$ @OlinLathrop,your last paragraph describes one kind of logic contention: more than one reset sources connect to one reset pin of an uP. I think this situation is realistic and I do not understand your descriptions. Can you give me some further discriptions or an example? \$\endgroup\$ – oilpig May 29 '13 at 0:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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