ATtiny2313代替90S2313的方法

分享到:

我们原来的一产品是用90S2313,现在必需要用TINY2313,原来的程序是用汇编,现在仍然用汇编,前几天第一次购到TINY2313,先用串口下载线,下载失败,连芯片都没认出,后用双龙有244的下载线,用双龙上位机软件,认出了芯片写上了熔丝位,下载了代码(原来的90S代码),上机不能运行,这时我想看一下写入芯片的代码,看一下是否已写入.

  好了问题出来了,不能读,连芯片都不认了.提示是 请检查电源 时钟 下载线的连接,只好换了片新的,认出了芯片,这次不用双龙上位机软件,而用马牧石的mucodeISP 0.18认出了芯片,写上了熔丝位,下载了代码.上机还是不能运行,而改用90s2313生产同样的程序,运行正常,再读写入芯片的代码,完了!第二片芯片就义了.

  只能翻数据手册,发现熔丝位写错了因为我们原来的产品是用6M外部晶振,CKSEL3..0为"1101"而我写入为"0000"因数据手册说"0000"为外部晶振(这里还有些不明白,只要CKSEL3..0写入"0000"就死锁).

  第三片芯片上手了,我已准备好你也光荣了吧.写上了熔丝位"1101",下载了代码.上机能运行,但不正常,再读写入芯片的代码,能读出代码,这说明第三片还能为我服务,立即写入非常简单的几条语句程序运行,正常,这时我抽出原来程序一段来运行(汇编的),此时发现比原来的程序慢十倍左右,看来问题出在CKDIV8,翻数据手册并立即将该位的编程取消使其不编程"1",再写原代码,一切运行正常.

 通过这次替代得出,只要熔丝位写对,可以直接替换,另外上位机软件我建议使用马牧石mucodeISP 0.18. 其最大好处是用中文说明了熔丝位的意义

ATtiny2313 编程问题

请注意,ATtiny2312的Rev.A并行编程接口有问题,因此它是不支持的。

警告:请避免设定熔丝位禁止ISP接口,这将造成芯片不能进一步编程。

时钟源和预分频

ATtiny2313有多种时钟源的选择和预分频设置, 记住在以下情况下可以使用 STK500/AVRISP 对器件进行ISP编程:

(1) ATtiny2313的预分频时钟源大于32KHz
(2)ATtiny2313的预分频时钟源等于或者小于STK500/AVRISP设定的晶振值

用STK500,这里面设置都说得很清楚:

下载读写和运行程序都十分正常的

©2018 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss