本帖最后由 小恩GG 于 2020-8-3 16:56 编辑
在LPC15xx的用户手册中,Table 89 ISP mode 描述了四种ISP模式,其中在No ISP 模式下,如果flash里没有程序或者程序被破坏了不能运行,重启芯片则通过USB进入ISP模式。但对于没有片上USB的LP15xx产品,此处没有说明。通过与开发部门确认,此处有默认的流程,本文重点对这部分进行补充说明,并建议下一版用户手册添加此部分内容。
本文主要讲述两部分内容, 第一部分概括总结LPC15xx系列进入ISP模式的几种接口和控制方法。 第二部分重点介绍对于没有片上USB接口的LPC15xx芯片通过哪个接口进入ISP模式。
一,LPC15xx系列进入ISP模式的几种接口及控制方法 LPC15xx 系列芯片支持3中接口进入ISP模式,USART0,CAN 和 USB. 由芯片上两个引脚ISP_0和ISP_1来控制是否进入ISP模式以及通过哪个接口进入。参考如下“ISP modes” 表格,有四种情况。当启动芯片时(上电或者复位重启), 1)如果ISP_0和ISP_1都是高电平,直接运行flash程序。但是,如果flash里没有任何程序或者有被破坏不可以运行的程序,就通过USB接口进入ISP模式。 2)如果ISP_0是高电平,ISP_1是低电平,通过CAN接口进入ISP模式。 3)如果ISP_0是低电平,ISP_1是高电平,通过USB接口进入ISP模式。 4)如果ISP_0是低电平,ISP_1是高电平,通过USART0进入ISP模式。 不同的封装,ISP_0和ISP_1对应不同的引脚,请参考如下表格:
二, LPC15xx没有USB接口系列芯片进入ISP模式 由第一部分可知,当ISP_0和ISP_1都是高时,如果flash里没有程序或者程序被破坏了不能运行,重启芯片则通过USB进入ISP模式,但是从LPC15xx数据手册中发现,部分型号并没有USB,如下图:
所有LPC15xx系列芯片选择ISP接口流程如下: (这个是芯片出厂前已经固化好的,用户不可更改。) If ( ISP1 pin (VBUS) is high ) { check if it's USB enabled in the part configuration (factory setting) or not, if USB is enabled, go to USB ISP mode, otherwise, go to UART ISP mode } else if ( ISP0 pin is low )
{ go to UART ISP mode. } else { it checks if CAN is present or not, if CAN is enabled in the part configuration (factory setting), it goes to CAN ISP mode, otherwise, it goes to UART ISP mode. } |
注意以上流程中高亮部分,当ISP1为高时,对于支持USB接口的LPC15xx系列,进入USB_ISP模式;如果所用的LPC15xx不支持USB,则通过UART进入ISP模式。
|