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.

[参考译文] TMS570LS1227:首次读取时处于低温时的 SPI 通信问题

Guru**** 2481625 points
Other Parts Discussed in Thread: TMS570LS1227

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/697340/tms570ls1227-spi-communication-issue-while-at-low-temperature-at-first-read

器件型号:TMS570LS1227

大家好、

 我的客户报告了在首次初始化 SPI 之后使用 TMS570LS1227通过 SPI 获取 TPS65381A 的状态时出现的问题:  

 -在室温(25‘C)下、TMS570LS1227中的 SPI 数据寄存器与示波器相同。  

 - 从低到低于0'C、SPI 数据寄存器与0x111b 示波器的范围不同、但数据寄存器为0;这个问题可以在10'C 时重现;

 -对于低温、执行 SPI 读取命令(无特殊读取命令)、  

可以在附加的文件中找到更多详细信息。 e2e.ti.com/.../2727.TMS570LS1227-SPI-issue-in-low-temperature.docxCould您希望帮助您仔细检查此问题并说明导致此问题的原因?  期待您的回复、谢谢。

此致

Benjamin

  

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

    您好 Benjamin、

    您的意思是 SPI 总线上的数据是正确的、但 SPIBUF 中的数据是错误的?

    是否使用中断模式或轮询模式来读取数据? 在读取 TPS 状态寄存器之前是否有任何其他 SPI 操作。 您是否在 SPI 标志寄存器中看到覆盖错误? 当您从 SPIBUF 读取数据时、如果设置了接收满中断标志?

    代码应如下所示:

    spiREG2->DAT1 = 0x04FE0000 |命令;//the 命令= 11 (适用于您的情况)  
    while ((spiREG2->FLG & 0x100)!=0x100);//make 数据已复制到 SPIBUF
    值=(spiREG2->BUF)& 0xFF;

    这是将数据移入 RXSHupLIFT 寄存器的序列:

    如果 SPIBUF 和 RXBUF 都为空、则 RX 移位寄存器中接收到的数据将直接复制到 SPIBUF 中、并产生接收中断(如果使能)。 同时清除 SPIBUF 中的 RXEMPTY 标志。

    如果在接收完成时 SPIBUF 已经为满、RX 移位寄存器的内容将被复制到 RXBUF 中。 接收完成中断线保持高电平。

    如果 CPU 读取 SPIBUF 并且 RXBUF 已满、那么一旦 SPIBUF 被读取、RXBUF 的内容就会被复制到 SPIBUF 中。 RXEMPTY 标志保持清零、表示 SPIBUF 仍然为满。

    4、如果 SPIBUF 和 RXBUF 都已满、那么 RXBUF 将被覆盖、并且 RXOVR 中断标志被置位、并且如果被使能、就会产生一个中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 QJ、
    您的意思是 SPI 总线上的数据是正确的、但 SPIBUF 中的数据是错误的?
    Benjamin;是的、SPI 的波形正确、但 SPIBUF 中的数据不正确。

    是否使用中断模式或轮询模式来读取数据? 在读取 TPS 状态寄存器之前是否有任何其他 SPI 操作。 您是否在 SPI 标志寄存器中看到覆盖错误? 当您从 SPIBUF 读取数据时、如果设置了接收满中断标志?
    Benjamin:使用轮询模式;对于这个问题、它只在初始化后第一次读取 TPS65381A 状态时发生、而没有其他 SPI 操作。
    同时、SPI 没有报告错误。

    对于低温 SPI 通信、是否有任何特殊注意事项? 期待您的回复、谢谢。

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

    您好 QJ、

     客户使用“轮询模式”进行 SPI 通信,在读取 TPS65381状态寄存器之前没有任何其他 SPI 操作,并且 SPI 寄存器中没有 SPI 错误;在客户使用期间,如果设置了完整中断标志,则 SPI 从 SPIBUF 读取数据。

     对此问题有什么建议?   

    此致

    Benjamin

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

    MCU 充当 SPI 主器件。 读取数据的命令被成功发送到 TPS、SPI 时钟正确、CS 信号正确、这意味着 SPI 模块运行良好。

    您是否有他们的原理图和从 TPS 读取数据的代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ben、

    您能否让客户使用 ECLK 测试模式检查内核电源(1.2V)和 PLL 时钟?

    如果启用了 SPI 中断、它们是否可以触发中断? 此问题是仅发生在一个电路板上还是发生在耦合电路板上? 电路板是在低温下进行循环通电还是复位?