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.

[参考译文] CCS/TMDXRM46HDK:当代码已初始化(运行)时、RM46 HDK 有信号尖峰、但在下载期间和代码运行之前不存在。

Guru**** 2445440 points
Other Parts Discussed in Thread: HALCOGEN, RM46L852

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/629603/ccs-tmdxrm46hdk-rm46-hdk-has-signal-spikes-when-code-has-been-initialized-run-but-not-present-during-download-and-before-code-run

器件型号:TMDXRM46HDK
主题中讨论的其他器件:HALCOGENRM46L852

工具/软件:Code Composer Studio

我们一直在研究 ADC 读数显示值尖峰的原因。  当我们的代码运行时、会在595kHz 的频率下发生明显的振铃事件。  ADC 会定期读取这些持续时间极短的振铃值、并将值差异显示为尖峰。  

使用示波器进行的检查显示、在代码下载期间以及代码启动之前、振铃不存在。

有什么想法吗?

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

    振铃事件是否由电路板引起? 示波器值与 ADC 采样值之间是否存在差异?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    根据此处的一些研究:
    已知这种影响会在我们的两个 HDK 板上发生、并且与 IO 点的信号生成无关。
    影响(我们具有示波器触发器)直接在 ADC1-Group2的 adcStartConversion 调用之后开始。

    adcEnableNotification (adcREG1、adcGROUP0);
    adcEnableNotification (adcREG1、adcGROUP1);
    adcEnableNotification (adcREG1、adcGROUP2);
    adcEnableNotification (adcREG2、adcGROUP0);
    adcEnableNotification (adcREG2、adcGROUP1);
    adcEnableNotification (adcREG2、adcGROUP2);

    FreeRTOS_Init();//设置 RTOS API
    //创建任务和个人邮箱
    int xStatus = CreateAllTasksAndMailboxes();

    _enable_interrupt_();
    _enable_IRQ ();
    /*开始 ADC 转换*/
    adcStartConversion (adcREG1、adcGROUP1);
    adcStartConversion (adcREG1、adcGROUP2);//<- Ring 出现在此调用后。  删除此调用会产生与之前相同的噪声级别、但我们尚未捕获振铃详细信息。  具体 的噪声详细信息未知。  
    adcStartConversion (adcREG2、adcGROUP1);
    adcStartConversion (adcREG2、adcGROUP2);
    /*启动调度程序*/
    if (xStatus = pdPASS){

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

    该尖峰大约为140mV、并且将根据 HalCoGen 中设定的周期时间来改变频率(这种变化对振铃频率没有可靠的影响)。 当组2转换未开始时、尖峰似乎也出现、但振铃的电压差约为一半(70mV)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    仍在处理此问题。 在我尝试的每个代码更改中、140mV 和70mV 振铃尖峰都很明显。 HalCoGen 中是否有我应该尝试的任何设置。
    我们知道、添加了电路后、可以降低电路板噪声。 如果我们可以使用 HalCoGen 配置和代码来使振铃静音、最好是这样。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尼尔

    如果噪音可以通过 Halcogen 的设置消音、这将是非常不寻常的。 即、如果您可以实现外部电路以消除噪声、 这意味着、相对于电路板噪声抑制、有一些电路板级设计注意事项未被执行、如果从 MCU 中消失、唯一的方法是尽可能地使 MCU 保持安静。 如果不更改电路板级(铁氧体磁珠、噪声滤波等)、如何通过 MCU 配置中的设置来抑制此噪声的自然传播? 慢时钟? 通过关闭 IO 降低或消除 IO 上的开关噪声? 首先、您需要将尖峰的发生与 MCU 中的特定事件相关联、因为由于尖峰的频率、MCU 中的特定事件将变得非常明显、 频率与任何单个事件或一系列事件不对应、这可能非常困难。

    我不记得或看您是否能够看到噪声尖峰是否真正出现在引脚电平上、或者是否全部出现在器件内部? 即、它是否只能在 ADC 计数中看到、而不一定在传入信号上看到? 如果在引脚/信号电平、您是否在 MCU 通过保持复位供电时看到它们? 在自由运行模式下、而不是通过仿真器连接到调试器时、您是否会看到它们? 是否有正在进行的以太网通信或正在进行的 CAN 通信、SPI、UART 等? 您是否使用 ECLK 在电路板上输出时钟? 所有这些都可能导致电路板级噪声、从而以某种方式找到进入输入端的方法。

    另一个需要检查的潜在源是、如果您对 Vccad 和 ADREFHI 使用与对 Vccio 相同的3.3V 电源。 这可能会导致 IO 噪声传播到 ADC。 要解决此问题、您需要断开这些引脚的板3.3V 电源轨、并连接另一个外部3.3V 电源。 应该有一些零欧姆电阻器或跳线可用于断开与传统电源的连接并应用您自己的电源。 我必须查看原理图以获得更具体的详细信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    以下是您的问题的一些答案:

    当我们将电池作为信号源时、仍然在信号引脚上观察到尖峰/振铃。 这意味着尖峰/振铃不是从外部获得的(电池是稳定电源)。
    尖峰确实出现在从 ADC 输入的值中。
    尖峰具有70mV 的摆幅、当仅配置和转换组1时、该摆幅会振铃。
    尖峰具有140mV 的摆幅、当组1和组2都配置和转换时、该摆幅会振铃。
    尖峰的发生与 HalCoGen 中设置的周期时间相关。 长周期时间设置可能对 ADC 值的影响不大、短周期时间设置可能会将尖峰显示为更明显的值变化。
    我们将使用事件触发器配置 ADC1和 ADC2、以便使用 ID 结果进行软件连续操作。

    连接到调试或自由运行时(以及调试构建和发布构建)都会观察到该行为。
    我们将配置 CAN1。 如果我们断开 CAN 网络、行为不会改变。

    您提到了几个可能是源代码的功能。 您能给我指出哪些指南能让我确认/更改这些内容、以确保它们不是来源? (ETH、SPI、UART、ECLK、...)。

    我有一家公司请求考虑对我们的测试 IO 板(如果需要、还需要 HDK 板)进行电路更改;目前、我被要求考虑/消除这种配置问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尼尔

    我还记得、在您的另一个主题中、您有一些示波器图显示了干扰。 这些测量是在哪里进行的?

    此外、似乎与依赖于 IO 快速切换的任何特性/功能都没有相关性、因为 CAN 是唯一使用的符合此要求的 IP。 如果我在这个假设上错了、请更正我。 由于情况如此、如果您不使用其他 IP、则无需担心它们、例如以太网、UART、eclk 等。

    鉴于与使用 ADC1和 ADC2压实的 ADCG1和 G2转换相关、我想知道是否与勘误文档(www.ti.com/.../spnz200)中的勘误 ADC#1有一定的联系。

    要测试这一点、是否可以在 ADC1和 ADC2之间不共享且仅在 ADC1上转换的通道上尝试转换? 或者、您可以尝试排列触发器、使其交错、并且 ADC1和2的采样窗口不会重叠。

    我还建议查看电路板上的 ADC 电源和基准电压。 如果电源与电路板公共3.3V 电源轨(闪存、IO、OSCIN 电源)共享、则可能会产生一些噪声、因此该电源轨上存在大量潜在的开关噪声。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    屏幕截图是一个查看 ADC 值的工具(每个跟踪都是由 adcGetData 函数调用返回的通道点)。

    您粘贴的勘误表链接没有文档。

    我对共享点进行了测试、我完全使用 HalCoGen 删除了 ADC2、并消除了 ADC 初始化和转换。  振铃/尖峰行为似乎仍然相同。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、Neil。 我不知道为什么粘贴的链接不起作用。 它是直接从 RM46L852产品页面复制的链接。

    请尝试以下方法: www.ti.com/.../spnz200f.pdf

    请注意、这是修订版 B 芯片器件的勘误表、它应该是 HDK 上的器件。 最新器件版本为 Rec.C、此勘误表仍然适用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经尝试删除 ADC2、将勘误表 ADC#1作为问题。 请告诉我您认为我的说法是否正确。