Chromatix wrote:
I understand that. But 1.5mA is still a thousand times more than the 65c02 itself is supposed to consume when quiescent. It doesn't actually matter whether that's going through a resistor pulled up at one end by a gate, or directly to Vcc - it's still passing 1.5mA. It's a small waste, but to me, still a waste if there's a straightforward way of avoiding it. Remember, I had an NC200 that would literally last for weeks on a set of C-size NiCads, with files held in SRAM which, therefore, couldn't simply be powered down.
By actively setting the gate low when the CPU is found to have pulled RDY low, and only setting it high again when an interrupt or reset occurs, that waste of power is avoided. The cost is a few more gates on the board, which consume much less power themselves.
I won't claim there aren't any errors in my hand-sketched diagram. I've actually found a couple today, in the reset/debug switch circuit. But I don't put in circuits without a good reason behind them.
By actively setting the gate low when the CPU is found to have pulled RDY low, and only setting it high again when an interrupt or reset occurs, that waste of power is avoided. The cost is a few more gates on the board, which consume much less power themselves.
I won't claim there aren't any errors in my hand-sketched diagram. I've actually found a couple today, in the reset/debug switch circuit. But I don't put in circuits without a good reason behind them.
You can use a higher value than 3.3K, but be aware that going too high will make RDY more sensitive to noise and could expose your system to random false wait-states. I have not experimented with values higher than 3.3K, but do know that back when WDC was incorporating a RDY pullup into the 'C02 (this was before die production was moved to the TSMC foundry) the value was 10K, which would draw 0.5mA during a WAIt.
If you are truly paranoid about quiescent system current consumption while the 'C02 is stopped, use the STP instruction, which does not affect RDY and completely puts the MPU to sleep until a reset occurs.