原创 M0自动isp方式学习

2011-8-7 22:08 3411 14 14 分类: MCU/ 嵌入式

曾今用过看过nxp的自动isp电路(配合flashMagic,如今看到菜农大叔的自动isp的教学;深有体会,所以整理一下自己的学习;

 

如今单片机的isp功能是个非常重要的指标;

一般的单片机内部有一个isprom,来存储isp程序;有的单片机出厂就把isp固化在了该ROM中,而且是无法更改的;如大家熟悉的stc51单片机,该单片机的isp的相关协议也不是开放的,所以stc51单片机一般都只有老姚的下载工具软件能用;而nuvotonisp出厂就没有烧好,需要客户自己烧(ICP软件),而且isp可以自己更具需要修改,其协议也是开放的,所以除了nuvoton原厂的isp软件外,其它爱好者也能根据其协议写出上位机软件,如菜农的hostisp

 

MCUisp的载体方式是灵活多样的:如可以通过uart, can,usb等;

一般常用的是UART;

Uart并不是专门用来给我们用来isp升级的;

所以有必要区分什么时候要ISP,什么时候要工作的uart通讯;

一般都会有个ispENIO引脚来区分;

当需要用来isp时,把相应的ispEN使能即可;

但因为平常ISP几乎不用,它只在升级时用,假若在运行期间,假若ISPEN被干扰,可能使程序误入ISP状态;所以又用了reset信号来区分;我们的ISP一般都是想在开机运行时启动工作的,在运行期间不管ISPEN信号发生什么变化,都照常运行程序;不会进入ISP;

所以来区分什么时候进入ISP,什么时候进入正常的程序运行;

就必须涉及到这两个信号:

1.      ISPEN

2.      reset

 

记得nuvoton原厂的M0516开发板,必须把p3.2拉低才能进入isp;这样就不叫自动isp,显得有点麻烦;

记得曾经nxp有利用uartDTRRTS来巧妙的完成改步骤;

20110807220449001.jpg

以上就是nxp的一个自动isp的电路,其配合FlashMagic软件,很好的完成了自动isp的功能;

 

 

下面是菜农的nuc120助学板中的自动isp的电路图:

20110807220458002.jpg

 

DTR控制复位,RTS控制ispEN ;

PC端的软件能够控制uartDTRRTS脚;

DTR=1,意味着其rs232电平为-10V左右(rs232为负逻辑电平),经过相关的三极管电路后,取反到达reset的电平信号为“1”,即不复位;
同理,RTS=1,m0PB.15=1即正常运行串口通讯;

所以在需要ISP的时候,相关的上位机可以控制DTR,RTS使其自动进入isp所需的状态;

而不需要手动的去进行相关的连接;

 

再来看看DB9的第一脚DCD信号的应用

它是用来检测目标板是否在线的(开机或者工作正常);

它实际是 DB9_3 PC TX 输入 经过3232 到达 RXD0 PC 发送数据 M0 接收数据 直接没经过 M0 而进入 T2IN 经过 3232 的非门即反向到达 DB_1 DCD

假若 3232 坏或目标板未开机 那么非门就不会作用 DCD 就不会得到至少一次

的变化 一位串口的一帧由起始位 0 数据 0xff( 假使 ) 和停止位 1 组成的 那么

至少有一个脉冲的发生;

利用这个原理巧妙的来判断了目标板是否在线;

文章评论0条评论)

登录后参与讨论
我要评论
0
14
关闭 站长推荐上一条 /2 下一条