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.

[参考译文] MSPM0C1104:关于 I2C 时钟被拉至低电平

Guru**** 2460950 points
Other Parts Discussed in Thread: UNIFLASH, SEGGER, MSPM0C1104

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1465744/mspm0c1104-about-i2c-clock-is-pulled-low

器件型号:MSPM0C1104
主题中讨论的其他器件:UNIFLASHSEGGER

工具与软件:

嗨、团队:

客户使用 i2ctest 查询 MCU (使用 i2c 目标器件的地址0x48将 MCU 配置为 i2c 目标器件)  、但发现 MCU 没有响应、并且使用范围检查 i2c 波形、发现 SCL 在作为附件的几个时钟周期后将变低。  此问题始终存在

 

客户使用 SDK:mspm0_sdk_2_03_00_07

 

问题:

客户使用 M0C1104 WSON。  他们担心 I2C 时钟和 NRST 使用相同的引脚。 I2C 时钟由对等器件(而不是 M0C104)拉取。 有时、对等器件可能突然断电。 他们担心 I2C 时钟突然低电平。 这将触发 NRST 至 M0C1104。

他们还有以下两个问题。 请帮助您澄清。 谢谢你。

  1. 要通过 SWD 将固件下载到 MSPM0C1104SDSGR、我们需要 NRST 引脚、还是只需要 VDD、VSS、SWCLK 和 SWDIO?
  2. 对于 I2C 和 NRESET 在 MSPM0C1104SDSGR 上共用同一引脚、何时触发 RESET 功能? 在 I2C 传输期间是否会触发复位。

 

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

    你好、 

    [报价用户 id="76143" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1465744/mspm0c1104-about-i2c-clock-is-pulled-low 通过 SWD 将固件下载到 MSPM0C1104SDSGR、我们需要 NRST 引脚还是只需要 VDD、VSS、SWCLK 和 SWDIO?

    至少3个引脚:SWDIO、SWCLK 和 GND。

    如果没有其他电源、则电源 VDD 需要连接到 M0。

    NRST 用于进一步调试、例如恢复出厂设置操作。

    我建议在开发阶段添加一些 NRST 测试点、以便于调试。

    [报价 USERID="76143" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1465744/mspm0c1104-about-i2c-clock-is-pulled-low 对于 I2C 和 NREST、在 MSPM0C1104SDSGR 上共享相同的引脚、何时会触发复位功能? 在 I2C 传输期间是否会触发复位。[/QUOT]

    需要在初始化期间禁用具有 NRST、NRST 功能的 I2C 引脚、您可以在 syscfg 中或在 main 的第一行中禁用该引脚。

    我建议您在 INIT 中禁用 I2C 之前添加一些延迟、因为在开发阶段、如果需要恢复出厂设置等、需要在引导时保留 NRST 功能。

    步骤:

    主{

    delay_cycles (24000000*5);延迟5s

    禁用 NRST;

    SysCfg 初始化;

    用户功能

    }

    此外、NRST 禁用 配置只能在 POR、上电复位后复位。

    此致、

    Helic

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

    尊敬的 Helic:

    我建议您在 init
    中禁用 I2C 之前添加一些延迟

    这种说法是否错字?  是说在禁用之前添加一些延迟 NRST 在 init 中?

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

    是的、添加一些延迟以确保如果需要 NRST 功能、在启动后几秒钟内可以恢复出厂设置。

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

    你好、  

    对于 MSPM0C1104SDSGR、我们发现它将显示交战消息、如果我们 在 syscfg 中为 PIN2设置 I2C 之前未禁用 NRST 函数、  

    根据您的建议、在几秒 POR 后禁用 NRST、这是否意味着我们仍需要 在 syscfg 中禁用 NRST 功能、并为在 main 中禁用 NRST 添加延迟时间。

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

    您好、 

    在 main 和 syscfg 中禁用都将正常工作。

    开发阶段:

    我希望你做的是在 main 中用一些延迟来禁用 NRST、这样将保留一些用于调试的时间窗口。

    以及量产阶段、  

    您可以在 syscfg 中直接禁用 NRST。

    如果只想在 syscfg 中禁用 NRST、就可以了。

    此致、

    Helic

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

    你(们)好  

    感谢您的答复。

    目前、我们正在使用 uniflash 将固件下载到 MCU (一种 UI 接口)。

      是否有办法通过命令行界面下载固件、也可以通过脚本下载固件

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

    您好、 

    请参阅以下内容:

     e2e.ti.com/.../7345.UniFlash-CLI-with-MSPM0-Device-Guidance-.pdf

    此致、

    Helic

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

    嗨、 

    最近、工厂遇到一个问题、数十个 MSPM0C1104SDSGR MCU 无法下载固件。 此前、我们已成功将固件下载到数百个 MCU、没有任何异常情况。

    我们最初的交换测试在工作电路板和不工作电路板之间交换 MCU、确认了 MCU 本身问题。 此外、我们发现、 如果在不下电上电的情况下重复闪存、其中两个 MCU 最终可以恢复。

      当 MCU 恢复正常时、我们从 syscfg 中收到消息
    ==========================================================================

    [Cortex-M0P、8:28:17 PM][错误] 2025年2月28日:连接到目标时出错:无法连接到目标。
    [Cortex-M0P、8:28:19 PM] 2025年2月28日:GEL 输出:存储器映射初始化完成
    [PC、8:28:20 PM][错误] Cortex_M0P:写入故障寄存器2025年2月28日:目标系统的 PC 在擦除扇区后有意外的值。 (PC = 0x00000000)! -------------------------------------------------------- 寄存器------------------------------------------------ PC = 00000000电流:R0 = 00000000、R1 = 00000000、R2 = 00000000、R3 = 00000000 R4 = 00000000、R5 = 00000000、R6 = 00000000、R7 = 00000000 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 擦除扇区失败。 CPU 运行时无法读取寄存器20 (CFBP) CPU 未停止在 CPU 运行时无法读取寄存器15 (R15)在 CPU 运行时无法读取寄存器7 (R7)在 CPU 运行时无法读取寄存器6 (R6)在 CPU 运行时无法读取寄存器5 (R5)在 CPU 运行时无法读取寄存器4 (R4)在 CPU 运行时不读取寄存器3 (R3)
    [SUCCESS] 2025年2月28日、8:28:20 PM][成功]程序加载成功完成。

    ====================================================================================

      当另一个 MCU 恢复正常时、我们从 syscfg 中收到消息

    ======================================================================================================

    [Cortex-M0P、7:30:38 PM][错误] 2025年2月28日:连接到目标时出错:无法连接到目标。
    [ 2025年2月28日、7:30:41 PM][错误] Cortex_M0P:连接到目标时出错:无法连接到目标。
    [Cortex-M0P、7:30:43 PM] 2025年2月28日:GEL 输出:存储器映射初始化完成
    [PC、7:30:44 PM][错误] Cortex_M0P:写入故障寄存器2025年2月28日:目标系统的 PC 在擦除扇区后有意外的值。 (PC = 0xFFFFFFFF)! -------------------------------------------------------- 寄存器------------------------------------------------ PC = FFFFFFFF 电流:R0 = 00000000、R1 = 80000000、R2 = 00000000、R3 = FFFFFFFF R4 = FFFFFFFF、R5 = FFFFFFFF、R6 = 00000000、R7 = FFFFFFFF ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 擦除扇区失败。
    [SUCCESS] 2025年2月28日、7:30:44 PM][成功]程序加载成功完成。
    [Cortex-M0P、7:32:57 PM] 2025年2月28日:GEL 输出:存储器映射初始化完成
    [SUCCESS] 2025年2月28日、7:32:58 PM][成功]程序加载成功完成。
    [Cortex-M0P、7:33:04 PM] 2025年2月28日:GEL 输出:存储器映射初始化完成

    ====================================================================================================

    我们怀疑 MCU 可能已锁定、或者消息显示这些 MCU 存在 潜在 问题

    1. 什么因素可能导致 MCU 锁定?
    2. 可通过哪些方法解锁 MCU?

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

    您好、 

    什么原因可能导致 MCU 锁定?

    具有空白闪存的 M0将 在10秒上电复位后进入低功耗模式。

    但是、上面提到的错误表明调试器/编程器可以访问 M0的内核寄存器。

    尝试复位 MSPM0并对其进行编程。

    可使用哪些方法来解锁 MCU?

    尝试恢复出厂设置。

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1466779/mspm0g1507-i-need-an-swd-script-to-do-factory-reset?tisearch=e2e-sitesearch&keymatch=MSPM0%252520factory%252520reset#

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1480613/lp-mspm0g3507-mspm0-flash-setting---device-was-locked/5685545?tisearch=e2e-sitesearch&keymatch=MSPM0%2525252520factory%2525252520reset#5685545

    此致、

    Helic

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

    嗨、 

    感谢您的回答。 但 我的"设置和实用程序"页面是空白的,没有任何按钮和选择器,像你给我显示的链接。

    有什么我遗漏的东西吗

    我使用 UniFlash、 MSPM0C1104、 SEGGER J-Link 仿真器。

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

    您好、 

    恢复出厂设置需要 XDS110调试探针、您正在使用 Jlink。

    此致、

    Helic