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.

[参考译文] TLIN1431-Q1:TLIN1431-器件在 WDG 触发时进入睡眠模式

Guru**** 2903660 points

Other Parts Discussed in Thread: TLIN1431-Q1, MSPM0L1227

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1645623/tlin1431-q1-tlin1431--device-enters-sleep-mode-on-wdg-trigger

器件型号: TLIN1431-Q1
主题中讨论的其他器件: MSPM0L1227

大家好:

我在启用 CRC 的 SPI 模式下使用 TLIN1431。 看门狗设置为超时模式、超时为 260ms

下面是我使用的 SBC 初始化代码。 LINCTL READ 最初在 CRC Config 和 WDG Config 之后立即返回 0x04 SLEEP。

我是否需要遵循任何具体的顺序或考虑时机?

void SBC_Init (void)  

  SBC_TRANSMIT (CRC_CNTL、0x0115);
  SBC_TRANSMIT (WD_CONFIG_1、0x845027);
  SBC_TRANSMIT (WD_CONFIG_2、0x324E29);
  SBC_TRANSMIT (WD_INPUT_TRIG、0xDEFF2B);
  SBC_READ (LIN_CNTL、&pdestval);/*pdestval= 0x004000*/
   
  SBC_TRANSMIT (Scratch_PAD_SPI、0x324E29);
  SBC_READ (Scratch_PAD_SPI、&pdestval);/*pdestval== 0xB3803A*/
     
  SBC_TRANSMIT (LIN_CNTL、0xB3803A);
  SBC_TRANSMIT (SWE_TIMER、0xA78039);
  SBC_TRANSMIT (RSRT_CNTR、0xC7F051);
  SBC_TRANSMIT (FSM_CNTR、0x19F031);   
     
  SBC_READ (FSM_CONFIG、&pdestval);/* pdestval=0x470000*/
  SBC_READ (INT_1、&pdestval);/* pdestval=0xA48000*/
  SBC_READ (INT_2、&pdestval);/* pdestval=0xE91000*/
  SBC_READ (INT_3、&pdestval);/* pdestval=0x882400*/
  SBC_READ (LIN_CNTL、&pDESTval);/* pDESTVAL=0x004000*/

  SBC_READ (WD_CONFIG_2、&pDESTval);/* pDESTVAL=0xFF4200*/
  SBC_READ (WD_CONFIG_1、&pDESTval);/* pDESTVAL=0x0F5000*/
  SBC_READ (FSM_CONFIG、&pdestval);/* pdestval=0x470000*/
  SBC_READ (RSRT_CNTR、&pDESTval);/* pDESTVAL=0x9FF000*/
}

提前感谢!!!

-阿尔皮特

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

    尊敬的 Arpit:

    我怀疑顺序/计时问题、因为我相信您在初始化过程中发现 WD 未得到正确维修。

    即、在 WD 变为活动状态后器件进入睡眠状态的超时状态下启用 WD。 因此、很可能会在编程完全锁定之前进入睡眠状态。

    • 似乎您配置了 WD、但不要立即为其提供服务。 因此、很可能过渡到睡眠状态。
    • CRC 似乎可以在不确保 WD 稳定的情况下尽早启用。
    • LIN_CNTL 似乎正在执行读取、然后再执行发送。 因此、如果两步之间发生 WD 超时、器件可能会进入睡眠状态、LIN 配置可能不会生效。  

    如果可行、还建议确保已知的 SPI 安全状态(最初禁用 WD 时的稳定 VSUP)。 此外、若要配置 WD 但不让其过期、请在配置 LIN 后在初始化过程中最后/最后配置和启用 CRC 后立即提供服务、同时确保在 WD 稳定后配置 LIN。

    即、将 CRC_CNTL 移至末尾、确保在 WD_CONFIG 写入后立即发送 WD_INPUT_TRIG、在初始化期间添加延迟或重复 WD 触发、然后仅在完全初始化+ WD 服务后读取 LIN_CNTL、谢谢。  

    此致、

    Michael。

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

    您好、Michael、

    谢谢、这解决了我的问题。 但是我看到了一种不规则的现象。

    我的 PCB 使用 MSPM0L1227 和 TLIN1431-Q1 3V3。 用于调试我使用 Xds110 USB 调试探针。

    - 当调试器通过 SWD 连接时,TLIN 不会在 SPI 命令上进入 LIN 正常模式

    - 当调试器断开连接时,TLIN 在 SPI 命令上转换为 LIN 正常模式

    -我的 SBC 初始化序列如下:

    void SBC_Init (void)  

      SBC_TRANSMIT (CRC_CNTL、0x0115);
      SBC_TRANSMIT (WD_CONFIG_1、0xA027);
      SBC_TRANSMIT (WD_CONFIG_2、0x4029);
      SBC_TRANSMIT (SWE_TIMER、0x8039);
      SBC_TRANSMIT (RSRT_CNTR、0xF051);
      SBC_TRANSMIT (FSM_CNTR、0xF031);   
      SBC_TRANSMIT (LIN_CNTL、0x803A);
     }   

    我每 290ms 触发一次 WDG、窗口配置为 384ms

     

     

    问题:SWD 和 LIN 状态转换之间是否存在任何关联

    此致、

    -阿尔皮特

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

    尊敬的 Arpit:

    我怀疑 MCU 已被调试器停止、并且 WD 服务会中断或调试器更改时序。

    因此、在开发过程中暂时禁用 WD 或使用更大的 WD 窗口、谢谢。

    此致、

    Michael。