TMDSCNCD28379D: Some of the GPIOs cannot be set/reset

Part Number: TMDSCNCD28379D


Tool/software:

Hello

I am using the 28379D control card to control a 10-phase buck converter. 

I am unable to set/reset the GPIOs from GPIO B group. For the other GPIO groups, the set/reset works. 

For example, 

//GPIO60 set
GpioDataRegs.GPBDAT.bit.GPIO60 = 1;
GpioCtrlRegs.GPBPUD.bit.GPIO60 = 1; // 0 is enable pullup on GPIO60
GpioDataRegs.GPBSET.bit.GPIO60 = 1; // Load output latch with 0
GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 0; // GPIO60 = GPIO68
GpioCtrlRegs.GPBDIR.bit.GPIO60 = 1; // GPIO60 = output 

I use the above lines of code to set GPIO60. But the GPBSET option has no effect.

I have configured the pull-up, gpiomux and the direction bits properly. 

I am attaching the project. 

Please help me solve the issue. 

Thanks and Regards

RCH

0724.MPB.zip

  • Hello

    Could anyone help me with this issue ?

    Thanks, and Regards

    RCH

  • Hi,

    GPIOCTRL registers are EALLOW protected. Are you doing something like below for example GPIO56 ?

    //GPIO60 set and clear example
    EALLOW;
    GpioDataRegs.GPBDAT.bit.GPIO56 = 1;
    GpioCtrlRegs.GPBPUD.bit.GPIO56 = 1; // 0 is enable pullup on GPIO56 
    GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 0; 
    GpioCtrlRegs.GPBDIR.bit.GPIO56 = 1; // GPIO56 = output
    EDIS;
    while(1)
    {
    GpioDataRegs.GPBSET.bit.GPIO56 = 1; // 
    delay_loop();
    GpioDataRegs.GPBCLEAR.bit.GPIO56 = 1; // Load output latch with 0
    delay_loop();
    }
    //
    // delay_loop - Delay function
    //
    void delay_loop()
    {
        short i;
        for (i = 0; i < 1000; i++) {}
    }
     I checked this on Launchpad gpio56 and I see it toggling.
    Thanks