Other Parts Discussed in Thread: MSPM0L1105, SYSCONFIG
器件型号: MSPM0L1105
主题: SysConfig 中讨论的其他器件
您好:
我的公司使用 MSPM0L1105 作为 I2C 从器件。 我们计划通过 BSL 更新 MSPM0 应用程序代码。 但是、通过调用引脚进入 BSL 时、会出现问题。
背景:
我们使用的是 MSPM0L1105 和 WQFN-16 (RTR) 封装。 完整产品名称是 MSPM0L1105TRTRR。 值得注意的是、对于该产品、NRST 的默认 I2C SCL 引脚在同一引脚上(引脚名称为 PA1/NRST)。
MSPM0 应用程序使 LED 闪烁。 当 LED 不闪烁且通电时、MSPM0 大概位于 BSL 中。 应用程序从器件地址为 0x11。
主 I2C 器件是一个运行 Linux 的 ARM 处理器。
在 syscfg 中、BSL 调用引脚为 PA23/PA25、BSL 调用引脚电平为高电平。 BSL 从站地址为 0x48。
在 syscfg 中、NRST 引脚被禁用。
当应用程序使用函数 DL_SYSCTL_resetDevice (SYSCTL_RESETLLEVEL_LEVEL_BOOTLOADERENTRY) 进入 BSL 时、主器件能够与 BSL 通信。 从主器件运行命令实用程序 i2cdetect 会在查询从器件地址 0x48 时导致主器件上的 I2C 驱动程序超时。 当对固件进行编程以使主器件使用 TI 定义的 BSL 协议与 BSL 进行交互时、我们就可以与它进行通信。 提及 i2cdetect 的目的是确定我们能够与 BSL 通信时的行为。
虽然在使用此方法进入 BSL 时、我们可以与 BSL 进行通信、但我们需要能够在没有应用程序的情况下进入 BSL。
问题:
当调用引脚设置为高电平(调用 BSL)并且电源打开时、LED 不会闪烁。 大概这意味着 MSPM0 位于 BSL 中。 当主器件运行 i2cdetect 时、地址 0x48 上没有超时。 在不关闭电源的情况下、调用引脚设置为低电平(调用应用程序)。 当运行 i2cdetect 时、LED 开始闪烁、这表示应用程序正在运行。 再次运行 i2cdetect 将确认存在地址为 0x11 的从器件。
我认为 BSL 不会禁用 NRST 引脚。 因此、当有 I2C 通信时、MSPM0 正在复位。 当调用引脚设置为调用应用程序时、这一点最为明显、而 I2C 通信导致 MSPM0 运行应用程序。
我的结论是否正确? 是否有办法解决此问题?