最近一直在调试电路板,遇到一些麻烦,这里先总结一下在调试ISP和JTAG时遇到的问题。
刚接上isp下载线,读取熔丝位的时候没有反应,那感觉是相当让人失望的。查出来了两处问题。
1). atmega128 与 atmega16 设定的ISP的下载端口是不一样的(我原来看的资料是 mega16的,所以犯下大错),mega16的ISP引脚为 MOSI(1),MISO(2),SCK(3),RESET(4). (括号里是芯片的引脚编号);mega128 的ISP的引脚为 PDI(2),PDO(3),SCK(11),RESET(20)。
2).PEN(1)一定不要接地。PEN引脚在复位的时候是自动转换的低电平。如果强制接地,一般只能通过ISP读取一次芯片存储器里的数据。这个问题也导致JTAG无法与芯片进行正常通讯。
还有就是电源的问题。我原来的设计是通过一个5V的电压基准REF02给AVCC供电。我的本意是想用AVCC的电位作为片上AD采样的基准电压,但是从基准出来的电流是非常小的(大约10mA),不能满足对芯片的供电,所以本来是5V的基准,竟然能输出6.6V的电压。解决办法是通过一个10uH的电感与电源+5V串联给AVCC供电,片上AD的基准用其内部的间隙电压基准(2.56V),同时在AREF引脚上外接一个1uF的电容以增加其抗噪性。
用户377235 2013-4-23 11:11