MRKIII 内核 MDI 下载及擦除失败解析

一、MDI 接口描述
对于 MRKIII 内核的产品,诸如 NCF29A1 以及 NCK2913 等芯片,都会提供固件擦除以及烧录的接口——监控及烧录接口(Monitor and Download Interface,以后将简称为 MDI),主要是由 2 线串行同步接口——Monitor Serial Data(之后简称为 MSDA)以及 Monitor Serial CLock(以后简称为 MSCL)构成,其外还包含有 VBAT 以及 GND。除了上述 4 个引脚之外,可能还需要额外提供 1 个引脚,即是唤醒引脚 Wake-up pin,该引脚是 MRKIII 器件的 GPIO 引脚。下图是 NCK2910 的 MDI 接口配置。



如果需要通过 MDI 进行固件烧录,必须要将 MRKIII 内核进入 Monitor 模式。对于 MRKIII 内核而言,在经历了初始化阶段(经过 tBOOT_WUP)之后,控制器会检查是进入 Monitor 模式,还是直接运行用户应用代码。进入的条件便是在 boot 流程之后,MSCL 保持低电平,而在这段时间(tCLKSEL)内,如果 MSDA 能够能够由低电平拉高,那么设备便会进入由内部时钟驱动的 Monitor 模式。



对于上图的情景,是通过通过电源让 MRKIII 进入上电重启,进而切换至 Monitor 状态,该情景可以不需要使用到 Wake-up 引脚;而一旦控制器使用的是连续供电,那么就需要使用 Wake-up 引脚,将 MRKIII 从低功耗的 Power-off 状态切换为 Monitor 状态。通过将检测唤醒的引脚电位拉低,MSDA 以及 MSCL 的配置保持不变,依旧可以让 MRKIII 从 Monitor 模式启动。



二、擦除烧录失败问题分析
需要注意的是,对于部分 MRKIII 内核设备,例如 NCK2910、NCK2913 等等,具有复位引脚 RST_N。该引脚可能会影响到 MDI 的访问,因为在整个烧录调试阶段 RST_N 应该始终保持高电平。
以 MantraC 系列的芯片为例,通常是由 SBC 提供 12V 转 5V 的供电,这种情况下,一旦 12V 断联,SBC 便不能够提供稳定电源,由 SBC 提供的 RST_N 也不会是稳定的低电平。此时 MantraC 便可能停留在 Reset 模式下,这样便会导致 MDI 访问失败。



为了实现正常的下载和调试功能,在下载过程中,可以将SBC的电源(12V)RST_N 保持稳定的高电平,也可以通过跳线暂时断开 RST_N 连接,直接从 2link box 取电,两种方式都可以使下载和调试成功。
然而,第一个方法需要有一个恒定的电源,而后者可以通过 2Link 控制供电。所以在保护 MRKIII 之后,情况是不同的。因为在持续供电的情况下擦除受保护的 IC 是不可能的,在上电之后只能暂时(看门狗超时周期,约524 ms)进入 Monitor 模式,设备将重置,这是这是为了保护 EROM 不被读取和修改。
因此,如果需要擦除受保护的 IC,则需要一个开机和唤醒序列,可以尝试考虑下列方法:
1、可以在供电线路之间添加一个由 2link box VBAT 引脚控制的开关电路,这样电源就可以直接由 2link box 控制。
2、将 2link box VBAT 引脚连接至 MRKIII 的 RST_N 引脚,然后通过 2-link“PR”命令控制 MRKIII 掉电、上电,复位之后重新开始烧录调试。
3、通过 UART/SPI 接口发送 RCP 命令 RC_CMD_MISC_RESET。
4、通过 UART/SPI 接口发送 RCP 命令 RC_CMD_LOW_POWEROFF,进入 Power-off 状态,然后通过 Wake-up 引脚唤醒。

三、参考文献
[1] CAI-2014-10 FAQ On MantraC Application
[2] MRKIII MDI Monitor and Download Interface

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论