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.

[参考译文] TMS570LS0232:AUTOSAR_MCAL_TMS570LSx-05.30.00:SPI -数据传输的顺序错误

Guru**** 2606725 points
Other Parts Discussed in Thread: TMS570LS3137

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/739723/tms570ls0232-autosar_mcal_tms570lsx-05-30-00-spi---wrong-order-in-data-transmission

器件型号:TMS570LS0232
主题中讨论的其他器件:TMS570LS3137

SPI 配置中存在问题:

对于 SPI 作业、两个 SPI 通道配置如下:


SpiChannelList_FLS_00_Header 
/TI_TMS570LSx/SPI/SpiDriver/SpiJob/SpiChannelList 


/TI_TMS570LSx/SPI/SpiDriver/SpiJob/SpiChannelList/SpiChannelIndex 
0 




/TI_TMS570LSx/SPI/SpiDriver/SpiJob/SpiChannelList/SpiChannelAssignment 
/Spi/Spi/SpiDriver_0/SpiChannel_FLS_Header 




SpiChannelList_FLS_01_Data 
/TI_TMS570LSx/SPI/SpiDriver/SpiJob/SpiChannelList 


/TI_TMS570LSx/SPI/SpiDriver/SpiJob/SpiChannelList/SpiChannelIndex 
1 




/TI_TMS570LSx/SPI/SpiDriver/SpiJob/SpiChannelList/SpiChannelAssignment 
/Spi/Spi/SpiDriver_0/SpiChannel_FLS_Data 



生成的 Spi_PBcfg.h 包含

静态常量(SPI_ChannelType、SPI_PBCFG) SpiChannelsToJob14_Assignment_at[]=
{
/*作业中的信道数*/
2U、
/*作业中的信道*/
SPI_SpiChannel_FLS_Header、
SPI_SpiChannel_FLS_Data
}; 

记录 SPI 通信时、标头和数据的顺序相反、这意味着首先发送数据、然后发送标头。

在 Spi_PBcfg.h 中切换参数时、如所示

静态常量(SPI_ChannelType、SPI_PBCFG) SpiChannelsToJob14_Assignment_at[]=
{
/*作业中的信道数*/
2U、
/*作业中的信道*/
SPI_SpiChannel_FLS_Data、
SPI_SpiChannel_FLS_Header
}; 

顺序正确。

您能解释一下这种无法理解的行为吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josef 您好、

    我将要求我们的开发人员进行测试、如果测试错误、请予以纠正。 感谢您指出这一点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Josef 您好、

    我们的 MCAL 不支持 TMS570LS0322器件。 MCAL 支持以下设备:
    TMS570LC43x
    TMS570LS3x
    TMS570LS1x
    TMS570LS07x
    TMS570LS09x

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、这是我的错。 使用的衍生产品是 TMS570LS3137
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Josef。 我已将您的发现转发给我们的 MCAL 开发人员。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Josef、

    您能否发送 SPI_PBcfg.c 和 SPI_Cfg.h 文件? 我需要查看完整的 SPI 配置数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请在附件中查找生成的文件。

    e2e.ti.com/.../0508.Spi_5F00_Cfg.h

    e2e.ti.com/.../7041.Spi_5F00_PBcfg.c

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Josef 您好、

    我们在工作台上尝试了您的配置、但无法重现问题。 您能告诉我们您是否正在为这些通道使用外部缓冲器? 如果是、您能否向我们发送这些通道的缓冲区设置顺序?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Vishwanath,

    我将代表约瑟夫作答。

    我们已修复了使用 SPI 驱动器的模块中某些配置参数的顺序。 SPI 作业仍然如已描述的那样配置-首先是"标头"通道、然后是"数据"通道(请参见下图、注意通道索引配置)。

    生成的 SPI_PBcfg.c 包含预期的通道到作业分配、即 SpiJob_FLS_HeaderData/SpiChannelLists 中配置的分配

    已成功验证数据以正确的顺序出现在总线上。 这意味着我们的问题现在已经得到解决

    但是、出于好奇、我通过更改通道索引值来切换 SPI 作业配置中的通道顺序(请参阅下面的):

    在新生成的 SPI_PBcfg.c 中、通道到作业分配不反映配置

    我们已经验证了配置是否正确地传递到 EB Tresos。 我们可以看到通道索引按照配置正确输出并传递到 Tresos。 请参阅下面的比较报告-在左侧的版本中、"Header Channel"被分配通道索引0、而"Data Channel"被分配通道索引1、在右侧的版本中、这是另一种方法。

    e2e.ti.com/.../0572.SpiConfig_5F00_DaVinciOutput_5F00_CompareReport.zip

    更新:我发现更改通道索引配置不足以更改生成的通道到作业分配中的顺序。 您必须从 SpiChannelsList 中完全删除频道、然后按照新的预定顺序重新添加。 这意味着 Tresos 完全忽略通道索引参数、仅使用的顺序 文件中的 S。 这对我来说似乎是模糊的。 这可能会在即将发布的版本中得到修复。

    此致、

    Reinhard

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Reinhard、

    我们在 EBTresos 中验证了信道分配、但未发现任何问题。 您可以看到下面的屏幕截图。 生成的结构符合预期。

    是的、要更改通道顺序、您需要在 GUI 中重新配置通道。 未使用 SpiChannelIndex。