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.

[参考译文] TMS570LS0432:PBIST 运行时的 VBUS 周期

Guru**** 2599045 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/727677/tms570ls0432-vbus-cycles-at-the-pbist-run

器件型号:TMS570LS0432

您好!

当 PBIST 运行时(通过函数 pbistRun)、为了启用 PBIST 控制器、它将寄存器 MSTGCR=Ah 置位。 嗯、由于这是该寄存器的最后一个设置、  包含在 MSTGCR 中的字段 ROM_DIV 被设置为0h。 这意味 着 ROM 时钟源是 HCLK 除以1。 PBIST 将复位16个 VBUS 周期。 为什么要实现具有32个 VBUS 周期的 for 循环? (请参阅下面的相应代码)

void pbistRun (uint32 raminfoL、uint32 algomask)
{
易失性 uint32 i = 0U;

/*用户代码开始(17)*/
/*用户代码结束*/

/*禁用内存自控制器*/
systemREG1->MSTGCR = 0x00000005U;

/*禁用内存初始化控制器*/
systemREG1->MINITGCR = 0x5U;

/*启用 PBIST 控制器*/
systemREG1->MSINENA=0x1U;

/*启用内存自控制器*/
systemREG1->MSTGCR = 0x0000000AU;

/*根据 HCLK 与 VCLK 的比率至少等待32个 VBUS 时钟周期*/*SAFETYMCUSW
134 S MR:12.2 "等待几个时钟周期(I 的值未被使用)"*/
/* SAFETYMCUSW 134 S MR:12.2 "等待几个时钟周期(I 未使用的值)"*/
对于(i=0U;i<(32U +(32U * 0U));i++){//等待*/}

... 

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

    该环路旨在产生至少32个 CPU 时钟周期的延迟。 需要更新注释、以显示此值、而不是"32个 VBUS 时钟周期"。

    此致、
    Sunil
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、但是无论如何、TM 表示当 ROM_DIV=0h 时、HCLK 除以1、PBIST 将复位16个 VBUS 周期。 那么、为什么周期需要至少为32、而周期将为16?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Marco:

    实现了针对环路的32计数来添加一个"安全系数"来满足至少16个 VBUS 时钟周期的要求。

    此致、
    Sunil