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.

[参考译文] RM57L843:RM57Lx TRM 中的不一致之处

Guru**** 2535750 points
Other Parts Discussed in Thread: RM57L843, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1197380/rm57l843-inconsistencies-in-rm57lx-trm

器件型号:RM57L843
主题中讨论的其他器件: HALCOGEN

您好!

我们在设计中使用 RM57L843、在回顾 HALCoGen 和 SafeTI 库软件期间、我们发现了我们认为与 RM57Lx 技术参考手册(SPNU562A、2018年3月)存在一些差异:

  1. SPI 模块:表27-25中 SPIDAT1寄存器 CSNR 位域的说明表明、"1"位激活相应的片选线路、但实际上看起来是反相的。 例如、要激活 CS0、必须设置值3Eh、而不是表中所示的01h。 是这样吗?
  2. 系统控制寄存器:第2.5.1.46节将 SYSESR 寄存器的位6描述为"保留"、而 TI 代码将其视为第二个 CPU 复位标志。 哪一项是正确的?
  3. PBIST 模块:第9.5.2节将 DLR 寄存器的位3描述为"保留"、并警告"请勿将此位从其默认值1更改为"。 然而、第9.6.1节中的编程示例显示设置"DLR = 0x14"将清除此位。 哪一项是正确的?
  4. PBIST 模块:第9.5.3节仅定义 PACT 寄存器的位0、第9.6.1节中的示例说明写入"PACT = 0x1"、但图9-2中的 TI 代码和流程图写入"PACT = 0x03"、这也设置了位1。 位1的功能是什么?写入 PACT 的正确值是什么?

如果能澄清这些问题,将不胜感激。

此致、
Christian

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

    尊敬的 Christian:

    [引用 userid="499886" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1197380/rm57l843-inconsistencies-in-rm57lx-trm ]SPI 模块:表27-25有关 SPIDAT1寄存器的 CSNR 域的说明表明、"1"位会激活相应的片选线路、但实际上似乎是反相的。 例如、要激活 CS0、必须设置值3Eh、而不是表中所示的01h。 这是正确的吗?

    实际上、芯片选择可用作低电平有效或高电平有效、请查看下面突出显示的句子。

    将 CS 用作高电平有效非常简单、我们只需使用 SPIDEF 寄存器将默认状态配置为逻辑0即可

    这就是他们在表中提到"X"的原因、这意味着无关。

    因此、w.r.t 高电平有效信号中的值是正确的。

    [引用 userid="499886" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1197380/rm57l843-inconsistencies-in-rm57lx-trm ]System Control 寄存器:第2.5.1.46节将 SYSESR 寄存器的位6描述为"保留"、而 TI 代码将其视为第二个 CPU 复位标志。 哪一项是正确的?

    您能否指出代码中的确切位置、将其视为第二个 CPU 复位标志。 屏幕截图或代码片段都有助于轻松理解。

    [引用 userid="499886" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1197380/rm57l843-inconsistencies-in-rm57lx-trm ]PBIST 模块:第9.5.2节将 DLR 寄存器的位3描述为"保留"、并警告"请勿将此位从默认值1更改为"。 然而、第9.6.1节中的编程示例显示设置"DLR = 0x14"将清除此位。 哪一项是正确的?

    你对这位基督徒很正确、我将就此与我的内部团队进行讨论。  感谢您指出这一点。

    [引用 userid="499886" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1197380/rm57l843-inconsistencies-in-rm57lx-trm ]PBIST 模块:第9.5.3节仅定义 PACT 寄存器的位0、第9.6.1节中的示例说明写入"PACT = 0x1"、但图9-2中的 TI 代码和流程图写入"PACT = 0x03"、这也会设置位1。 位1的函数是什么、写入 PACT 的正确值是什么?[/引号]

    你对 这位基督徒很正确、我将就此与我的内部团队进行讨论。  感谢您指出这一点。

    --

    谢谢、此致、
    Jagadish。

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

    关于复位标志:HALCoGen (旧版本)和 SafeTI 库都具有如下定义:

    include/hL_system.h:

    typedef 枚举

    (笑声)
     interconnect_reset = 0x0080U、/**<互连复位别名*/

     CPU1_RESET = 0x0040U、/**< CPU 1复位的别名*/
     CPU0_RESET = 0x0020U、/**< CPU 0复位的别名*/
    (笑声)
    } resetSource_t;

    HAL/include/reg_bitdefn_system.h:

    #if defined (_TMS570LC43x_)|| defined (_RM57Lx_)
    #define SYSESR_CPURST0 (UINT32) 0x00000020u
    #define SYSESR_CPURST1 (UINT32) 0x00000040u
    #define SYSESR_ICSTRST (UINT32) 0x00000080u
    #endif

    并在确定复位原因时检查两个标志:

    source/hL_system.c:

    否则(((SYS_EXCE异常 和(UINT32) CPU1_RESET)!=0U)

     /*由于 CPU1复位而导致的复位。
       CPU 复位可能由 CPU 自检完成、或引起
       通过切换 CPU 复位控制寄存器的"CPU RESET"位。 *
     RST_SOURCE = CPU1_RESET;
     SYS_EXception =(UINT32) CPU1_RESET;

    否则(((SYS_EXCE异常&(UINT32) CPU0_RESET)!=0U)

     /*由于 CPU0复位导致的复位。
       CPU 复位可能由 CPU 自检完成、或引起
       通过切换 CPU 复位控制寄存器的"CPU RESET"位。 *
     RST_SOURCE = CPU0_RESET;
     SYS_EXception =(UINT32) CPU0_RESET;

    SAFETY_LIBRAE/SOURE/SL_INIT.c:

    #if defined (_TMS570LC43x_)|| defined (_RM57Lx_)
    否则、如果(SYSESR_CPUST1 =(sysEsr 和 SYSESR_CPUST1)){
     /*
      *此复位由 CPU 自检控制器(LBIST)或更改生成
      * CPU/MPU 寄存器中的存储器保护配置。 这种情况
      *复位由 SYSESR 寄存器 SYSESR[5]的 CPU RST 位标记。
      *
     RetVal = RESET_TYPE_CPU1;
     /*SAFETYMCUSW 440 S MR :11.3. 备注_5*/
     SL_systemREG1->SYSESR = SYSESR_CPURST1;

    否则、如果(SYSESR_CPURST0 =(sysEsr 和 SYSESR_CPUST0)){
     /*
      *此复位由 CPU 自检控制器(LBIST)或更改生成
      * CPU/MPU 寄存器中的存储器保护配置。 这种情况
      *复位由 SYSESR 寄存器 SYSESR[5]的 CPU RST 位标记。
      *
     RetVal = RESET_TYPE_CPU0;
     /*SAFETYMCUSW 440 S MR :11.3. 备注_5*/
     SL_systemREG1->SYSESR = SYSESR_CPURST0;

    #endif

    由于 SafeTI 库特别将其放置在已定义的(_RM57Lx_)部分中、我认为该寄存器位必须具有函数。

    此致、
    Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="499886" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1197380/rm57l843-inconsistencies-in-rm57lx-trm/4515501 #4515501"]关于复位标志:HALCoGen (旧版本)和 SafeTI 库都具有如下定义:[/quot]

    感谢 Christian 分享了这些信息、我现在了解了这个问题、我将与我的团队讨论这个问题。

    --

    谢谢、此致、

    Jagadish。