对Flash-based的MCU来说, ISP和ICP几乎是不可或缺的功用, 但咱们常常被这两个功用搞混, 终究他们的不同在哪里? 对客户的含义又是什么?在这里, 和我们共享并弄清一些观念, 期望对我们有所协助, 从而回答来自客户关于ISP与ICP的疑问.
1)在开发阶段
改code时, 不再需要将MCU从板子上拔起来, 拿到烧录器上烧, 然后再装回去. 能够直接运用ISP/ICP Programmer做板上烧录, 为开发者供给了极大的便利性.
2)在量产阶段
客户能够选用”先焊到板子上再烧code”的方法, 将烧code的动作组织在生产线的某一站.
那么传统的方法 (先将code烧好再焊到板子上)有什么缺陷?
传统的方法是这样的: 拆封–>从tray盘取出chip–>烧录–>把chip放回tray盘.
这样的流程比起上面主张的方法: 增加了烧录时刻, 简单形成QFP包装的chip弯脚, 或忘了烧code即放回tray盘.
3)在制品阶段
已组装好的制品若要改code, 能够透过预留的接口, 运用ISP或ICP, 更新MCU, 不需要拆机.
什么是 IAP (In-Application Programming)?
IAP指的是, MCU在运转的状况下, 运用ISP的机制, 不透过外接东西 (例如: ISP Programmer) 的帮助, 去更新APROM, DataFlash 或 CONFIG. 要完成这种功用,
体系有必要有获得更新数据的才能, 例如: 处于某一种联机的状况.
(注: 有时候, ISP/IAP的别离并不是那么清楚!)
ISP与ICP的不同
For ISP
(1) MCU有必要处于可执行程序的状况 (除了上电, 还要接XTAL), 且有必要预烧ISP-code在LDROM里边
(2) 烧录规模只限于APROM, DataFlash或CONFIG (但对运用者来说, 应经够了!)
(3) chip在LOCK的状况下, 依然能够只更新某一区块 (APROM, DataFlash或CONFIG)
(4) 由于烧录的动作取决于ISP-code的写法, 所以给体系设计者的弹性较大
For ICP
(1) MCU只需处于上电状况即可, 不用预烧任何code在MCU里边
(2) 烧录规模包含整颗MCU, 包含 APROM, DataFlash, CONFIG, LDROM和 ROMMAP
(3) chip在LOCK的状况下, 无法只更新某一区块, 只能在erase-ALL之后,更新某一区块, 再逐个烧回其它区块(由于ICP的实质便是走串行接口的Writer Mode, chip被LOCK之后, 除了erase-ALL, 一切烧录动作皆会被制止)
(4) 由于烧录纯粹是ICP硬件的行为, MCU无法自己更新自己, 所以给体系设计者的弹性较小(例如: 无法藉由ICP去完成IAP的功用)
ISP与ICP的运用场合
依这两者的特性, 合作客户的体系需求, 然后才主张客户运用ISP或ICP.
注:上述不同的第(3)点和第(4)点, 可能是ICP带给运用者的最大约束. 站在运用者的观念, 若ISP与ICP只能择一的话, ISP会是必要的挑选