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.

[参考译文] TMS320C5535:UART 引导后、C5535可能无法正常工作

Guru**** 2539500 points
Other Parts Discussed in Thread: TMS320C5535

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/594319/tms320c5535-c5535-may-not-work-correctly-after-by-uart-boot

器件型号:TMS320C5535

大家好、

在我的新项目中、使用了 stm32F405和 c5535。C5535处理来自音频编解码器的 I2S 数据、并通过 UART 将数据传输到 STM32。

为了节省 PCB 空间、C5535由 STM32的 UART 引导。

对于 c5535、启用 DMA (I2S 接收)和 UART 接收中断。

当我在我自己的 PCB 上使用 XDS200仿真器仿真我的程序时、发现一切正常、我可以使用 示波器观察 c5535传输的 UART 数据。

但在 STM32的 UART 启动后,5535似乎不能正常工作,我看不到 UART 数据,它是一个高电平电压。

为了再次检查此问题、我在程序开始时打开两个 LED、在处理 I2S 数据后、关闭一个 LED、并在通过 UART 传输数据后关闭另一个 LED。

触觉效果一样、仿真时一切都正常、两个 LED 先打开再关闭、但当 UART 启动时、两个 LED 会按预期开启、但永远不会关闭。

我对此感到困惑。我认为我的程序和硬件是可以的,因为它们可以正确仿真,这对吗?

虽然可以打开两个 LED,但这意味着 c5535是使用固件正确引导的,这对吗?

但为什么程序可以正确仿真、 而不在引导后执行?这两种方式之间有何区别?

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

    我已通知软件团队。 他们的反馈将直接发布在此处。

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

    您必须执行一些调试操作才能查看其停止位置。 如果没有大量调试信息、就很难提供建议。
    您是否能够在 C5535中的代码上放置任何断点并查看其停止位置? 是否确定 ST 设备未执行导致此问题的操作?
    此外、我不太理解正确仿真而在引导后不执行意味着什么。

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

    感谢您的回答。

    很抱歉打扰到您。我将详细解释我的问题。

    案例1:构建项目后、我将 XDS200仿真器插入到 PCB、并在 CCS 6.0中选择了"挖掘"选项。一切正常、我 PCB 上的两个 LED 可以打开、然后截断、 C5535可以通过 UART (我可以在示波器上观察数据)将数据发送到 STM32、这是我所期望的。

    案例2:构建项目后、我将通过构建项目生成的.out 文件传输到 TI 提供的 hex55.exe 文件中的.bin 文件、然后使 STM32通过 UART 将.bin 文件发送到 C5535以进行引导(请参阅 SPRABL7A_Using the TMS320C5535/34/33/32 Bootloader)。然后是两个 LED 可以打开但保持打开、C5535未按我的预期传输数据。

    我不知道为什么情况1和其他情况下一切都正常(LED 将被打开、c5535将传输数据) 在第二种情况下没有发生?两个 LED 将关闭且 C5535将通过 UART 向 STM32发送数据的唯一条件是 DMA ISR 中设置的标志位。因此我认为 C5535没有进入 DMA ISR。在第二种情况下、 我无法调试 progarm 以查看其停止位置,对吗?
    为了仔细检查我的旅行,我点了标志位, 可以关闭两个 LED、C5535可以将数据传输到 STM32。但当我将关闭 LED 的代码移动到 DAM ISR 时、它也不起作用。因此我可以确认 C5535无法进入 DAM ISR。

    为了排除我自己 PCB 和 Ve 代码的影响,我对 TMS320C5535 eZdsp 和 TI 样片(C55_CSL_3.06\ccs_v6.x_examples\I2S\cSL_I2S_AudioCodec_dma)进行了相同的测试,但遗憾的是,当我在 CCS 中使用 XDS200调试它时,一切正常。 我可以在 c5535的 I2S TX 引脚上测量 I2S 信号(请参阅 CSL_I2S_AudioCodec_DMA 项目和 ezdsp5535_TechRef_RevC)。但是、在我通过 UartBoot.exe 发送.bin 文件(由 hex55.exe 传输)后、TI 也提供给 TMS320C5535 eZdsp、我无法在 C5535的 I2S 引脚上测量 I2S 信号。
    根据 CSL_I2S_AudioCodec_DMA 项目、我认为无法在 c5535的 I2S TX 引脚上测量 I2S 信号的原因是 c5535未进入 DAM ISR。
    那么,Lali,你手上是否有 TMS320C5535 eZdsp?如果你有,你能用项目 CSL_I2S_AudioCodec_dma 来进行同样的测试吗?我已经被这个问题弄糊涂了一周了,我期待着你的帮助。

    此致、
    Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Eric、
    此主题是否仍然打开? 您是否能够解决您的问题?

    Lali