2015年1月21日 星期三

AROUINO MEGA 2560 作為ISP燒錄器 燒入bootloader 給 Atmega 88


        由於業務沒事要我去接個小設計專案,我只好想辦法搞定他的需求,想說用點不同的方式去建置專案,所以把腦筋動到AROUINO 上,目前手邊有 mega 2560 的主板.不過客戶不需要這麼多功能的MCU.我只好找資料把AROUINO 弄在 Atmega 88 上.以下算是做個教學記錄~

首先~
參考的是 ROY 的分享,內容大致上是可以用 usb ic做編輯或是 avr isp連線方式做編輯!
主要要先把 ROY 網友分享的檔案下載下來~ (Bootloader設定)
*官方支援
Bootloader的MCU檔案較少,其他MCU則要靠網友分享Bootloader的檔案

Get all the code

https://github.com/royshil/ATmega88-bootloader

解壓縮後把檔案放置 (arduino所在硬碟):\arduino\arduino-1.0.6-windows\arduino-1.0.6\hardware\arduino\bootloaders 內 並把名稱改為ATmega88

然後到(arduino所在硬碟):\arduino\arduino-1.0.6-windows\arduino-1.0.6\hardware\arduino裡有個 boards 檔案編輯他!
加入下列程式碼


####################################
atmega88.name=ATmega88
atmega88.upload.protocol=arduino
atmega88.upload.maximum_size=7168
atmega88.upload.speed=19200
atmega88.bootloader.low_fuses=0xe2
atmega88.bootloader.high_fuses=0xdf
atmega88.bootloader.extended_fuses=0x00
atmega88.bootloader.path=atmega88
atmega88.bootloader.file=ATmegaBOOT_88_m88.hex
atmega88.bootloader.unlock_bits=0x3F
atmega88.bootloader.lock_bits=0x0F
atmega88.build.mcu=atmega88
atmega88.build.f_cpu=8000000L
atmega88.build.core=arduino
atmega88.build.variant=standard
##########################################

硬體接線方式

// pin name:    Arouino uno    MEGA(1280 and 2560)   Atmega 88(28pin)
// slave reset:    10:             53                    1 (reset)
// MOSI:           11:             51                   17 (MISO)
// MISO:           12:             50                   18 (MOSI)
// SCK:            13:             52                   19 (SCK)




  Atmega 88
 USB 或 ISP 接線方式

(出處:ROY的網頁)




Arouino uno連接Atmega 88 
 (電阻可有可無)





















下面這張圖 Atmega 168 跟 Atmega 88 腳位相同



 
硬體接線與Bootloader設定完成後開啟Arouino主程式
先將ArouinoISP燒入在MEGA 2560裡面



完成後再將目標板設為Atmega 88 及編輯(燒入)方式




                          燒入Bootloader到Atmega 88


                                               燒入時間約莫1分多鐘


                                燒入完成後會出現 Done  buming bootloader


              之後就利用MEGA ISP 介面燒入Atmega 88 裡面 
        注意:燒入方式要選擇Upload Using Programmer
                 如果使用Upload會出現錯誤(找不到目標板)
       avrdude: stk500_getsync(): not in sync: resp=0x00

最後忘了提醒自己~
光lcd顯示+ds1302的讀取,就耗盡 6450 byte  (剩下714 byte)
所以無法用在客戶專案上!

沒有留言:

張貼留言