设计不需跳线的ISP电路的想法源于请教汽车电子及各位LPCARM老鸟解决ISP误入问题
给系统加外狗时,要解决不跳线必须采用电子开关.
在ISP期间,由于用户程序被停而不能喂外狗,导致外狗复位而终止ISP操作.
选择706主要是它带手动复位,而且在看门狗溢出时并不直接复位CPU.
这样就给我们留下了加装电子开关的机会.
如实战LPCISP电路所示:
Q1就是电子开关.它的作用是在看门狗溢出时,将其与手动复位管脚进行有选择的连接.
Q1的原理很简单,ISPEN=0,WDO的低电平无法"送到"MR端,使之无法复位CPU.
当ISPEN=1时,若WDO=0,则MR=0(0.6V).若WDO=1,则MR=1(VCC).
故在ISPEN=1时,Q1起到将WDO"送到"MR的作用即电子开关.
ISPEN有几种选择,可以由PC设置进入(ISPEN=0)或退出(ISPEN=1)ISP状态.
此时ISPEN工作在输入或开路输出状态(P0.14为SDA1 OC输出).
若想工作在低功耗,可能想关闭外狗,这时可以设置ISPEN输出低电平关闭电子开关.
若想复位而不想受TXD0/RXD0上的D3/D4外部辅助喂狗的影响,可以设置WDI(P0.11为SCL1 OC输出)输出低电平锁死喂狗通道,
达到"自毁"的目的.
故不会出现圈圈同学说得"P0.11不用搞二极管了吗?小心它把电位提高了~~~~"
TTL的图腾柱是不能"线与"的.
而且选用P0.11做WDI也是考虑不浪费I2C1.应该在ISP完后,用户程序可以正常操作I2C1.
这可能在SDA1=0时关闭喂狗通道,但内狗和软件狗不可能3狗同时"拜拜"...
在TXD0/RXD0上的D3/D4的作用也是为了达到线与和收发数据隔离的目的.
而且在现有的ISP2.22软件下,RXD0必须在ISP期间辅助喂狗!!!
但TXD0上的D4(可选件)主要是为了在某些特定系统必须在1S内向上位机发数据时,不愿再喂狗而选择的.
最后就是D1/D2的问题,这也是我通过实战发现的.
由于采用了表贴的MC1413,功率可能较小,在接232电平时,在-9V~+10V时,主要是
在-9V时发热,估计是内部的那个钳位负压的二极管功率不够发热所致.
串联10K电阻也不行.
经典的是串联33K电阻,但是考虑232电平在-9V~+10V变化,故不如加二极管隔离负压干脆...
再就是RXD0上的D4,如果系统采用远程3线通讯,这样就可以利用D4实现远程复位功能(假如远程机死机的话)...
所以,本实战LPCISP电路的可复用效率很高,而且可以达到100%的ISP效率.
总之实用性很强... |
|