Mega16的 PC2-5(Jtag) 作输入脚时的小教训
我使用了如下的指令将这四个脚设置成内部上拉电阻的输入方式:SFIOR&=~BIT(2); //置SFIOR的PDU上拉电阻有效。与上一句一起生效。
DDRC&=0B11000011;//PC2,3,4,5 为输入脚
PORTC|=0B00111100; //设置上拉电阻
但却发现程序不能工作。由于这四只脚已经用作输入,所以,也不能使用 Jtag 仿真器了。
用万用表量一下没有输入时这四脚的电压,发现 PC2,PC3,PC5 均接近 vcc, 但 PC4 却接近0伏。
这很令我费解。换了一块 Mega16 后故障仍然存在。
反复检查线路均没有发现问题。后来在 datasheet 里发现,原来要将 JTAGEN 融丝位清除,才能使用这四支脚 ! 上拉输入有什么用处?和非上拉输入,上拉输出各有什么应用场合? 上拉电阻的用法这也有例子:http://www.ouravr.com/app_8_D_trigger.html
更详细的说明,可以查看官方中文手册。 thanks 我在站上详细讨论过JTAG的使用注意点,现找到证明的例子了。
我的帖子决不是书本上的东西,是手册(芯片不是我设计的,我首先也是看手册)和5年使用AVR经验的总结,其中也有我吃过苦头的教训。你见过有几个大学的教师能给出这么具体的“书本理论”? 哈哈,这个我注意到了,JTAG的几个引脚作为普通IO口,一定要把JTAGEN的熔丝位的钩去掉
ISP不用 标记 mark 我用过TO做adc输入的,不插jtag正常,其他几个似乎有问题,程序读出adc有值。估计估计这时候没有进入jtag模式,从机输出脚不受影响。把外围断开插上jtag也能正常烧写,估计调试受影响。m128,因为adc需要5路,不好想别的办法 JTAG与ISP在复用方面有所不同。 曾经被这个问题害惨过 上次竞赛时候就碰到这个问题了,datasheet里面说jtag管脚使用仿真时候,不能用作一般IO。 阅 我也得板是51/avr板的 买了个转接座 让后就试了下流水灯 就发现中间4个灯始终不亮 后来在网上找到了原因 就是我板上的灯恰好是用的pc的io口,后在熔丝里关掉jtag ok唉还有次困扰我几天的事就是我编好的程序下载入单片机后 没反应 然后最后才发现是编译器的芯片型号变成了另一个芯片 不知什么时候变的。 唉~ 嘿嘿,楼主说得是! 阅 我将PC2-PC5作为输出也始终输出高电平,在熔丝中将jtagen前的勾去掉还是不行啊!咋回事啊?你的可以了吗?我的芯片是atmega16的 刚上手mega16的时候也遇到过这个问题,,,抓头发看程序抓了一晚上。。。。 查了资料才知道有JTAG这个东西= =。。。 zq6220 发表于 2012-9-2 13:39 static/image/common/back.gif
我将PC2-PC5作为输出也始终输出高电平,在熔丝中将jtagen前的勾去掉还是不行啊!咋回事啊?你的可以了吗? ...
始终输出高电平就不是jtag的问题了。。好好看一下程序吧。。 sco518 发表于 2012-9-2 14:01 static/image/common/back.gif
始终输出高电平就不是jtag的问题了。。好好看一下程序吧。。
问题发现了!失能一下jtag就可以了,我的pc5是控制led的,结果那led是坏的, 呵呵!
页:
[1]