这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 如何防止PSD8XX芯片的JTAG接口死锁——如何使用PSD的C口作为复用方式

共2条 1/1 1 跳转至

如何防止PSD8XX芯片的JTAG接口死锁——如何使用PSD的C口作为复用方式

助工
2014-11-18 19:07:49     打赏
如何防止PSD8XX芯片的JTAG接口死锁——如何使用PSD的C口作为复用方式

工程师
2014-11-18 19:21:12     打赏
2楼

PSD8XXC口可以配置为复用方式,在非编程状态下用做一般I/O口,在编程时定义为JTAG接口。那么,PSD如何知道是处于JTAG编程方式还是一般I/O方式,一种实现方法是使用一个引脚来区别,如使用PB0来实现,在Abel文件中要加入如下描述:

方法一

pb0 pin;

jtagsel node 102;

EQUATIONS

jtagsel = pb0;

这样,在PB0接‘0’(地)时,JTAG使能被打开,可能通过JTAGPSD进行编程;在PB0接‘1’(+5V)时,JTAG使能被禁止,C口用于一般I/O方式。

这种方式实现C口的复用简单可靠,缺点是还是占用了一个引脚。

方法二

使用PSD内部JTAG控制使用的第二项��Jtag-FF,在MCU运行中更改此控制寄存器(CSOIP+C7)中JTAG-EN位(位0)。在使用JTAG编程时先将JTAG-EN写为‘1’,在编程结束后再写为‘0’,程序就可以正常运行。实现方法是在PSD配置时将JTAG口设为复用,并且内部节点jtagselnode 102)也设为‘1’,这样JTAG的使能就完全由JTAG控制寄存器来控制。在编写的程序开头中加入否编程的判断,如使用单片机(以8031为例)的P10口,程序编写如下:

MOV C, P1.0

JC NORMAL

MOV DPTR, #(CSIOP_ADDRESS+0C7H)

MOV A, #01H

MOVX @DPTR, A ; 置位JTAG-EN,使能C口的JTAG功能

JMP $ ; 循环,等待编程

NORMAL:

MOV DPTR, #(CSIOP_ADDRESS+0C7H)

MOV A, #00H

MOVX @DPTR, A ; 复位JTAG-EN,禁止C口JTAG功能,工作于一般I/O方式

; 程序正常运行

如果上电时P10口为低,则使能JTAG接口;反之则禁止JTAG接口进行正常的程序运行。

这种实现C口复用的方式占用零硬件资源,但要求用户有较高的编程经验并且程序一定要运行可靠。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]