让Atmega8A-PU 支持外部晶振的熔丝设置

这段时间搞了个arduino玩,感觉买的板子不过瘾,照着网上的教程折腾Arduino最小系统,过程非常曲折,现将部分内容总结记录下来,以备日后查阅。

参考文章:Arduino 1.0——让最小系统更简单

最小系统的电路连接方法可参照参考文章内容,这里只讲实际操作,确保你跟着做就能成功,理论知识请各位自己百度学习。我这里使用的芯片是Atmega8A-PU,用的是8M的外部晶振,没有使用教程里的方法下载程序,用的是直接修改芯片熔丝的方式让芯片支持外部晶振。

经本人测试,芯片内部本来就自带晶振,就算不接外部晶振,只要接通电源,芯片一样能够正常运行,我觉得这才是真正意义上的最小系统,但是貌似芯片默认的内部晶振频率是1M,程序运行起来,时间会变得很慢,程序中延迟1s,实际运行结果会延迟好几秒,可通过修改熔丝的方式将内部晶振最高设置成8M(这里设置只针对Atmega8A-PU芯片,其它型号芯片没试过)。

下面说一下整个过程:

首先连接电路,参考文章中使用的是USBtinyISP,我这里使用的是淘宝淘的免驱USBISP,接线方式是一样的,按照文章内的针脚连接线路,我这里使用了一块面包板,线路接好后如(图1-1)所示:

让Atmega8A-PU 支持外部晶振的熔丝设置_第1张图片

【USBISP烧写器】

让Atmega8A-PU 支持外部晶振的熔丝设置_第2张图片

【图1-1】

然后我们到智峰科技下载一个叫progisp的软件,我这里下载的是最新的1.72版本,下载地址:progisp 1.72,安装完毕后,打开progisp,如(图1-2)所示。

让Atmega8A-PU 支持外部晶振的熔丝设置_第3张图片

【图1-2】

接上USBISP设备后,系统将自动设别设备,图中(2)位置灰色图标会点亮,说明设备正确识别,在图(1)位置选择所用的芯片,这里使用的Atmega8A,然后点击图(3)位置按钮,弹出熔丝编辑对话框,如(图1-3)所示。

让Atmega8A-PU 支持外部晶振的熔丝设置_第4张图片

【图1-3】

点击三个"读出"按钮,可读出当前芯片的熔丝设置,点击"向导方式",弹出向导对话框,如(图1-4)。

让Atmega8A-PU 支持外部晶振的熔丝设置_第5张图片

【图1-4】

里面是熔丝设置向导,可通过直接勾选选项来设置熔丝,其它选项我们先不做说明,先看看晶振相关的选项,我们可以看到芯片默认是使用"内部RC振荡器(1MHz)",如果我们想要使用8M的内部晶振,我们可以选择"内部RC振荡器(8HMz)"选项,我们会发现,随着你勾选不同的选项,下面的低位值会做相应的改变,8A的芯片貌似最高也就只能支持8M的振荡器,不论是内部的还是外部的。如果选择了内部8MHz的振荡器选项,发现芯片通上电后,仍旧无需外接振荡器也能正常使用,而且之前的时间不准的问题得到改善,但是否精确,这里我也没有去做测试。这次我们的任务是让我们的芯片支持外部的8M振荡器,经测试,要选择第一个"外部晶振(3.0-MHz)",如图(1-5)所示。

让Atmega8A-PU 支持外部晶振的熔丝设置_第6张图片

【默认内部1MHz的RC振荡器】

让Atmega8A-PU 支持外部晶振的熔丝设置_第7张图片

【内部8MHz的RC振荡器】

让Atmega8A-PU 支持外部晶振的熔丝设置_第8张图片

【图1-5】

或者在位配置方式对话框,按照(图1-6)所示配置,配置完毕后,点击"写入"按钮,将熔丝设置写到芯片中,这里一定要确保配置准确无误后才可点击写入按钮,否则可能造成芯片锁死,写入完毕后,由于还没有外接晶振,所有此时再次读取芯片熔丝可能会弹出如(图1-7)提示。

让Atmega8A-PU 支持外部晶振的熔丝设置_第9张图片

【图1-6】

让Atmega8A-PU 支持外部晶振的熔丝设置_第10张图片

【图1-7】

此时我们将外部晶振和电容接到芯片上,如(图1-8),再次读取熔丝,数据读取正常,说明熔丝位写入正确,外部熔丝正常工作。

让Atmega8A-PU 支持外部晶振的熔丝设置_第11张图片

【图1-8】

然后就可以按照参考文章里面的测试案例去测试芯片是否工作正常了,注意参考文章里使用的的arduino软件版本,本人亲测必须使用1.0的旧版本,高版本的软件刷写会报错,不知道是所有人都这样还是只有我是这样。

注意:直接修改熔丝位会造成芯片锁死,本人之前就不小心把芯片锁死了,解锁方法虽然有很多种,但是都比较麻烦,最简单的就是使用高压并行编辑器进行解锁,淘宝有卖,也可以自己做,如果喜欢自己折腾可参照<<实战ArduinoUNO制作高压编程器恢复Atmega8熔丝>>自己做一个,本人亲测,效果不错,妈妈再也不用担心我锁芯片了~~~



欢迎各位加群254267969,共同交流学习~


你可能感兴趣的:(Arduino)