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.

[参考译文] MSPM0L2228:SPI 主器件在时钟>2MHz 下接收不工作

Guru**** 2391845 points
Other Parts Discussed in Thread: MSPM0L2228, SYSCONFIG, MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1460813/mspm0l2228-spi-master-receive-not-working-for-clock-2mhz

器件型号:MSPM0L2228
主题中讨论的其他器件: SysConfigMSPM0G3507

工具与软件:

你(们)好、

之前、我使用 XMSPM0L2228SPMR 在 SPI 模式下访问 SD 卡。 它可与 SCLK 乃至16MHz 搭配使用。 将 XMSPM0L2228SPMR 替换为大规模生产版本 MSPM0L2228SPMR 后、无法再正确读取 SD 卡。

初始化 SD 卡时、SCLK 以200kHz 的频率运行、它运行正常。 初始化后、SCLK 切换到较高频率、例如4MHz。 那么它就无法再工作了。  初始化后的第一个命令为 READ_MULTIPLE_SECTOR。 发送此命令后、收到命令响应0x00。 然后、当 SD 卡准备好传输 数据时、预计会接收"数据开始令牌" 0xFE。  对于令牌阶段、我可以通过 示波器验证 字节0xFF 0xFE 0x00是否  从 SD 卡传输。 但 从 MSPM0L2228调试器 接收字节0xFF 0xFF 0x00。

我已经 在1MHz、2MHz、4MHz、8MHz、16MHz 上测试了 SCLK。 1MHz 工作正常。 2MHz 有时无法工作。 16MHz 根本无法正常工作。

似乎 SPI 接收器未 按正确的时间对 SOMI 数据进行采样。  但是、从 MCU 引脚到 SD 卡的布线长度小于10cm。 我认为信号传播延迟不是问题。 BTW。 我还看到示波器上的信号波形非常好。

有什么想法吗?

Robert。

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

    尊敬的 Robert:  

    这是有趣的行为。 1MHz SCLK 可以工作、更高的频率会导致接收数据损坏。 您能否在此处共享 SysConfig 文件、我们可以首先查看配置。  

    此致、

    Cash Hao

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

    尊敬的 Cash:

    很遗憾、我不为该工程使用 syscfig。 我设计了自己的支持库。。 抱歉、我绝不喜欢 SysConfig。 SysConfig 的目的是让 生活 更轻松、但从源代码的角度来看、这也会使事情难以维护。

     SPI 读取操作非常简单、它发送0xFF 并等待 RXFIFO "不为空"、然后读取数据。  不涉及中断和 DMA。 这是 SPI0的寄存器转储。

    这适用于1MHz:

    这适用于8MHz:

    Robert。

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

    您好!

    我认为这些寄存器值正常。 只需注意一点、SPI0_STAT 始终为0xF、这意味着 SPI 总线繁忙。 我会建议使用接收中断来获取接收信号。 当 RXFIFO "非空"时、我不建议直接从它读取。  

    此致、

    Cash Hao

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

    您好!

    SPI_STAT.BUSY 位于第5位。 因此、当 STAT 为0x0F 时、SPI 总线处于空闲状态。

    对于高速 SPI、不能使用中断。 如果 SPI_SCLK 是16MHz、则只有几个指令周期来读取每个字节。 中断延迟对于此目的来说太长了。 实际上、为了测试读取 RXFIFO 的时序是否太快、 在读取 RXFIFO 前插入了一些延迟周期。 没有什么不同。

    我还实现了 DMA 来访问 FIFO。 但代码有问题、我需要更多时间来确定问题。

    最奇怪的是... 预量产版本( X MSPM0L2228)与16MHz 没有问题。

    Robert。

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

    您好!

    我认为 DMA 将数据从 RX FIFO 中移动将是一种解决方案。 我在 SDK 中有相关的演示项目。(mspm0_sdk_2_03_00_07\examples\nortos\LP_MSPM0L2228\driverlib\spi_controller_repeed_fifo_dma_interrupts)您可以参考该演示代码进行测试。  

    我还需要检查您的时钟系统配置。 您的 MCLK 时钟源是什么? 它是直接来自 SYSOSC 吗?

    此致、

    Cash Hao

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

    您好!

    我已经使用 DMA 完成了 SPI 驱动程序、 不幸的是、情况是一样的。 1MHz 运行良好 、但在较高频率下失败。 MCLK 的时钟源为 SYSOSC (32MHz)。

    BTW、我还测试了 "延迟采样值" 0、1和2。 没有区别。 "2"会使事情变得更糟。

    我想提及另一个问题。 我不知道它是否相关。 在我的测试中、LFSS RTC 非常不稳定。 我焊接了3块此 PCB 板。

    *对于第一块 PCB, RTC 运行良好。 我还实现了温度补偿。 每一分钟、我都会读取 MCU 的温度来计算用于补偿的 PPM (LFSS_TCMP)。

    *对于第2个 PCB、从不设置 RTCTCRDY。 如果我直接设置 TCMP、则无效。 和 RTC 数据(年、月、日、小时、分钟 SEC)不稳定计数。  随机数在年份和第二个登记册中观察到。 例如、我将年设置为2025。 但它将显示2017年 、之后会自动更改为其他数字。

    *对于第3块 PCB ,这是最差的。 无法设置 LFSS_CLKCTL.MODCLKEN。 设置为1、但仍然显示0。 RTC 完全不工作。

    为了查明原因、我在这些板之间更换了 LFXT 晶体。 我还将新 MCU 重新焊接。 没有区别。 LFCLK 输出到 CLK_OUT 以进行验证。 它是32767.1Hz (带有两个外部10pF 负载电容器)。 时钟波形看起来稳定。

    我不对该项目使用 LFSS 篡改模式、 但 SPI0引脚排列 与 TI0、TI1、TI2有关。 LFSS 中可能存在芯片错误、导致 SPI_SOMI 引脚无法在高频下运行。

    我的 SPI 驱动程序也用于 MSPM0G3507中的其他工程。 它们能够很好地用于访问 NOR 闪存。 我认为 SPI 驱动器或 SPI 硬件没有问题。

    我想错误在于 LFSS、它会使 RTC 发生故障且 SPI 速度受限。

    Robert。

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

    您好!

    一些其他信息? 您能否分享与 MCU 相关的原理图、尤其是电源链 VDD、VBAT 和 VCORE? 如果它与 LFSS 有关、则很 可能与电源有关。  

    还有一个问题、第一个 PCB 具有良好的 RTC。 它是否也会在高于1MHz 的 SPI CLK 频率上发生故障?  

    此致、

    Cash Hao

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

    您好!

    这是电源原理图。

    VCC = 3.05V。 MS621T 是用于 RTC 的3V 锂电池。 VBAT 上的测量电压> 2.7V。

    第1个 PCB 也会在 SPI SCLK > 1MHz 时发生故障。

     在此工程开始使用 XMSPM0L2228时、SPI SCLK 最高可运行至16MHz。 被大规模生产版本 MSPM0L2228替换后、只能在1MHz 上运行。 但目前 我获取了  MSPM0L2228样片、我将所有 XMSPM0L2228样片放入垃圾桶。 因此、我 现在没有要测试的预生产芯片。

    对于 LFSS、 当 VDD 关闭时、XMSPM0L2228的 VBAT 存在严重的电流泄漏问题。 此问题已在 MSPM0L2228中修复。 我不知道 XMSPM0L2228上的 RTC 是否也不稳定。 开始时、我只手动焊接了一个 XMSPM0L2228进行测试、其 RTC 运行良好。

    这是我的猜测。 SPI0引脚排列 与 LFSS 篡改模式有关。 并且、对 LFSS 进行了修改 、以解决电流泄漏问题。 修订是否可能 导致潜在错误?

    Robert。

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

    您好!

    为什么在其中使用 R2? 它可能会降低 VBAT 引脚上的电压。 您是否还可以在移除 R2的情况下尝试使用与 VDD 相同的电源为 VBAT 供电。 只需绕过电池。 我想检查一下它是否与 SPI 工作电压高于1MHz 时的电源链问题有关。  

    我还没有听说过大规模生产单位的任何 LFSS 相关问题。 我可以与其他团队成员核实他们是否遇到过此类问题。  

    此致、

    Cash Hao

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

    您好!

    MS621T 是可充电电池、其容量非常小(3mA)。 当电池电压较低时、VBAT 会通过 R2为电池充电。 R2用于限制充电电流、就像使用超级电容器一样。

    我将在移除 R2且 VBAT 短接至 VDD 的情况下再次对其进行测试。 提供反馈给您。

    Robert。

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

    您好!

    我已经完成了测试。 去掉 R2并将 VBAT 短接至 VDD。 结果是相同的。

    1MHz 可以很好地工作。

    2MHz 大部分时间可以工作。

    4MHz 及更高版本根本无法正常工作。

    Robert。

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

    您好!

    您能给这个 MCU 的标志拍照并发送到此处吗? 您从何处购买大规模生产单元? 您能否提供公司名称? 我们需要这些信息才能在此芯片上进行内部检查。  

    此致、

    Cash Hao

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

    尊敬的 Robert:

    是否有任何有关该主题的更新?  

    此致、

    Cash Hao

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

    尊敬的 Cash:

    我刚从假期(农历新年)回来。

    让我稍后再回复您。

    Robert。  

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

    尊敬的 Robert:  

    明白。 祝你新年快乐!

    此致、

    Cash Hao

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

    尊敬的 Cash:

    图片如下:

    MCU 是我的客户从 TI 网上商店购买的。 当我收到量产版本可供购买的通知时、我让我的客户从 TI 网上商店为该项目购买50件。

    我的公司是 RCFocus Corp、我的客户是 Stand Tools Enterprise Co.、Ltd.

    Robert。

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

    尊敬的 Robert:

    明白。 您能给我一个电子邮件地址吗?  建议我们 通过电子邮件讨论此问题。  

    此致、

    Cash Hao

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

    尊敬的 Cash:

    我的电子邮件地址: Robert@ç ois rcfocus.Robert tw

    Robert。

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

    明白。  

    我将向您发送一封电子邮件、并在此处关闭该主题。  

    此致、

    Cash Hao