这个问题已经不是第一次遇到了,之前也写过一篇文章,解决这个问题有很多方法:
两块ATmega16总是下载不成功,无论是读芯片ID还是读FLASH都提示chip enable program error.
查了网上的解决方案,分析有以下几种原因:
1、下载线的问题
2、固件有问题
3、下载器损坏
4、驱动没安装好
5、单片机供电电路,震荡电路,复位电路,有问题
6、熔丝位配置错误
也找到了几种解决方案,据他们说他们这么做好用了。
1、外加时钟就可以
2、要用老ATmega16把新ATmega16烧一遍, 再用
3、重启电脑 ,换一个USB口试一下
4、ATmega16默认是用内部1M RC起振,一般要用USBASP的低速模式,短接慢速下载就行了
5、 板子的复位电路问题(曾经一个网友(Justin)所犯的错误,复位电路问题,下载是单片机不能复位。)
本人比较倾向与解决方案的第4中,因为我也遇到了一样的问题,尝试后问题解决。
本人还有一个忠告,给ATmega16下载时,一定确保芯片已经供电了,不然也会报同样的错,你也会莫名其妙的尝试以上方法,浪费时间,耽误进度。
这次又遇到这个问题,又发现一个原因,和大家分享一下。
无意中点击了编程熔丝位,芯片锁死(后来知道的)。找到一种解决方法,分享一下。
刚刚把以前锁死的两块Mega16给解开锁,之前自己也解了很多次就是没解开。在网上看了一些解锁的方法,都是说在ISP下载功能被禁止时,可以用JTAG下载来改变熔丝位ISPEN=0,让Mega16恢复ISP下载功能。如果两种下载方式都被锁死的情况下,就只能用高压并行的方式来修改熔丝位。还有一种很简单的方法就是在Mega16的XTAL1和XTAL2引脚接上一个振荡信号,使单片机能处在工作状态,改变其熔丝位。
Mega16的熔丝位配置错和对单片机的某些误操作很容易使单片机不能正常工作。一种情况是在配置熔丝位时误将ISPEN或JTAGEN置为1(或没有在复选框中打钩),单片机的ISP和JTAG下载功能没有使能,使得单片机被锁死。还有一种情况是配置的时钟源熔丝位CKSEL3/0与单片机本身工作的时钟源不相符,这也是单片机被锁死的原因。
我的两块Mega16都是由于时钟源选择错误导致被锁死,我也是今天刚注意到这个问题的。我将一块正常运行的51的XTAL2与Mega16的XTAL1连接,将51的XTAL1与Mega16的XTAL2连接,这样被锁死的Mega16就可以正常运行了。然后,先要在读取其熔丝位的配置,然后我把时钟源CKSEL3/0的熔丝位改成内部RC振荡8MHZ(改成自己单片机适合的熔丝位即可),将改后的配置写入单片机。最后将与51连接的线断开,重新将下载器与电脑接上,就可以给M16下载程序了。