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.

[参考译文] TMS570LS1224:ADG2RAMWRADDR 寄存器读取始终返回 00000020h

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1575156/tms570ls1224-adg2ramwraddr-register-read-always-returns-00000020h

器件型号:TMS570LS1224


工具/软件:

技术参考手册 (SPNU515C) 指出寄存器 ADG2RAMWRADDR 的“复位后的值“为 00000000h

我观察到、读取此寄存器(复位后和正常运行期间)始终返回  00000020h

在我的应用程序中、仅转换组 1 用于转换。

您能否解释一下为什么 ADEVRAMWRADDR 按预期返回 00000000h、但 ADG2RAMWRADDR 始终返回 00000020h?

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

    尊敬的 Paulo:

    复位后和 ADC 初始化开始之前、该寄存器仅为 0 值。

    只有在 ADC 初始化后、该值才会变为非零、具体取决于配置。

    该值取决于 ADC 存储器配置、如下所示。

    如上图所示、我们为 G1 内存右侧配置了 32 个字、即从 0x0 地址到 0x1F、这意味着 G2 内存起始地址将变为 32 位、即 0x20。 这就是初始化后它使用 0x20 进行初始化的原因。  

    在我的应用程序中、仅转换 Group1 用于转换。

    即使您不使用 G2 通道、作为内存初始化的一部分、它也将使用 0x20 进行初始化。 您可以忽略它;它不会导致任何问题。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的答复。

    我仍然有点困惑,你的解释 ADC 内存配置...

    技术参考手册 (SPNU515C) 第 943 页表示 BNDA 用于配置事件存储器深度、而 BNDB 用于配置组 1 存储器深度。

    使用配置中的数字、事件内存为 32 个字、组 1 内存为 16 个字、那么这如何导致 G2 内存起始地址为 0x20?

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

    尊敬的 Paulo:

    如 TRM 中所述、该寄存器将指向 2 组存储器的下一个写入地址。

    该寄存器初始值仅由边界寄存器值决定。 可以看到、它是在存储器边界值之后立即进行初始化。

    基本上、在初始化之后、这个寄存器值将指向组 2 存储器的起始地址、然后它将在组 2 通道中的每次转换得到递增。

    如果您看到我的配置、32 个字用于事件存储器右侧、因此右侧的 RAM 起始地址为 0x0、结束地址为 0x1F。 然后 G1 存储器将从 0x20 起始地址开始、该 G1 存储器有 16 个字、这意味着 G1 存储器结束地址位于 0x2F。 最后、从 0x30 组 2 存储器将开始、该地址将进入  ADG2RAMWRADDR。

    我的道歉在我的最后一条评论,我忘了事件记忆.

    --
    此致、
    Jagadish。