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.

CCS/TMS320F28379D: GPIO function of TMS320F28379D when using SPI

Part Number: TMS320F28379D

Tool/software: Code Composer Studio

Hi 

We are using SPIA function as following assignments.

 -GPIO56(SPICLKA), GPIO58(SPISIMOA),GPIO59(SPISOMIA),GPIO61(/SPISTEA).

 -GPIO16 is using GPIO as input function.

We are using GPIO16 as the input GPIO and using the rising edge of this GPIO as a trigger for SPIA communication, but  SPIA communication did not started.

But we found that we changed GPyMUXn.GPIOz = 00b to 01b of GPIO16 and it became possible to communicate.

By the way, when GPIO16 is not referenced, SPIA is communicating even setting GPyMUXn.GPIOz = 00b.

According to Table8-7(GPIO Muxed Pins) in TRM,  regarding the GPIO16 setting, if GPyMUXn.GPIOz is 00b, GPyGMUXn.GPIOz is interpreted so that anything can be selected.

However, the above phenomenon occurred.

Is there a proper setting in GpyGMUXn.GPIOz?

This is an important issue with basic functionality, so let us know what you think

Best regards

Naoki

  • Hi Naoki,

    Naoki.N said:
    But we found that we changed GPyMUXn.GPIOz = 00b to 01b of GPIO16 and it became possible to communicate.

    This doesn't make sense. Make sure code later in your program is not changing the muxing configuration. Maybe this is causing the confusion?

    Naoki.N said:
    According to Table8-7(GPIO Muxed Pins) in TRM,  regarding the GPIO16 setting, if GPyMUXn.GPIOz is 00b, GPyGMUXn.GPIOz is interpreted so that anything can be selected.

    You need to set both GPyMUXn.GPIOz & GPyGMUXn.GPIOz to select the right mux configuration for any pin.

    Naoki.N said:
    Is there a proper setting in GpyGMUXn.GPIOz?

    To configure GPIO16 for GPIO functionality you need the following (bold is what I would recommend):

    GPAGMUX2.GPIO16 = 00b, 01b, 10b, or 11b

    GPAMUX2.GPIO16 = 00b

  • ..and just for completeness, the following is the configuration needed for the SPI pins.

    GPIO56(SPICLKA): GPBGMUX2.GPIO56 = 00b, GPBMUX2.GPIO56 = 01b

    GPIO58(SPISIMOA): GPBGMUX2.GPIO58 = 11b, GPBMUX2.GPIO58 = 11b

    GPIO59(SPISOMIA): GPBGMUX2.GPIO59  = 11b, GPBMUX2.GPIO59 = 11b

    GPIO61(/SPISTEA): GPBGMUX2.GPIO61 = 11b, GPBMUX2.GPIO61= 11b