On Tue, 1 Nov 2005, Olin Lathrop wrote: > That explains how it can be used as inputs without fighting the temporary > strong pullup, but I still don't see how this can be "low power" when all > inputs are driven low externally. That is a part of the standard MCS51 IO scheme. The weak pullup is not driven high directly it is driven by a schmitt trigger which senses the actual pin voltage. So if an external load manages to pull the pin low below Vil for the schmitt the pullup turns off and the pin stays low. An external pullup or high drive is needed to pull it up above Vih after which the schmitt toggles high and helps with the weak pullup. When a 1 is output then the strong pullup (1.6mA?) is tuned on for two clock cycles (on the CPU) and if it can fight the external load (i.e. the pin is not held low) then the pin will assume the high state again. It is a slightly strange scheme that causes many people headaches until they get to work with it smoothly. In most non-low power applications an external pullup is provided by the user and the scheme is ignored. The scheme really shines when such IOs are connected to similar IOs (f.ex. MCS51 pin to another MCS51 pin - presumably on another chip). Then the line is bidirectional and minimum power consumption is achieved at all times. The internal structure of the MCS51 IO pin is described in the MCS51 device family hardware data sheets. Peter -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist