This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

IWR1443: Can't write to PADS_CFG_REG_PI_BIT/PADS_CFG_REG_PUPDSEL_BIT

Part Number: IWR1443

I want to disable the internal pull-up resistor on PIN_P4 (GPIO_22).
I tried setting PINMUX of terminal P4 with the following code:

 res = Pinmux_Set_OverrideCtrl(SOC_XWR14XX_PINP4_PADAI, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
 res = Pinmux_Set_FuncSel(SOC_XWR14XX_PINP4_PADAI, SOC_XWR14XX_PINP4_PADAI_GPIO_22);
 res = Pinmux_Set_Pull(SOC_XWR14XX_PINP4_PADAI, PINMUX_DISABLE_PULLS);
 //res = Pinmux_Set_Pull(SOC_XWR14XX_PINP4_PADAI, PINMUX_PULLDOWN_EN);
 res = Pinmux_Set_SlewRate(SOC_XWR14XX_PINP4_PADAI,PINMUX_SLEW_HIGH);


PINMUX value after reset:

Value after writing to PINMUX register:

I expected it to be 0x0000_0780 after a write versus 0x0000_0281 after a reset.
However, the memory value in the CCS debugger was 0x0000_0680 as shown above.
Writing to the FUNCSEL and SC bits is reflected.
On the other hand, writing to the PI bit is not reflected and remains at 0 (pull enable).

The same was true when I wrote PINMUX_PULLDOWN_EN instead of PINMUX_DISABLE_PULLS, and the PUPDSEL bit remained at 1 (pullup).

Please tell me how to write to PI and PUPDSEL bits.

Best Regards,
Hiroyuki Taguchi

  • Hiroyuki-san,

    This question appears to be related to your original questions regarding GPIO Pull control on IWR1443. As you noted in your earlier question:

    In swru522d.pdf, the following is described in section 17.3.1.
    Does IWR1443 support GIO pull control?

    swru522d.pdf 17.3.1:
    Some devices may not support the programmable pull controls. In that case, the pull
    disable and the pull select register controls will not work.

    It appears that IWR1443 does not support programmable pull controls however I have assigned this question to our HW expert to confirm this. Please allow a few days for them to get back to you.

    Regards

    -Nitin 

  • Hi Nitin,

    Thank you for your reply.
    I understand the situation.
    We look forward to your response.

    Regards
    Hiroyuki

  • Hiroyuki-san,

    Are you using the SDK functions for calling pin mux control change? or are you writing your own functions?

    We have tried writing on the 0x0000_0780 on PIN_P4 (GPIO_22), directly writing into pin mux register. It is taking effect as expected. 

    You could try writing directly into memory browser  by first by unlocking the pin mux register by below register & corresponding values. 

    gPinmuxRegs->IOCFGKICK0 = 0x83E70B13U;
    gPinmuxRegs->IOCFGKICK1 = 0x95A4F1E0U;

    Then after that you could over-ride pull-up resistor disable from the above command.

    Thanks and regards,

    CHETHAN KUMAR Y.B.

  • Hi CHETHAN KUMAR Y.B.,

    Thank you for your detailed answer.
    I use SDK functions.
    I will follow up with the steps you provided and contact you later.

    Regards,
    Hiroyuki

  • Hi CHETHAN KUMAR Y.B.,

    As shown in the code below, the P4 pin pull could be disabled by writing directly to the register.
    Thank you for the advice.

    volatile uint32_t *reg3;
    reg3 = (uint32_t *)0xffffea20;
    *reg3 = 0x00000500;

    Thanks and regards,
    Hiroyuki