ResistorMode Descriptions

Hey, community! Give me a moment of your time. For the IO60P16 driver, I want to supply a one liner for the Intellisense for each IO drive/resistor modes that gives a newbie some idea when to use what. Give me your best suggestions for how to finish each of the “This mode is normally use when…” lines. Let’s try and keep it at a level that a non-EE can understand. Thanks!


    /// <summary>
    /// IO pin resistor/drive modes.
    /// </summary>
    public enum ResistorMode : byte
    {
        /// <summary>
        /// Resistive Pull Up Resistive High, Strong Low (default).
        /// This mode is normally used when the pin will be used...
        /// </summary>
        ResistivePullUp = 0x1D,
        /// <summary>
        /// Resistive Pull Down Strong High, Resistive Low
        /// This mode is normally used when the pin will be used...
        /// </summary>
        ResistivePullDown = 0x1E,   
        /// <summary>
        /// Open Drain High Slow Strong High, High Z Low
        /// This mode is normally used when the pin will be used...
        /// </summary>
        OpenDrainHigh = 0x1F,       
        /// <summary>
        /// Open Drain Low Slow Strong Low, High Z High
        /// This mode is normally used when the pin will be used...
        /// </summary>
        OpenDrainLow = 0x20,        
        /// <summary>
        /// Strong Drive Strong High, Strong Low, FastOutput Mode
        /// This mode is normally used when the pin will be used...
        /// </summary>
        StrongDrive = 0x21,         
        /// <summary>
        /// Slow Strong Drive Strong High, Strong Low,Slow Output Mode
        /// This mode is normally used when the pin will be used...
        /// </summary>
        SlowStrongDrive = 0x22,     
        /// <summary>
        /// High Impedance High Z
        /// This mode is normally used when the pin will be used...
        /// </summary>
        HighImpedence = 0x23        
    }

[Originally posted here: http://www.tinyclr.com/forum/topic?id=6860&page=23#msg71975]

I’ve revisited …

Pin Drive Modes
You can configure the pin as input or output by selecting the drive property.

High Z. High Z or high impedance mode is used for digital inputs that are driven high and low externally.
High Z Analog. This mode is similar to the High Z state, but the digital input section is disabled. Select this mode to use this pin as an analog input or output. This mode should be selected if the pin is unused.

Open-drain High. In this mode, the HIGH output is driven with a strong drive. The LOW output is High Z.

Open-drain Low. In this mode, the LOW output is driven with a strong drive and HIGH output is open. This mode is suitable for I2C bus where external pull-up resistors are used.

Strong. Use the Strong mode if your pin is an output driving a load. The pin has a low impedance connection to GND and 3.3V when driven high and low. Do not use the Strong mode if the pin is an input.

Pull-down. In this mode, HIGH output is driven strong, and LOW output is through an internal pull-down resistor of approximately 5.6K. This mode may be used as an input, for example with a switch connected to 3.3V. This mode may also be used as output.

Pull-up. This mode is the opposite of the Pull-down mode. In this mode, HIGH output is driven strong and LOW output is through an internal pull-down resistor of approximately 5.6K. This mode may be used as an input, for example with a switch connected to GND. Once the pull-up resistor is enabled, the state of the pin is read using the input register. This mode may also be used as output.

Strong Slow. This mode is similar to the Strong mode, but the slope of the output is slightly controlled so that high harmonics are not present when the output switches.

I hope it is little bit better… the resistors on the gates are 5.6Kohm I’ve checked (very low …).

Assuming I am not an EE so…

And what is VCC? :slight_smile: Use 3.3V instead.

Also for the pull up, maybe say this is the most commonly used option.

Gus I was simply making an explanation, but need better english man here …
I’ve this image from PSOC times…

@ dobova - I like that picture. Thanks!

Good start guys! Keep 'em coming. In addition to the great technical descriptions, I’m also looking for examples of practical applications.

Ex.
ResistivePullUp - “This mode can be used when you want to illuminate an LED by sinking it to ground.”

For many of these modes, I have no practical applications to suggest and am leaning on your project experiences.

Thanks!

This is looking good. I totally agree with ianlee74 maybe even include a further description of things like “sinking it to ground” many people here are really new to electronics (me included) so anything that helps is always apreciated.

@ ianlee74 this is totally awesome man! you are going all out to build one heck of an awesome driver. :slight_smile:

I understand. I thinking maybe a glossary wiki page were we can define or provide links to definitions of some of these terms would be awesome. Maybe there’s an electronics site out there that’s already done this that we can refer people to. Anyone know of anything?

Thanks, Hugh.