XBee Pro 900HP Pin#7 / DIO11 / PWM1 not going low

I am using the 900HP/programmable’s pins 6 (DIO10,PWM0) and 7 (DIO11,PWM1), which Digi documents as a bidirectional GPIO, as a digital input. I have verified with a meter that both output VCC in their normal states through the internal pull-up.

The application of the inputs is to detect a maintained (at least a couple seconds) transition to LOW. This is done by submersion of a pipe with two probes attached, into water, whose conductive vessel is ensured a chassis-bonded path to GND(common to Pin #10/GND).

Whenever the bottom probe, Pin6/DIO10/PWM0 touches the water and goes to ground, it works.
Whenever the top probe, Pin7/DIO11/PWM1 touches the water and tries to ground, it doesn’t work.
Whenever the top probe is shunted to Pin 10 / GND via some hookup wire, it works fine.

At first I thought this was a resistance issue through the fluid medium, but DIO10 works just fine. I have tried reconfiguring “Drive Strength” in the Smart editor in both High and Low, and this does not make a difference (though I think that is only relevant when the pin is configured as an output anyway.)

What could be causing this?

I would suggest checking the PR and PD commands to make sure the internal resistors are set as desired.

I am using API mode; wouldn’t this be superseded by the settings configured in Smart Editor?

Not necessary. If it is done right, then yes it would but if something is off, then no it would not.

I’m not sure how to confirm to you whether or not the settings are “correct”, as when I load my application into the system using my Smart Editor settings, which do match the generated xbee_config.h header correctly, it does seem to go high like it’s pulled up, and it does seem to work when grounded. It just doesn’t seem to be able to handle any resistance to complete a virtually grounded circuit.

Are we sure DIO11 is actually capable of being configured as a digital input? If this is tied to PTB7 of the Freescale chip, that seems to be an I2C clock pin / XTAL… which makes sense that it can be configured as a PWM of some kind, just not sure how reconfiguration works at this level. I only ask this because I know some of these pins advertise as being able to be configured as pull-downs as well, but when consulting the Freescale manuals, that functionality isn’t always available.

… or if this process is even occurring on the Freescale and not the Gecko…

Thanks,

Yes, the line can be used in either direction.

More important is how is the pin configured on both the XBee firmware and on the FreeScale code.

On the XBee firmware, it should be set to disabled and the internal resistor disabled. That way the FreeScale processor can drive the line.

I’ve recreated the exact same situation as D2K, albeit by trying to implement proper input/output protection in the form of inline resistors to avoid hard-shorting pins if they’re setup as outputs.

Your explanation of PR/PD settings does not track with my current settings
I’m Disabling pullups for both PWM0 / PWM1 IO lines
PD:0x7FFF
PR:0x6298 (Enabled for DIN/DOUT/CTS/NSLEEP/DIO0/DIO1)

Pin 6 correctly reads digital input signals with the inline resistance, Pin 7 does not (it always reads high).
I’ve tried various inline resistances from 1k to 100 with no effect. Direct shorting is the only thing that allows the pin to be read low.