这段时间搞了个arduino玩,感觉买的板子不过瘾,照着网上的教程折腾Arduino最小系统,过程非常曲折,现将部分内容总结记录下来,以备日后查阅。
参考文章:Arduino 1.0——让最小系统更简单
最小系统的电路连接方法可参照参考文章内容,这里只讲实际操作,确保你跟着做就能成功,理论知识请各位自己百度学习。我这里使用的芯片是Atmega8A-PU,用的是8M的外部晶振,没有使用教程里的方法下载程序,用的是直接修改芯片熔丝的方式让芯片支持外部晶振。
经本人测试,芯片内部本来就自带晶振,就算不接外部晶振,只要接通电源,芯片一样能够正常运行,我觉得这才是真正意义上的最小系统,但是貌似芯片默认的内部晶振频率是1M,程序运行起来,时间会变得很慢,程序中延迟1s,实际运行结果会延迟好几秒,可通过修改熔丝的方式将内部晶振最高设置成8M(这里设置只针对Atmega8A-PU芯片,其它型号芯片没试过)。
下面说一下整个过程:
首先连接电路,参考文章中使用的是USBtinyISP,我这里使用的是淘宝淘的免驱USBISP,接线方式是一样的,按照文章内的针脚连接线路,我这里使用了一块面包板,线路接好后如(图1-1)所示:
【USBISP烧写器】
【图1-1】
然后我们到智峰科技下载一个叫progisp的软件,我这里下载的是最新的1.72版本,下载地址:progisp 1.72,安装完毕后,打开progisp,如(图1-2)所示。
【图1-2】
接上USBISP设备后,系统将自动设别设备,图中(2)位置灰色图标会点亮,说明设备正确识别,在图(1)位置选择所用的芯片,这里使用的Atmega8A,然后点击图(3)位置按钮,弹出熔丝编辑对话框,如(图1-3)所示。
【图1-3】
点击三个"读出"按钮,可读出当前芯片的熔丝设置,点击"向导方式",弹出向导对话框,如(图1-4)。
【图1-4】
里面是熔丝设置向导,可通过直接勾选选项来设置熔丝,其它选项我们先不做说明,先看看晶振相关的选项,我们可以看到芯片默认是使用"内部RC振荡器(1MHz)",如果我们想要使用8M的内部晶振,我们可以选择"内部RC振荡器(8HMz)"选项,我们会发现,随着你勾选不同的选项,下面的低位值会做相应的改变,8A的芯片貌似最高也就只能支持8M的振荡器,不论是内部的还是外部的。如果选择了内部8MHz的振荡器选项,发现芯片通上电后,仍旧无需外接振荡器也能正常使用,而且之前的时间不准的问题得到改善,但是否精确,这里我也没有去做测试。这次我们的任务是让我们的芯片支持外部的8M振荡器,经测试,要选择第一个"外部晶振(3.0-MHz)",如图(1-5)所示。
【默认内部1MHz的RC振荡器】
【内部8MHz的RC振荡器】
【图1-5】
或者在位配置方式对话框,按照(图1-6)所示配置,配置完毕后,点击"写入"按钮,将熔丝设置写到芯片中,这里一定要确保配置准确无误后才可点击写入按钮,否则可能造成芯片锁死,写入完毕后,由于还没有外接晶振,所有此时再次读取芯片熔丝可能会弹出如(图1-7)提示。
【图1-6】
【图1-7】
此时我们将外部晶振和电容接到芯片上,如(图1-8),再次读取熔丝,数据读取正常,说明熔丝位写入正确,外部熔丝正常工作。
【图1-8】
然后就可以按照参考文章里面的测试案例去测试芯片是否工作正常了,注意参考文章里使用的的arduino软件版本,本人亲测必须使用1.0的旧版本,高版本的软件刷写会报错,不知道是所有人都这样还是只有我是这样。
注意:直接修改熔丝位会造成芯片锁死,本人之前就不小心把芯片锁死了,解锁方法虽然有很多种,但是都比较麻烦,最简单的就是使用高压并行编辑器进行解锁,淘宝有卖,也可以自己做
设计资源 培训 开发板 精华推荐
- FK407M1(STM32F407VET6) USB主机扩展板
- hackled_pro_v1.1(立创免费打板)
- LT1252 的典型应用 - 低成本视频放大器
- 液晶电视电源用DC转DC单路输出电源
- DC1317A-G,使用 LT1952EGN-1 的演示板,Vin=9V 至 36V,Vout=12V at 5A 单开关同步正向控制器
- LTC2287IUP 演示板,DeMUX 双路 ADC,+3.0V,40Msps 10 位 1MHz
- LTC3717-1 的典型应用 - 宽工作范围、无用于 DDR/QDR 存储器终端的 RSENSE 降压控制器
- MXHV9910BTR 离线、高亮度 LED 驱动器的典型线性调光应用电路
- LT3791IFE-1 98% 效率 60W (12V/5A) LED 驱动器的典型应用电路
- 使用 Analog Devices 的 ADuC7121BBCZ 的参考设计