Question

Say on a microcontroller I have a signal XIRQ what does it mean when there's a reference to it with a bar over top?

Was it helpful?

Solution

Generally that means Active Low. With out the bar we talk about it being Active high and that just means "true" is high or when the voltage is non-zero (greater than zero, vcc or whatever takes you to that boundary). Lets just use good old fashioned 5 volts:

Active High
5v means logic is true, asserted
0v means logic is false, not asserted

Active Low
5v means logic is false, not asserted
0v means logic is true, asserted

Resets are often asserted low because when things are off they are off (zero volts) you use an R/C circuit (resistor+capacitor) which causes the capacitor to charge slowly, the power rail comes up at some rate, much faster than this R/C circuit allows the reset to come up. This time delay allows the power rail to come up the clocks to come up the chip to do whatever else with power and clocks and then eventually the reset crosses the threshold between asserted (logic is held in reset) and deasserted (logic is released from reset).

Modern systems have multiple resets per chip, have multiple voltage rails per chip, have slew rate and very specific timing rules for which rail comes up at what time and no faster than or no slower than some slew rate, as well as all the resets. Multiply that by all the support chips in your system and you generally need a cpld to manage the resets and such. So the R/C circuit doesnt buy you anything but pain (except perhaps if you want to bring up the cpld). The cpld might control the power rails so it could drive anything into the part before bringing up power, but asserted low is still better and I will stop rambling on resets now....

Interrupts would not surprise me if it is a traditional single interrupt input then you would wire-or it so that more than one person can pull it low, possibly what you have here with your !XIRQ. Wire-ored means you have a pull up resistor so that if nobody is driving the signal to zero then the resistor pulls it up to VCC (5v, 3.3v or whatever the system uses). The circuits you hook up to this are open collector meaning the transistor can only pull low toward zero it cannot pull high toward VCC. This way many folks can be on that line and can "Drive" a zero, normally with push-pull (can drive high or low) you have only one person driving and the rest are listening, why because of one drives high and another drives low then you are shorting your power rail to ground and one of the two chips "lets some of its smoke out". (often you can sink more than source so the one driving high is probably the one to die first)

Now that is how hardware folks name things traditionally, also general logic equations would use a bar, but you are asking this in terms of assembly language, I didnt know that you could do a bar over something in ASCII. Sometimes you see a /slash or !bang to indicate asserted low in programming languages or other places where you cant actually draw a bar or would rather not try.

OTHER TIPS

That is an active low signal.

Means, the signal normally has a 1 (or Vcc) applied, and you have to apply a 0 (or GND) to it in order to activate it.

Sometimes, if its not possible to typeset a bar above the signal, this is also written as /XIRQ.

See also Logic Level.

In logic terms, it means its negated.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top