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.

about GPIO99 port of TMX320F28377D PTP package

Other Parts Discussed in Thread: CONTROLSUITE

According to the datasheet, TMX320F28377D PTP package has the GPIO99 port.

Does it exist?

Isn't there a mistake in the datasheet?

  • Hi,

    Does it exist?

    Yes, it does exist.

    Regards,

    Gautam

  • Hi,

    Yes, I already know that.

    However, GPIO99 is not working.

    So, I asked the question here.

    I set the GPIO99 to the general-purpose output and change data register.

    But, the port output is not changed.

    I wonder that functionality of GPIO99 is vaild in TMX320F28377D PTP package.

    GPIO99 is initialized in different way, unlike other pins?

  • I set the GPIO99 to the general-purpose output and change data register.

    But, the port output is not changed.

    I hope you're using EALLOW and EDIS during configuration.

    Also, check the example code present in controlSuite: gpio_toggle

    Configure you're GPIO99 ie present in Group D of GPIO.

    Let me know what you observe.

    Regards,

    Gautam

     

  • Thanks,

    I use TI's basic example. (See attatched source file and capture image)

    GPIO27 is work well(pin's logic state changed). But, GPIO99 is not work.

    //###########################################################################
    // FILE:   blinky_cpu01.c
    // TITLE:  LED Blink Example for F2837xD.
    //
    //! \addtogroup cpu01_example_list
    //! <h1> Blinky </h1>
    //!
    //! This example blinks LED X
    //
    //###########################################################################
    // $TI Release: F2837xD Support Library v100 $
    // $Release Date: Mon Dec  9 12:58:09 CST 2013 $
    //###########################################################################
    
    #include "F28x_Project.h"     // Device Headerfile and Examples Include File
    
    Uint16	BackTicker;
    
    void main(void)
    {
    
    // Step 1. Initialize System Control:
    // PLL, WatchDog, enable Peripheral Clocks
    // This example function is found in the F2837xD_SysCtrl.c file.
        InitSysCtrl();
    
    // Step 2. Initialize GPIO:
    // This example function is found in the F2837xD_Gpio.c file and
    // illustrates how to set the GPIO to it's default state.
        InitGpio();
        GPIO_SetupPinMux(27, GPIO_MUX_CPU1, 0);
        GPIO_SetupPinOptions(27, GPIO_OUTPUT, GPIO_PUSHPULL);
    
        GPIO_SetupPinMux(99, GPIO_MUX_CPU1, 0);
        GPIO_SetupPinOptions(99, GPIO_OUTPUT, GPIO_PUSHPULL);
    
    // Step 3. Clear all interrupts and initialize PIE vector table:
    // Disable CPU interrupts
        DINT;
    
    // Initialize the PIE control registers to their default state.
    // The default state is all PIE interrupts disabled and flags
    // are cleared.
    // This function is found in the F2837xD_PieCtrl.c file.
        InitPieCtrl();
    
    // Disable CPU interrupts and clear all CPU interrupt flags:
        IER = 0x0000;
        IFR = 0x0000;
    
    // Initialize the PIE vector table with pointers to the shell Interrupt
    // Service Routines (ISR).
    // This will populate the entire table, even if the interrupt
    // is not used in this example.  This is useful for debug purposes.
    // The shell ISR routines are found in F2837xD_DefaultIsr.c.
    // This function is found in F2837xD_PieVect.c.
        InitPieVectTable();
    
        BackTicker = 0;
    
    // Enable global Interrupts and higher priority real-time debug events:
        EINT;  // Enable Global interrupt INTM
        ERTM;  // Enable Global realtime interrupt DBGM
    
    // Step 6. IDLE loop. Just sit and loop forever (optional):
        for(;;)
        {
        	BackTicker++;
    
        	//
            // Turn on LED
            //
        	GPIO_WritePin(27, 0);
        	GPIO_WritePin(99, 0);
            //
            // Delay for a bit.
            //
        	DELAY_US(1000*500);
    
            //
            // Turn off LED
            //
        	GPIO_WritePin(27, 1);
        	GPIO_WritePin(99, 1);
            //
            // Delay for a bit.
            //
        	DELAY_US(1000*500);
    
        }
    
    }
    

  • Hi,

    Try using this:

     EALLOW;
    
           GpioCtrlRegs.GPDMUX1.bit.GPIO99 = 0;  
           GpioCtrlRegs.GPDDIR.bit.GPIO99 = 1;   // GPIO99 = output
    	   
     EDIS;
     
    		GpioDataRegs.GPDSET.bit.GPIO99 = 1;		//Set GPIO99
    		

    Regards,

    Gautam

  • Hi Nam,

    Which revision of F28377D silicon do you have?  On Rev. 0 material, that pin was a TI internal test pin, whereas on Rev. A it should now be GPIO99.  

  • Hi,

    I have tested with chip of silicon revision 0.

    My question is solved, thanks to you.

  • Thank you, Devin for the clarification. Do you have a document which has the changes/modifications in Rev.A wrt Rev.0 in other words a revision record sheet? 

    Regards,

    Gautam

  • Gautam,

    Changes like this would normally be listed in the errata.  I will investigate why it is not...