黑基网 首页 服务器 Linux 查看内容

Linux下AT90S8515单片机GCC编程点灯实验纪实

2005-5-25 03:09| 投稿: Linux

摘要: 看着那发光二极管一闪一闪的,我的高兴得又蹦又跳。成功啦!对于一个新手来说,这第一次太难忘了。 …… 在CSD...
看着那发光二极管一闪一闪的,我的高兴得又蹦又跳。成功啦!对于一个新手来说,这第一次太难忘了。 …… 在CSDN的论坛听说过AVR,下载编程之类的东东,在网上搜索相关资料时发现了Linux focus上有一篇Guido Socher写的《AVR单片机GCC编程》,觉得有可操作性,于是把相关的资料、软件下到了硬盘。 可是,跑遍了广州的电子商店都找不到AT90S4433,只有AT90S8515,怎么办呢?从网上看到《AVR高速嵌入式单片机原理与应用(修订版)》的介绍,到书店找来看了看,发现两个片子下载编程的原理是一样的,只是引脚有些不同,不如就…… 硬件制作: 到电子城买来以下东东:AT90S8515单片机(比OTP的51片贵了n倍,n>5)一个,40脚普通锁紧插座一个,30pf的陶式电容两个(我找不到27pf的,不过就我所了解的,起振用10到30pf都行),4M晶振一个,聚酯板一块,DB25并口一个,单排针、双排针各一排(其实也可以不用),电阻、发光二极管我是从坏了的显示器上卸下来的。电阻我没有470欧的,用100欧加380欧串联代替(其实250到700都可以,一般470),我把三节1.5V电池用导线串联焊在一起做的电源。 一切都齐了,动手吧。按照Guido Socher在avrledtest-0.1.tar里的原理图,根据《AVR高速嵌入式单片机原理与应用(修订版)》上AT90S8515的接脚,重画了原理图。很简单,我描述一下吧:6脚PB5(MOSI)串联480欧电阻接并口2针,7脚PB6(MISO)串联220欧接电阻并口11针,8脚PB7(SCK)串联480欧电阻接并口2针,9脚PB8(RESET)串联480欧电阻接并口16针之外再连10千欧电阻接电源正极(VCC),15脚PD5串联1千欧电阻和一个发光二极管(注意方向)后接电源正极(VCC),18脚XTAL2、19脚XTAL1接晶振和起振电容(标准接法),振荡电路GND、单片机20脚(GND)、并口18针(GND)接到电源负极,单片机40脚(VCC)接电源正极。 做板子,你肯定要有焊锡、烙铁、导线和万用表等东西。做好后,检查线路有没接错,用万用表测测电路通不通,电阻、电容有没坏,然后就搞定了。 软件安装: 软件我开始想用我已经有的Redhat 7.0,结果没有ppdev的补丁,于是装Redhat 9.0(即7.3,Linux内核2.4.18)。这Redhat 9.0,在我的intel 810上装了5、6遍我才明白,你不给810的显卡分配4M以上的内存,Xfree86-4的Sever它就启动不了,倒霉! 没有gxtar的话,你要会用gzip、bzip2和tar解压;都是源代码安装,你要会;另外,以root身份操作。安装方法我不详细讲了,参照Guido Socher的《AVR单片机GCC编程》。提醒注意:1、装完binutils-2.11.2后一定要添加/usr/local/atml/lib这行到/etc/ld.so.conf文件里面,并运行/sbin/ldconfig命令重建连接器缓存,如果忘了,你要从这步开始往后重装一遍;2、装avr-libc-20020106前,有 export CC=avr-gcc export AS=avr-as export AR=avr-ar export RANLIB=avr-ranlib export PATH=/usr/local/atmel/bin:${PATH} 几步,用export命令看看你的环境设置的path是什么样的,那就是这里的 ${PATH}所指的,千万不要直接输入export PATH=/usr/local/atmel/bin:${PATH}后敲回车,那不对,或者到你的root目录下,把隐藏文件显示出来,配置你的.bash_profile文件,加入:/usr/local/atmel/bin路径,重启系统,这就一劳永逸了;3、千万记住,Linux下是区分大小写的,我在Win下解压的uisp-20011025,到了Linux下就不能make,原来DAPA.C变成了dapa.c,真是气死我了!折腾了半天。 安装好后,解压avrledtest-0.1.tar,因为我用的是AT90S8515,所以,把解压后的avrledtest-0.1文件夹里的avrledtest.hex和avrledtest_pre.hex删了,那是AT90S4433的。用Gedit或其他文本编辑器打开makefile文件,把MCU=at90s4433改成MCU=at90s8515,把 # here is a pre-compiled version in case you have trouble with # your development environment load_pre: avrledtest_pre.hex uisp -dlpt=/dev/parport0 --erase -dprog=dapa uisp -dlpt=/dev/parport0 --upload if=avrledtest_pre.hex -dprog=dapa -dno-poll -v=3 --hash=32 #------------------- 这一段删掉,因为我要重新编译一个MCU=at90s8515的avrledtest.hex,如果development environment有麻烦,那就完成不了啦! 测试: 搞定makefile后,把硬件上的并口接到电脑打印口,接通电源;然后,打开linux的console,进到/sbin目录下,lsmod看看有没 parport_pc ppdev parport 如果没有,要用 insmod parport_pc insmod ppdev insmod parport 可能这样parport还不能加载,再insmod一次。用lsmod看看,确定都加载了,进到avrledtest-0.1目录里,输入 make 顺利的话avrledtest.hex就产生了,然后 make load 我make load了三四次,因为我的板子有毛病,检查了好一会才搞好。我make load成功的画面是console里出现 uisp –dlpt=/dev/parpart0 –erase –dprog=dapa Atmel AVR AT90S8515 is found. Erasing Device …… Uploading:flash ##### (total 146 bytes transferred in 0.68s (216 bytes/s)) Polling:count=145,min/avg/max=3.00/3.14/12.08ms OK,下载到芯片了,拿开并口,断电,重新接通,片子就reset了,发光二极管一闪一闪的。点灯实验成功了,以后就可以自己做其他的实验了,AT90S8515的flash可以刷1000次。Cool!原来做单片机实验也可以这么便宜!仿真机、编程器都省了。(不过,十几片AT90S8515多出来的钱,都可以买编程器了。开发产品还是要用仿真机、编程器)。 如果你做不出来,可以和我联系,[email protected]
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部