Other Parts Discussed in Thread: TMS570LS3137
There is an issue in the SPI configuration:
For an SPI job two SPI channels are configured as follows:
<SUB-CONTAINERS> <ECUC-CONTAINER-VALUE UUID="592bc7a1-23d9-4937-9cc7-3edf0515e911"> <SHORT-NAME>SpiChannelList_FLS_00_Header</SHORT-NAME> <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/TI_TMS570LSx/Spi/SpiDriver/SpiJob/SpiChannelList</DEFINITION-REF> <PARAMETER-VALUES> <ECUC-NUMERICAL-PARAM-VALUE> <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/TI_TMS570LSx/Spi/SpiDriver/SpiJob/SpiChannelList/SpiChannelIndex</DEFINITION-REF> <VALUE>0</VALUE> </ECUC-NUMERICAL-PARAM-VALUE> </PARAMETER-VALUES> <REFERENCE-VALUES> <ECUC-REFERENCE-VALUE> <DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/TI_TMS570LSx/Spi/SpiDriver/SpiJob/SpiChannelList/SpiChannelAssignment</DEFINITION-REF> <VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Spi/Spi/SpiDriver_0/SpiChannel_FLS_Header</VALUE-REF> </ECUC-REFERENCE-VALUE> </REFERENCE-VALUES> </ECUC-CONTAINER-VALUE> <ECUC-CONTAINER-VALUE UUID="70ac27c2-21da-405b-a13d-dde0c2351404"> <SHORT-NAME>SpiChannelList_FLS_01_Data</SHORT-NAME> <DEFINITION-REF DEST="ECUC-PARAM-CONF-CONTAINER-DEF">/TI_TMS570LSx/Spi/SpiDriver/SpiJob/SpiChannelList</DEFINITION-REF> <PARAMETER-VALUES> <ECUC-NUMERICAL-PARAM-VALUE> <DEFINITION-REF DEST="ECUC-INTEGER-PARAM-DEF">/TI_TMS570LSx/Spi/SpiDriver/SpiJob/SpiChannelList/SpiChannelIndex</DEFINITION-REF> <VALUE>1</VALUE> </ECUC-NUMERICAL-PARAM-VALUE> </PARAMETER-VALUES> <REFERENCE-VALUES> <ECUC-REFERENCE-VALUE> <DEFINITION-REF DEST="ECUC-REFERENCE-DEF">/TI_TMS570LSx/Spi/SpiDriver/SpiJob/SpiChannelList/SpiChannelAssignment</DEFINITION-REF> <VALUE-REF DEST="ECUC-CONTAINER-VALUE">/Spi/Spi/SpiDriver_0/SpiChannel_FLS_Data</VALUE-REF> </ECUC-REFERENCE-VALUE> </REFERENCE-VALUES> </ECUC-CONTAINER-VALUE> </SUB-CONTAINERS>
The resulting Spi_PBcfg.h contains
static CONST(Spi_ChannelType, SPI_PBCFG) SpiChannelsToJob14_Assignment_at[] = { /* Number of Channels in Job */ 2U, /* Channels in Job */ Spi_SpiChannel_FLS_Header, Spi_SpiChannel_FLS_Data };
When recording the SPI communication, the order of header and data is reversed, that means, first the data is sent and afterwards the header.
When switching the parameters in Spi_PBcfg.h like
static CONST(Spi_ChannelType, SPI_PBCFG) SpiChannelsToJob14_Assignment_at[] = { /* Number of Channels in Job */ 2U, /* Channels in Job */ Spi_SpiChannel_FLS_Data, Spi_SpiChannel_FLS_Header };
the order is correct.
Can you explain this incomprehensible behavior?