歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux下AT90S8515單片機GCC編程點燈實驗紀實

Linux下AT90S8515單片機GCC編程點燈實驗紀實

日期:2017/2/27 14:14:37   编辑:更多Linux
  看著那發光二極管一閃一閃的,我的高興得又蹦又跳。成功啦!對於一個新手來說,這第一次太難忘了。 …… 在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]



如果你做不出來,可以和我聯系,[email protected]



Copyright © Linux教程網 All Rights Reserved