Pull down resistors on bus of microcontroller board

Hello to all!

I have a question that may sound stupid to one who knows the answer but I am bit uncertain about whether what I would like to do would be a wise thing. For some time now (I have not much time to spend on my hobby) I have been building an experimentation board for AVR processors, quite a sophisticated one if You ask me (it's my own design) :-). Often one sees that output leds are coupled directly to the output ports (well, with a resistor off course). I did not like that so I chose to use 74HCT540 bus drivers (they sink the current through the led so the latter lights up when there is a one on the bus). The bus is 18 lines wide (plus two for PS) and which line has which function depends on the adapter that is plugged in (it holds the controller)(btw for LED 17 and 18 I use two ports from a 74HCT04 in case someone would wonder how to buffer 18 lines with 2 octal buffers). The problem is that when a line is "not defined", it's led turns on. And sometimes off. And on. And so forth... Point Your finger to it and it will do something. The impedance of those drivers is obviously extremely high. I noticed that if I use a pull-down resistor of 1Mohm on every line, this unwanted behaviour does not occur. However, the datasheet of several AVR-processors says that it is not allowed to put more than one gate (a HC-buffer) on the oscillator output (XTAL2) of the processor if one is using an external crystal. In a datasheet with general specs of the 74HC family I found that input leakage current is maximum 1 uA, at 25 degrees C even only 0.1 uA. They tested this with a VCC of 6 volts. That means an impedance of 6 MOhm and that is more than my 1 MOhm. My question is whether anybody foresees problems when I mount these resistors. Off course there might be a problem if I want to measure an analogue voltage from an high-impedance source (the impedance of the ADC is, iirc, about 32 MOhm) but in that case I will have to buffer it, no problem. But what are Your opinions, apart from that? And when some line of the bus will be connected to the crystal, do You think that in real life that will cause problems? I can off course make some of these resistors "disconnectable" by means of jumpers (I wish I had done that with the leds, but then again, then You just wouldn't see them anymore, the buffer might still start oscillating), but as I can connect several diff. types of controllers through the adapters, it would mean more jumpers than for just one type of controller.

Thank You very much in advance for Your opinions/experiences.

Yours sincerely,

Rene

P.S. I just thought of what might a smarter solution to the crystal problem, if I want to use a controller with an external crystal I can put the jumper on the specific controller adapter so that the line will not be connected to the bus on the development board. I guess that would be best. Remains the question whether there could be other problems.

P.P.S. I could have rewritten my question after my brainwave from the first P.S. but in that case someone might have come up with a suggestion about that the crystal might give problems, I thought it would be wiser to just leave it like this so You might see that those specific pins won't be a problem anyhow.

Reply to
Rene
Loading thread data ...

Rene wrote: (snip) >I

(snip)

(snip)

(snip)

The crystal oscillator function is analog, not digital, and quite sensitive to not only DC leakage ands loading from external resistors, but also to capacitive loading. I am not familiar with the AVR line, but I suspect the oscillator is usually connected to only a few of all the possible pins. If you can confirm this, it would be a good idea to have a relocatable jumper that would disconnect your pulled down buffer input from the oscillator pins and possibly free it up for a secondary use.

Reply to
John Popelish

The maximum load of 1 HC gate on the osc output is probably ac limited due to capacitance and its effect on osc stability. It should have no trouble driving a 1M pulldown if it is a true/typical cmos output.

ofc you shoulnt have anything at all connected to oscillator input when used as an xtal osc.

Colin =^.^=

Reply to
colin

There are several options on each pin of the processor, including 'output', 'input' and sometimes 'current-limited output'. In particular, it is common for 'input' to be the default, and for a weak pullup to be programmed for that state (this is a convenience to prevent unused pins from being in an unstable state).

By using an inverting bus driver you are allowing the input-pin state to (through the weak pullup) light the LED. Conventional wisdom would be to ADD WEAK PULLUPS and not pulldowns (this is a holdover from TTL which dissipates extra power when pulldowns are used), and to drive LEDs between the

74HCT540 output and ground (rather than between output and V+). Because the 74HCT540 is CMOS, it can source current for this function. And your added pullups establish the situation 'inputs float high' which is conventional (and found in the most unlikely places- you can't ignore this convention).

Another conventional solution would be to swap the 74HCT540 for the 74HCT541 (noninverting but otherwise similar).

In either case, the 'inputs float high' convention is satisfied, and the polarity of your command-the-LED-to-light is inverted from the existing situation. Sorry about that.

Reply to
whit3rd

Dear John, Colin and With3rd,

Thank You very much for Your input!

Yours sincerely, Rene

Reply to
Rene

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.