搜索
bottom↓
回复: 14

M16的JTAG功能关闭后,是否就意味着下一次程序就不能通过JTAG仿真器烧写进去了?

[复制链接]

出0入0汤圆

发表于 2007-5-24 15:22:22 | 显示全部楼层 |阅读模式
如题,我使用的M16单片机,B口用作显示数据线,D口用作控制,A口取两口用作A/D转换,只好用C口作4X4的键盘扫描输入了,查了相关的帖子都说得把JTAG的功能关闭才能使能C口的正常I/O功能.我最关心的是,如果我把它关闭了,那是否就意味着我下次不能再通过串口JTAG仿真器往我的单片机里烧程序了?如果不能烧写的话,那我的单片机不就废了,我手头没有别的程序烧写工具了.

请各位高手给个详细的说明,先行谢过了.

在线等候.

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2007-5-24 15:26:54 | 显示全部楼层
我也看了数据手册,感觉要是关掉了JTAG功能,那就在我下次烧程序之前没机会把它改回来了,也就是下不了程序了,那这样一来,这几个口不就是给浪费掉了??

出0入0汤圆

 楼主| 发表于 2007-5-24 16:02:51 | 显示全部楼层
楼上的意思我没有弄懂....



意思是说没有了JTAG功能也可以用?这肯定是对的.我是怕一旦我禁用了这个功能后,以后就不能通过JTAG仿真器往里烧程序了,而我手头上又只有这个工具.

出0入0汤圆

发表于 2007-5-24 16:16:38 | 显示全部楼层
我的理解:如果关闭了JTAG使能,则下次你JTAG连机都成问题,更别说下载程序了。禁止了JTAG可以使用ISP下载,不一定非要用JTAG烧写。

出0入0汤圆

发表于 2007-5-24 16:51:34 | 显示全部楼层
同意4楼

出0入0汤圆

发表于 2007-5-24 21:15:03 | 显示全部楼层
同意4楼,用ISP重开就可以了。

楼主,宁可没有JTAG,也不可没有ISP。



嘻嘻,我明天的JTAG及单线仿真就可以收到了,从此以后,我的JTAG仿真、单线仿真、ISP下载器都有齐了,爽。

出0入0汤圆

发表于 2007-5-25 16:53:02 | 显示全部楼层
楼上都没详细注意说明书里面的内容,你们只看到了JTAG要关闭,但没看到关闭的两种方式,用熔丝位关闭只是其中的一种方式,在这种方式下是没法再用JTAG了,如果想利用引脚功能,又想用JTAG功能,利用指令来关闭JTAG,这样就可以实现你们所要的功能,只是多一个操作了。程序工作后关闭JTAG(用指令),这样你怎么用引脚都可以了。但这样是会造成无法正常使用JTAG,所以要使用JTAG的时候,将芯片进入复位状态并保持,这时候就可以正常使用JTAG功能了。

出0入0汤圆

 楼主| 发表于 2007-5-25 16:54:09 | 显示全部楼层
汗,羡慕楼上的,我就这一个工具.本来I/O口就感觉不够用,用上A/D又少了8个口.

那看来我还是扩展下I/O吧,真的是晕.

出0入0汤圆

 楼主| 发表于 2007-5-25 16:54:20 | 显示全部楼层
汗,羡慕楼上的,我就这一个工具.本来I/O口就感觉不够用,用上A/D又少了8个口.

那看来我还是扩展下I/O吧,真的是晕.

谢谢楼上各位了.

出0入0汤圆

发表于 2007-5-26 09:59:29 | 显示全部楼层
使用MCUCSR=1<<JTD,就可以了。下次要用jtag时,复位端拉低电平2个时钟周期就可以了

出0入0汤圆

发表于 2007-5-26 11:50:20 | 显示全部楼层
jtag和isp只能互相关闭吧,自己能把自己关了?

出0入0汤圆

 楼主| 发表于 2007-5-28 14:08:51 | 显示全部楼层


&#8226; Bit 7 – JTD: 禁止JTAG 接口

此位为0 时,如果JTAGEN 熔丝位被编程则JTAG 接口使能。如果这位为1, JTAG 接

口禁止。为了避免无意的禁止或使能JTAG 接口,必须通过一个时间序列来改变JTD 位。

应用软件必须在四个时钟周期内将期望的数值两次写入JTD。



结合楼上各位的帮助,我仔细看了下说明书.我的理解如下:

程序开始后执行:MCUCSR|=(1<<JTD);NOP();MCUCSR|=(1<<JTD);

是否就可以关闭JTAG的功能,而我想重启JTAG的功能,我只需将MCU复位,这样MCRCSR的JTD位又清零,就可以继续使用JTAG功能了.



以上理解是否正确?请各位朋友指点.

出0入0汤圆

发表于 2007-5-30 10:30:16 | 显示全部楼层
注意,中间的空指令不要加了,另外其实那个控制位不是被清零了,因为你直接复位后,程序就没有执行,当然不会禁用JTAG,你可以一直在复位状态下进行编程操作,完成后让复位去掉就可以正常工作了。完全不影响你的正常使用,只是多一步要自己手动复位而己。这个是我做过试验的,ISP和JTAG是独立的,另外我试验过程中不能停止复位,否则JTAG就会被禁用,所以十楼的说法不正确,因为JTAG完成后,如果不继续复位,程序就启动运行了,所以还会禁用JTAG。

出0入0汤圆

发表于 2007-5-30 11:59:24 | 显示全部楼层
其实JTAG ICE有提供复位的功能,就是针对JTD被编程的。连接的时候提示失败,然后再那个对话框有一个选项是 激活外部复位的,这样JTAG ICE就会提供外部复位,把单片机复位的。 因此不需要手动去按复位的。



不过自己做的JTAG ICE很多电路图,很多人都没有接nRESET这个脚,都空在那。因此就没办法用这个功能。 所以这个脚应该接上。



具体接法是JTAG ICE的m16 的/SS脚 即PB4 接----|<|------到nReset 即JTAG接口的第6脚。这个二极管因该选1n5819之类的管子。

还有PD2也应该接nRESET, 这个脚应该是检测在仿真时目标版的意外复位。





另外这样写因该部可以禁止JTAG的吧

MCUCSR|=(1<<JTD);

MCUCSR|=(1<<JTD);



这样生成出来的汇编语句不止4个周期的,因该是这样比较好

unsigned char temp;

temp = MCUCSR | (1<<JTD);

MCUCSR = tmep;

MCUCSR = temp;

出0入0汤圆

发表于 2013-4-10 19:36:02 | 显示全部楼层
这个问题跟编译器有关的不,我之前用IAR编译IO口可以正常使用,但是用ICC8编译后发现跟JTAG相关的四个IO口不能置低,所以我认为编译器里也有相关的设置可以关掉JTAG
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表