AD9371/9375 What is the proper method for setting GPIO to avoid a setup glitch

I am trying to set GPIO_9 to a 1 at start up. I have an external pullup on the pin to keep the pin high during power on but when I try to set the pin to an output I get a momentary glitch low. I tried reversing the setGpio3v3PinLevel and setupGpio3v3 without success.

I am running these two commands.

CALL_GPIO_API(MYKONOS_setGpio3v3PinLevel(mykonos_config.device, 512));
CALL_GPIO_API(MYKONOS_setupGpio3v3(mykonos_config.device));

This is my setup of the structure:

static const mykonosGpio3v3_t DEFAULT_GPIO_3V3 = {
0b111101100010, /*!< Oe per pin, 1=output, 0 = input */ // MRB10_tag changed from 0 to enable 3v3 gpio pins on ad9375
GPIO3V3_BITBANG_MODE, /*!< Mode for GPIO3V3[3:0] */
GPIO3V3_BITBANG_MODE, /*!< Mode for GPIO3V3[7:4] */
GPIO3V3_BITBANG_MODE, /*!< Mode for GPIO3V3[11:8] */
};

  • Sorry for the delay in response.

    Are you still facing this issue? 

    The API and the setup of the GPIO looks correct.

  • Yes. The yellow trace is a capture of the issue. I get the glutch low irrespective of the order of the commands:
    CALL_GPIO_API(MYKONOS_setGpio3v3PinLevel(mykonos_config.device, 512));
    CALL_GPIO_API(MYKONOS_setupGpio3v3(mykonos_config.device));
    My workaround was to delay the GPIO setup until a time where it would not have an adverse effect however I would like to fix it so that it will never go low during setup...
  • Can you try initializing the device with GPIO configured as output mode, and then only change the GPIO level to high or low as required during run time.? 

    During runtime, since you are changing the gipo mode to output, so it is returning to the default low state and then going to the high pin level. After changing the mode to output during initialization, if you set the pin level to high level or low level during runtime, you will not see this glitch.