CSDN博客

img netscaner

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

发表于2003/9/10 11:29:00  1267人阅读

 

LinuxAT90S8515单片机GCC编程点灯实验纪实

唐铁鑫

    看着那发光二极管一闪一闪的,我的高兴得又蹦又跳。成功啦!对于一个新手来说,这第一次太难忘了。

    ……

    CSDN的论坛听说过AVR,下载编程之类的东东,在网上搜索相关资料时发现了Linux focus上有一篇Guido Socher写的《AVR单片机GCC编程》,觉得有可操作性,于是把相关的资料、软件下到了硬盘。

可是,跑遍了广州的电子商店都找不到AT90S4433,只有AT90S8515,怎么办呢?从网上看到《AVR高速嵌入式单片机原理与应用(修订版)》的介绍,到书店找来看了看,发现两个片子下载编程的原理是一样的,只是引脚有些不同,不如就……

 

硬件制作:

到电子城买来以下东东:AT90S8515单片机(比OTP51片贵了n倍,n>5)一个,40脚普通锁紧插座一个,30pf的陶式电容两个(我找不到27pf的,不过就我所了解的,起振用1030pf都行),4M晶振一个,聚酯板一块,DB25并口一个,单排针、双排针各一排(其实也可以不用),电阻、发光二极管我是从坏了的显示器上卸下来的。电阻我没有470欧的,用100欧加380欧串联代替,我把三节1.5V电池用导线串联焊在一起做的电源。

一切都齐了,动手吧。按照Guido Socheravrledtest-0.1.tar里的原理图,根据《AVR高速嵌入式单片机原理与应用(修订版)》上AT90S8515的接脚,重画了原理图。很简单,我描述一下吧:6PB5MOSI)串联480欧电阻接并口2针,7PB6MISO)串联220欧接电阻并口11针,8PB7SCK)串联480欧电阻接并口2针,9PB8RESET)串联480欧电阻接并口16针之外再连10千欧电阻接电源正极(VCC),15PD5串联1千欧电阻和一个发光二极管(注意方向)后接电源正极(VCC),18XTAL219XTAL1接晶振和起振电容(标准接法),振荡电路GND、单片机20脚(GND)、并口18针(GND)接到电源负极,单片机40脚(VCC)接电源正极。

做板子,你肯定要有焊锡、烙铁、导线和万用表等东西。做好后,检查线路有没接错,用万用表测测电路通不通,电阻、电容有没坏,然后就搞定了。

 

软件安装:

软件我开始想用我已经有的Redhat 7.0,结果没有ppdev的补丁,于是装Redhat 9.0(即7.3Linux内核2.4.18)。这Redhat 9.0,在我的intel 810上装了56遍我才明白,你不给810的显卡分配4M以上的内存,Xfree86-4Sever它就启动不了,倒霉!

没有gxtar的话,你要会用gzipbzip2tar解压;都是源代码安装,你要会;另外,以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.hexavrledtest_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了,发光二极管一闪一闪的。点灯实验成功了,以后就可以自己做其他的实验了,AT90S8515flash可以刷1000次。Cool!原来做单片机实验也可以这么便宜!仿真机、编程器都省了。(不过,十几片AT90S8515多出来的钱,都可以买编程器了。开发产品还是要用仿真机、编程器)。

 

如果你做不出来,可以和我联系,netscaner@sina.com.cn

0 0

相关博文

我的热门文章

img
取 消
img