|
发表于 2005-7-8 09:39:31
|
显示全部楼层
本来我想开个新贴,但感觉到该贴楼主说的与我相近就在这里接下去.
我们原来的一产品是用90S2313,现在必需要用TINY2313,原来的程序是用汇编,现在仍然用汇编,前几天第一次购到TINY2313,先用串口下载线,下载失败,连芯片都没认出,后用双龙有244的下载线,用双龙上位机软件,认出了芯片写上了熔丝位,下载了代码(原来的90S代码),上机不能运行,这时我想看一下写入芯片的代码,看一下是否已写入.
好了问题出来了,不能读,连芯片都不认了.提示是 请检查电源 时钟 下载线的连接,只好换了片新的,认出了芯片,这次不用双龙上位机软件,而用马牧石的mucodeISP 0.18认出了芯片,写上了熔丝位,下载了代码.上机还是不能运行,而改用90s2313生产同样的程序,运行正常,再读写入芯片的代码,完了!第二片芯片就义了.
只能翻数据手册,发现熔丝位写错了因为我们原来的产品是用6M外部晶振,CKSEL3..0为"1101"而我写入为"0000"因数据手册说"0000"为外部晶振(这里还有些不明白,只要CKSEL3..0写入"0000"就死锁).
第三片芯片上手了,我已准备好你也光荣了吧.写上了熔丝位"1101",下载了代码.上机能运行,但不正常,再读写入芯片的代码,能读出代码,这说明第三片还能为我服务,立即写入非常简单的几条语句程序运行,正常,这时我抽出原来程序一段来运行(汇编的),此时发现比原来的程序慢十倍左右,看来问题出在CKDIV8,翻数据手册并立即将该位的编程取消使其不编程"1",再写原代码,一切运行正常.
通过这次替代得出,只要熔丝位写对,可以直接替换,另外上位机软件我建议使用马牧石mucodeISP 0.18. 其最大好处是用中文说明了熔丝位的意义 |
|