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.

TMS320F28P650DK: SPI High speed mode

Part Number: TMS320F28P650DK
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

Hello,

I have few questions related to the SPI HIGH SPEED mode.

1. Is high speed mode only available when using the specified GPIOs or we could use other GPIOs are well


for eg: *** can achieve HS on GPIO69-73. Could it be achieved when using GPIO124 for SPIC_CLK?

2. Could we use the standard driverlib calls to set the GPyMUX and GPGyMUX as specified in table 5.9?

GPIO_setPinConfig(GPIO_124_SPIC_CLK);

Or we need to directly manipulate the MUX registers so that we select the special mode?

3. Could the following config work?
a. LSPCLK = 100MHz
b. SPI_CLK = 20MHz
c. SPI is configured to be in HS mode
d. However the non-HS GPIOs are used to bring out the SPI signals

Thanks

Jay

  • Hi Jay,

    I've run some tests using the TMS320F28P650 LaunchPad and custom boards, and I can share the following findings:

    1. High-Speed Mode GPIOs:
      SPI high-speed mode is only supported on the specific GPIOs listed in Table 5-9 of the datasheet. Using other GPIOs — for example, GPIO124 for SPIC_CLK — will not enable high-speed mode. In my tests, non-HS GPIOs could handle up to approximately 12.5 MHz, sometimes slightly more, but with significant signal integrity issues at higher frequencies.
      From tech ref:

    2. Pin Configuration with DriverLib/SysConfig:
      Yes, you can use standard DriverLib functions (and SysConfig does this automatically) to configure the required muxing and pad settings for SPI. For example:

      GPIO_setPinConfig(mySPI0_SPIPICO_PIN_CONFIG);
      GPIO_setPadConfig(mySPI0_SPIPICO_GPIO, GPIO_PIN_TYPE_STD);
      GPIO_setQualificationMode(mySPI0_SPIPICO_GPIO, GPIO_QUAL_ASYNC);

      These calls handle the pinmux and qualification settings correctly, including the ones needed for high-speed operation.

    3. Configuration Notes:

      • LSPCLK = 100 MHz

      • SPI Clock = 20 MHz

      • SPI configured in high-speed mode

      • But non-HS GPIOs used for SPI signals

      This configuration will not enable true high-speed mode. Even if the SPI module is set to HS mode internally, the physical pins must be from the HS-capable set for the high-speed buffers to be enabled. Otherwise, the signal integrity and timing margins will degrade quickly above ~12.5 MHz.

      Conclusion:
      To benefit from SPI high-speed mode, you must use the specific HS-capable GPIOs listed in the technical reference manual. The DriverLib/SysConfig tools are fully capable of configuring them properly.

      Best regards,
      Sebastián

  • Thank you, Sebastian, this is a great and concise answer!

    Best Regards,

    Aishwarya

  • I have one more question on the SPIA high speed mode. Could we use GPIO57 instead of GPIO61 for the PTE[CS] while in high speed mode?

  • Jay,

    Please refer to Sebastian's answer which already explains using non-HS mode supported GPIOs will not enable true high-speed mode. It is fine to use the other IOs but you will be unable to meet the HS MODE timing requirements, if that is of concern. 

    Best Regards,

    Aishwarya

  • Hi Aishwarya, I would like to emphasis that the signal where we do not use HS capable pin in the Chip Select [CS]. All other pins [CLK, MOSI and MISO] would be the HS capable pins. 

    In that case, could we use HS mode?

    Jay

  • Jay,

    Apologies for the delay. To reiterate, the pins can be used even if they won't be able to meet all timing requirements.

    Best Regards,

    Aishwarya