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.

[参考译文] AM2434:启用 ADC 硬件的步骤/CTRLMMR_ADC0_CTRL 寄存器

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1617598/am2434-adc-hw-enabled-step-ctrlmmr_adc0_ctrl-register

器件型号: AM2434

您好 E2E 社区:

我收到了一个有关 Sitara AM243x 的 ADC0 的问题。 技术参考手册中的内容介绍了每个步骤都可以在软件或硬件启用模式下运行。  ADC_STEPCONFIG_j 寄存器(偏移= 64h +公式)的寄存器说明也显示了这一点。 此处、1-0 设置启用 SW 的单次/连续模式或启用硬件的单次/连续模式。 但是、在提供的 ADC 示例中、只能开箱即用“ADC_singleshot"。“。 根据我所见、其他示例并不提供 CCS 工程。 此外、我注意到:

  • “ADC_singleshot"示“示例使用 ADC 驱动器的“V0"实现“实现仅定义了两种模式->“ADC_OPERATION_MODE_SINGLE_SHOT"和“和“ADC_OPERATION_MODE_CONTINUAL",“,这、这两种模式是软件启用的、例如“ADC_OPERATION_MODE_SINGLE_SHOT"是“是从“HW_ADC.h"中“中启用的“ADC_STEPCONFIG_MODE_SW_EN_OneShot"。“。 “V0"驱动“驱动程序中未定义支持硬件的模式。
  • 例如、不提供 CCS 工程的“ADC_SoC_eCAP"示“示例似乎使用 ADC 驱动器的“v2"实现“实现。 但是、在 AM243x 的空白平台中使用/包含“v2"的“的“adc.h"会“会导致多个错误。
  • 因此、我尝试使用寄存器手动启用/配置硬件启用的步骤。 第 12.1.1.3 节中的图“ADC0 集成“表明必须使用寄存器 CTRLMMR_ADC0_CTRL[4-0] TRIG_SEL。 在进一步的研究,以下帖子引起了我的注意: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1467859/lp-am243-triggering-adc-with-periodic-timer-trigger-output。 在这篇文章中、Swargam Anil 在第 5.1.5.72 节中张贴了该登记册的图片。 该帖子是从 2025 年 1 月开始的、显示使用了“AM64x/AM243x 器件修订版本 1.0“。 但是、我在当前技术参考手册中找不到此部分或 CTRLMMR_ADC0_CTRL 说明。 我缺少什么吗?

了解 CTRLMMR_ADC0_CTRL 的寄存器说明在当前版本的技术参考手册中的位置会有所帮助、以便可以手动配置启用硬件的步骤。 也许有一种解决方案包含“v2"或“或扩展“V0",“,以便、以便我可以在 AM243x 中使用支持硬件的步骤。 也许还可以提供一个小示例。

此致、

人权

 

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

    您好、

    我正在研究这一点、请预计在 1-2 天内更新。

    此致、

    会面。

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

    尊敬的 Christian:

    例如、不提供 CCS 项目的“ADC_SoC_eCAP"示“示例似乎使用 ADC 驱动程序的“v2"实现“实现。 但是、在 AM243x 的空白平台中使用/包含“v2"的“的“adc.h"会“会导致多个错误。

    am243 器件不支持 v2 文件、不应使用这些文件、类似地、am243 MCU+SDK 也不支持 ADC_SoC_Example。

    了解 CTRLMMR_ADC0_CTRL 的寄存器说明在当前版本的技术参考手册
    中的位置会很有帮助。

    您可以在 TRM 的第 5.1.1.5.72 节 CTRLMMR_ADC0_CTRL 寄存器:

    也许还可以提供一个小例子。

    我们没有可用于此目的的示例、但您可以通过进行一些更改来进行配置、例如通过修改 CTRLMMR 寄存器选择触发器、并从 Software singlehot 将 ADC 模式更改为 Hardware Singlehot、我们已经在 HW_ADC.h 中为 HW 模式定义了宏:

    https://github.com/TexasInstruments/mcupsdk-core/blob/next/source/drivers/adc/v0/hw_adc.h#L839 

    您可以通过更改以下各项来更改 ADC 模式:  

    https://github.com/TexasInstruments/mcupsdk-core/blob/next/examples/drivers/adc/adc_singleshot/adc_singleshot.c#L177 

    此致、

    会面。

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

    大家好、

    感谢您的答复。 您的回答有助于我进一步了解“v2"不“不能用于 AM243x。 谢谢你也为寄存器节选,但这就是我的原始问题出现的地方。 我在 TRM 的当前修订版 (Am64x/AM243x 技术参考手册(修订版 I)、自 2026 年 1 月起)中找不到表 5-192。 因此、我不知道 CTRLMMR_ADC0_CTRL 背后的地址、无法使用 HW_WR_FIELD32 进行更改。 您能就此进一步帮助我吗? 根据我的研究以及您对基于硬件的触发器配置的回答、必要的步骤如下:

    -在第 177 行 (adcConfig.mode) 使用 来自 hw_adc.h 的 ADC_STEPCONFIG_MODE_HW_SYNC_OneShot  

    -在第 192 行中插入一个 HW_WR_FIELD32 (regAddr、REG_field、fieldVal )  , regAddr = CTRLMMR_ADC0_CTRL、REG_FIELD =所需事件的位掩码,例如对于 EPWM SOCA_OUT , fieldVal = 1 如果应该启用它。

    此致、

    人权

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我找不到 TRM 当前修订版中的表 5-192 (Am64x/AM243x 技术参考手册(修订版 I)、2026 年 1 月起)。

    请查看 TRM 中的 14.2.1.1.1.2.115 MAIN_CTRL_MMR_CFG0_ADC0_CTRL(修订版 I.)

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

    大家好、

    感谢您的答复。 第 14.2.1.2.115 节正是我想要的。 我很好奇:作为 TI 的员工、您是否有更详细的 TRM、因为就像您的第一个回答一样、您有第 5.1.1.5.72 节和表 5-192、当前版本中缺少该表(修订版 I)

    如果有人尝试为 ADC 实现启用硬件的触发器、我总结了必要的步骤:

    1.结构 adcStepConfig_t 的元素“mode"必须“必须设置为例如 ADC_STEPCONFIG_MODE_HW_SYNC_OneShot(来自 hw_adc.h)

    2。寄存器 ADC_Control(偏移= 40h)的位 8 必须设置为 1

    3. 必须将寄存器 MAIN_CTRL_MMR_CFG0_ADC0_CTRL(偏移= 4710h)中的位 4-0 设置为所需的硬件触发源、例如如果要使用 TIMER0 将位 3 设置为 1。 在此步骤中、您可以使用 HW_WR_FIELD32 (regAddr、REG_field、fieldVal)。 请在 hw_adc.h 内部查看如何为其他寄存器实现_SHIFT 和_MASK #-define 以及添加您需要的寄存器。  

    4.默认情况下、MAIN_CTRL_MMR… 寄存器受写保护。 要解锁、必须将 LOCK1_KICK0 和 LOCK1_KICK1 设置为特定的 Key (0x68EF3490U 和 0xD172BC5AU)。 只有执行此步骤后、才能写入 MAIN_CTRL_MMR_CFG0_ADC0_CTRL 寄存器。 设置所需的硬件触发器后、通过将“0x00000000"写入“写入 LOCK1_KICK0 和 LOCK1_KICK1“来使其再次受写保护。

    此致、

    人权

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

    尊敬的 Christian:

    感谢您总结这里的所有步骤。

    很好奇:作为德州仪器员工、您是否有更详细的 TRM、因为如您第一个回答中所示、您有第 5.1.1.5.72 节和表 5-192、该表在当前修订版 I 中缺失)

    我意识到我指的是较旧的 TRM 版本、因此我提到了 Rev I、以便为您提供更新的部分。