This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Configuring the same pin as input and output

Is it possible using the ARM9 to configure a pin as both input and output? I need to be able to write to it and then read from it. This would be done as an open collector configuration.
I have tried changing the DDR and the GPIOOUTPUT registers on the fly, but this did not work.

Thanks,
Joe

Parents
  • You forgot to mention what processor you have, but the datasheet will tell you if there is any open-collector option for the output. It is more common that the GPIO pins just has the options to be an output, and input will pull-up, and input with pull-down or a high-impedive input.

    A number of ARM chips allows the true pin value to be read back even when the pin is set as an output. But to get a reading different from the driven output state would then require the external equipment to fight a normally rather strong output pin.

    Simulating an open-collector output by setting the output as constantly low and then dynamically reconfigure the data direction should most probably be possible, and something I have done on a number of ARM7 chips using either internal or external pull-up.

Reply
  • You forgot to mention what processor you have, but the datasheet will tell you if there is any open-collector option for the output. It is more common that the GPIO pins just has the options to be an output, and input will pull-up, and input with pull-down or a high-impedive input.

    A number of ARM chips allows the true pin value to be read back even when the pin is set as an output. But to get a reading different from the driven output state would then require the external equipment to fight a normally rather strong output pin.

    Simulating an open-collector output by setting the output as constantly low and then dynamically reconfigure the data direction should most probably be possible, and something I have done on a number of ARM7 chips using either internal or external pull-up.

Children
No data